当函数使用LLDB Python返回时,如何设置断点?

2024-05-18 14:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉LLDB调试器。我想问一下,我们是否有一些方法可以分析源代码,并在函数返回时用pythonapi自动设置断点?在

谢谢。在


Tags: 方法函数pythonapi源代码调试器断点时用lldb
1条回答
网友
1楼 · 发布于 2024-05-18 14:21:11

一种方法是在“return”上使用源表达式断点:

(lldb) break set -p return -X <FunctionName>

根据您是否在函数的其他地方使用“return”,您可能必须禁用某些单独的位置。在

如果您在使用链接寄存器(例如arm或arm64)的体系结构上,并且在函数中停止,则可以中断链接寄存器值。在

否则,您可以获取函数的反汇编(SBFrame::GetFunction()将为您提供SBFunction,SBFunction::GetInstructions将返回指令列表,并且您可以扫描返回指令上的设置断点(例如x86_64上的retq等)。在

lldb对源代码没有太多的语义理解,但是通过指令扫描或体系结构知识(如lr…)来实现一个“从函数返回”断点是很有用的,如果您感到有动力,请在llorg.bugs网站,也许有人会实现它。在

相关问题 更多 >

    热门问题