我發(fā)現(xiàn)自己經(jīng)常跳入 python 解釋器來執(zhí)行非?;镜淖止?jié)轉(zhuǎn)換,例如以下內(nèi)容:>>> ords = lambda s: [hex(ord(c)) for c in s]>>> ords('Help')['0x48', '0x65', '0x6c', '0x70']有沒有辦法添加一個 python 函數(shù),gdb這樣我就可以輸入ords('Help')它并調(diào)用上面的函數(shù)?如果是這樣,我將如何/在哪里定義 python 函數(shù)?相關(guān)于:https ://sourceware.org/gdb/onlinedocs/gdb/Python-API.html
1 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗 獲得超2個贊
是的,您可以使用 GDB Python API 來完成此操作。
ords.py:
import gdb
class ordinal(gdb.Command):
def __init__(self):
super(ordinal, self).__init__("ords", gdb.COMMAND_USER)
def invoke(self, argument, fromtty):
argv = gdb.string_to_argv(argument)
if len(argv) > 0:
argv[0] = argv[0].strip('()')
print([hex(ord(c)) for c in argv[0]])
else:
print("No arguments supplied")
ordinal()
在 GDB 中(我使用的是 GDB 8.3.1):
(gdb) source ords.py
(gdb) ords('Help')
['0x48', '0x65', '0x6c', '0x70']
添加回答
舉報
0/150
提交
取消