【发布时间】:2020-09-18 05:25:39
【问题描述】:
我定义了以下内容:
strings: .asciz "Once\n", "upon\n", "a\n", "time\n", "...\n", ""
我可以看到标签存储在以下内存地址600109:
>>> info va strings
Non-debugging symbols:
0x0000000000600109 strings
我可以这样打印:
>>> x/s 0x0000000000600109
0x600109: "Once\n"
>>> x/s 0x0000000000600109+6
0x60010f: "upon\n"
# etc...
或者引用变量获取第一个字符串:
>>> x/s &strings
0x600109: "Once\n"
如何在gdb 中进行适当的偏移以对内存地址进行加法——例如,能够通过x/s &strings+6 获得"upon\n" 的值?
执行以下操作的正确方法是什么?
>>> x/s &strings+6
# Cannot perform pointer math on incomplete type "<data variable, no debug info>", try casting to a known type, or void *.
【问题讨论】: