如何在 gdbinit 脚本中使用 python

How to use python into gdbinit script

当 gdb 初始化时,我使用 gdbinit 文件来 运行 几个命令。

如何使用 python 命令?而不是使用 x/x $pc 我想在 $PC 寄存器后用 binascii 10 个字节打印。

我该怎么做?

结合 with this one 我们最终得到:

(gdb) x/10x $pc
0x55555555515d <main+8>:        0x48    0x8d    0x35    0xa0    0x0e    0x00    0x00    0x48
0x555555555165 <main+16>:       0x8d    0x3d

(gdb) source .gdbinit.py
488d35a00e0000488d3d

其中 .gdbinit.py 包含:

import binascii
import gdb

i = gdb.inferiors()[0]
pc = gdb.parse_and_eval("$pc")
m = i.read_memory(pc, 10)
print binascii.hexlify(m)