我刚刚开始一个项目而且我被困住了。项目目标是跟踪程序的执行。我查看了Capstone engine,但据我所知,它不允许实时代码执行和步进。我想要一些能够跟踪执行,步骤,转换为汇编,并具有api或其他编程方式的东西。除了最后一部分,GDB是完美的。它有一个pyi的API,但是gdb执行它而不是相反。到目前为止,我能看到实现目标的唯一方法是将gdb的绑定写入另一种语言。这是可能的(看到它是一个shell和所有),还是有其他可能的解决方案,我缺少?
澄清:在其功能中是否存在类似于gdb的库或框架?
答案 0 :(得分:1)
在其功能中是否存在类似于gdb的库或框架?
您正在寻找libgdb,但该项目尚未结束。
然而,lldb可能就是答案。来自链接页面:
The LLDB debugger APIs are exposed as a C++ object oriented
interface in a shared library.
答案 1 :(得分:0)
你的问题相当普遍但我可以指出一些例子。
您可以设置自己的断点,然后Next Until Breakpoint。 python可以通过gdb.execute方法告诉gdb到目标中的next / step / cont。我认为这将通过一些python增强功能实现您的目标。
基于相同的想法,您可以查看堆栈并检查特定的function。此示例显示了通过python接口向gdb反馈信息的一般方法。您可以使用python代码设置变量,然后使用gdb if / else功能进行决策。