aheadlead
V2EX  ›  问与答

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

  •  
  •   aheadlead · Oct 26, 2014 · 5569 views
    This topic created in 4226 days ago, the information mentioned may be changed or developed.
    我使用lldb调试一个C程序
    (没用gdb的原因是yosemite里面没有...懒得装)
    程序里面有个很大的数组 我想观察它的第1024个元素到第1030个元素的变化情况

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

    谢谢

    另外..如果您知道gdb里面如何实现,也请告诉我。
    另外..如果不介意的话,请告诉我这样的资料可以从哪里找到。
    6 replies    2014-10-26 18:17:04 +08:00
    Phoinikas
        1
    Phoinikas  
       Oct 26, 2014   ❤️ 1
    不知道如何实现,不过资料推荐你去stackoverflow找,肯定有
    Esay
        2
    Esay  
       Oct 26, 2014   ❤️ 1
    简单搜索了一下,lldb 中可以指定每种类型输出的样式

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

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

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



    Happy hacking~
    aheadlead
        3
    aheadlead  
    OP
       Oct 26, 2014
    @Esay 感谢
    我也看到了这个 但如果我要同时看两个int数组的话应该怎么办
    Esay
        4
    Esay  
       Oct 26, 2014   ❤️ 1
    长度不同的话,可以分别指定,如果相同的话就还得好好读读文档了(好像可以写个 Python 处理一下吧)
    aheadlead
        5
    aheadlead  
    OP
       Oct 26, 2014
    @Esay 手动感谢!
    nabla
        6
    nabla  
       Oct 26, 2014
    gdb的话,display应该也可以用 /FMT:
    display /4gx 0x7fffffffe968
    可以以hex形式显示该地址处4个giant word(8 bytes)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3964 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:15 · PVG 18:15 · LAX 03:15 · JFK 06:15
    ♥ Do have faith in what you're doing.