(gdb) info frame
Stack level 0, frame at 0x7fffffffd960:
rip = 0x7ffff7dec680 in *__GI__dl_debug_state (dl-debug.c:77); saved rip 0x7ffff7de0731
called by frame at 0x7fffffffdab0
source language c.
Arglist at 0x7fffffffd950, args:
Locals at 0x7fffffffd950, Previous frame's sp is 0x7fffffffd960
Saved registers:
rip at 0x7fffffffd958
(gdb) python str1 = gdb.execute("info frame", False, True)
(gdb) python print str1
Stack level 0, frame at 0x7fffffffd960:
rip = 0x7ffff7dec680 in *__GI__dl_debug_state (dl-debug.c:77); saved rip 0x7ffff7de0731
called by frame at 0x7fffffffdab0
source language c.
Arglist at 0x7fffffffd950, args:
Locals at 0x7fffffffd950, Previous frame's sp is 0x7fffffffd960
Saved registers:
rip at 0x7fffffffd958
下面是一个例子:
文档here。在
gdb.execute (command [, from_tty [, to_string]])
是你(we:D)想要的。你可以看看function decription。第一个参数是引用的GDB命令,第二个我并不真正理解,我想因为我不需要它,所以请保留它false。第三个决定命令输出流的位置。如果false(默认),它将被打印,如果true,输出将被包装为字符串并返回给您,因此您可以将其分配给一个变量。在例如:
您可能还对
^{pr2}$gdb.parse_and_eval (expression)
感兴趣。它提供了一种使用GDB的所谓便利变量的简单方法:相关问题 更多 >
编程相关推荐