aheadlead
V2EX  ›  问与答

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

  •  
  •   aheadlead · Oct 26, 2014 · 5726 views
  •   You need to sign in to view this topic
    This topic created in 4292 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   ·   940 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:37 · PVG 05:37 · LAX 14:37 · JFK 17:37
    ♥ Do have faith in what you're doing.