如何使用lldb跟踪线程和python SBThread eBroadcastBitSelectedFrameChanged事件

如何使用lldb跟踪线程和python SBThread eBroadcastBitSelectedFrameChanged事件,python,debugging,lldb,Python,Debugging,Lldb,我想通过记录线程调用的所有符号来跟踪线程,所以我找到了两个方法 1、 lldb设置列表: “target.process.thread”变量: 跟踪线程——如果为true,该线程将执行单步并记录执行情况 这意味着lldb将记录执行情况,但我找不到日志在哪里 2、 lldb python SBThread有一个事件eBroadcastBitSelectedFrameChanged,我认为它会在线程帧更改时回调,但为什么SBThread没有广播器?1)此设置主要用于帮助诊断lldb的步进算法的问题。

我想通过记录线程调用的所有符号来跟踪线程,所以我找到了两个方法

1、 lldb设置列表:

“target.process.thread”变量: 跟踪线程——如果为true,该线程将执行单步并记录执行情况

这意味着lldb将记录执行情况,但我找不到日志在哪里

2、 lldb python SBThread有一个事件eBroadcastBitSelectedFrameChanged,我认为它会在线程帧更改时回调,但为什么SBThread没有广播器?

1)此设置主要用于帮助诊断lldb的步进算法的问题。因为它会导致所有的执行都是按指令一步进行的,所以它会让你的程序执行得非常慢,所以除了这个目的,它没有被使用过(我很久没有用过它了,所以它可能已经有点腐烂了。)输出应该被送到调试器的stdout

2)
eBroadcastBitSelectedFrameChanged
仅在用户使用命令行命令更改所选帧时发送。这意味着允许像Xcode这样的GUI,它还允许命令行交互,以使GUI与控制台中的用户命令保持同步。没有线程的GetBroadcaster,因为线程来来去去,您通常希望收听所有线程,而不仅仅是某个特定的线程。为此,请调用
SBThread.GetBroadcasterClassName
,然后按类名为侦听器注册事件(
StartListeningForEventClass


如果您需要监听特定线程,请向bug跟踪器提交增强请求。

是否有任何方法可以使用lldb收集arm级指令执行?例如,哪个指令被执行,或者哪个符号被称为指令单步执行短,lldb并没有为这种调查提供太多的信息。除了速度非常慢之外,您还必须捕获并停止所有新线程,以便也可以单步执行它们。根据您试图做什么,像llvm cov之类的覆盖工具或仪器中的东西可能是更好的选择。