如何在不设置断点的情况下查看LLDB中当前帧的来源?

时间:2016-02-24 20:53:56

标签: debugging lldb

使用LLDB调试一个简单的程序时,如果我将调试器设置为在入口处停止,则不会看到当前帧的源,只有汇编。

如果设置了断点,那么在点击断点后我会看到每个帧的源。

如何在不设置断点的情况下查看当前帧的来源?

我想跟踪程序的流程,而不知道可能运行哪些代码或函数行。

请注意list是不够的,因为它不会显示有效行,只是某些来源。

我正在调试C ++代码,但我认为这并不重要。

1 个答案:

答案 0 :(得分:1)

我不确定“当前帧”是什么意思。

如果你在调试器中停止程序(使用断点或中断它),那么你应该看到你停止的帧的源,如果它是一个有源的帧。

但调试器在运行时不会观察程序正在执行的操作。如果它试图这样做会干扰程序执行过多,减慢速度,更改线程调度等。调试器很难不这样做。

因此,当程序未停止时,它无法告诉您程序中正在执行的堆栈帧。还有其他工具,例如示例,它使用基于时间的堆栈采样来向您显示程序流程的大致轮廓,但由于这些只是在某个时间间隔的样本,因此它们不会获得所有细节。

您可以通过在调用上放置自动继续断点,并使用执行回溯或源列表的命令来查看某些调用子集。根据您想要观看的呼叫的热度,这可能会使执行速度降低很多,但是。