如何在函数返回LLDB Python时设置断点?

问题描述 投票:0回答:1

我是LLDB调试器的新手。我想问一下,我们是否有一些方法来分析源代码并使用Python API自动设置函数返回的断点?

谢谢。

python breakpoints lldb
1个回答
0
投票

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

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

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

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

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

lldb对源代码没有太多的语义理解,但是通过指令扫描或架构知识(如lr ......)实现“从函数返回”断点是有用的。如果你有动力,请提交增强功能在bugs.llvm.org请求,也许有人会实现它。

© www.soinside.com 2019 - 2024. All rights reserved.