如何解决在gdb中添加python函数
我发现自己跳入python解释器很多次,以进行非常基本的字节转换,例如:
>>> ords = lambda s: [hex(ord(c)) for c in s]
>>> ords('Help')
['0x48','0x65','0x6c','0x70']
是否可以在gdb
中添加python函数,以便我可以输入ords('Help')
并调用上面的方法?如果是这样,我将如何/在何处定义python函数?
有关:https://sourceware.org/gdb/onlinedocs/gdb/Python-API.html
解决方法
是的,您可以使用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']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。