2024-05-18 14:21:11 发布
网友
我不熟悉LLDB调试器。我想问一下,我们是否有一些方法可以分析源代码,并在函数返回时用pythonapi自动设置断点?在
谢谢。在
一种方法是在“return”上使用源表达式断点:
(lldb) break set -p return -X <FunctionName>
根据您是否在函数的其他地方使用“return”,您可能必须禁用某些单独的位置。在
如果您在使用链接寄存器(例如arm或arm64)的体系结构上,并且在函数中停止,则可以中断链接寄存器值。在
否则,您可以获取函数的反汇编(SBFrame::GetFunction()将为您提供SBFunction,SBFunction::GetInstructions将返回指令列表,并且您可以扫描返回指令上的设置断点(例如x86_64上的retq等)。在
lldb对源代码没有太多的语义理解,但是通过指令扫描或体系结构知识(如lr…)来实现一个“从函数返回”断点是很有用的,如果您感到有动力,请在llorg.bugs网站,也许有人会实现它。在
一种方法是在“return”上使用源表达式断点:
根据您是否在函数的其他地方使用“return”,您可能必须禁用某些单独的位置。在
如果您在使用链接寄存器(例如arm或arm64)的体系结构上,并且在函数中停止,则可以中断链接寄存器值。在
否则,您可以获取函数的反汇编(SBFrame::GetFunction()将为您提供SBFunction,SBFunction::GetInstructions将返回指令列表,并且您可以扫描返回指令上的设置断点(例如x86_64上的retq等)。在
lldb对源代码没有太多的语义理解,但是通过指令扫描或体系结构知识(如lr…)来实现一个“从函数返回”断点是很有用的,如果您感到有动力,请在llorg.bugs网站,也许有人会实现它。在
相关问题 更多 >
编程相关推荐