在LLDB中查找对变量的第一次写入

时间:2012-12-11 09:53:32

标签: c++ clang breakpoints lldb watchpoint

我正在使用LLDB调试大型程序,并且在任何地方都使用了一个bool变量,通常称为extern。我已经调试了一段时间,无论我在哪里设置断点,值始终为true。我想找到这个值设置的位置 - 我已经尝试搜索代码并在该变量的每个赋值处设置断点但这些似乎都没有被触发,并且在稍后的断点处该值始终为{{1} }。有没有办法精确定位第一次写入变量?

1 个答案:

答案 0 :(得分:1)

就像Flash Sheridan在对你的问题的评论中指出的那样,你想在这里使用观察点。在应用程序的早期设置断点(例如NSApplicationMain),在您的(可能是全局的)bool变量上设置一个观察点,

(lldb) watch set variable myvar

(lldb) w s v myvar

这应该在每次修改myvar时停止执行程序。