lldb(gdb 也可以)如何 display 一个数组的某段范围

2014-10-26 13:56:23 +08:00
 aheadlead
我使用lldb调试一个C程序
(没用gdb的原因是yosemite里面没有...懒得装)
程序里面有个很大的数组 我想观察它的第1024个元素到第1030个元素的变化情况

如果直接display这个元素的话 会把数组的前256个元素显示出来
有没有什么办法可以满足我的要求

谢谢

另外..如果您知道gdb里面如何实现,也请告诉我。
另外..如果不介意的话,请告诉我这样的资料可以从哪里找到。
4818 次点击
所在节点    问与答
6 条回复
Phoinikas
2014-10-26 14:15:56 +08:00
不知道如何实现,不过资料推荐你去stackoverflow找,肯定有
Esay
2014-10-26 14:36:40 +08:00
简单搜索了一下,lldb 中可以指定每种类型输出的样式

http://lldb.llvm.org/varformats.html

比如,对于每个 int 数组输出 20 - 21 个元素:

type summary add --summary-string "${var[20-21]}" "int []"



Happy hacking~
aheadlead
2014-10-26 14:52:31 +08:00
@Esay 感谢
我也看到了这个 但如果我要同时看两个int数组的话应该怎么办
Esay
2014-10-26 15:06:03 +08:00
长度不同的话,可以分别指定,如果相同的话就还得好好读读文档了(好像可以写个 Python 处理一下吧)
aheadlead
2014-10-26 15:26:07 +08:00
@Esay 手动感谢!
nabla
2014-10-26 18:17:04 +08:00
gdb的话,display应该也可以用 /FMT:
display /4gx 0x7fffffffe968
可以以hex形式显示该地址处4个giant word(8 bytes)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141600

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX