我正在使用 LLDB 调试一个大型程序,并且有一个 bool
变量随处使用,通常被称为 extern。我已经调试了一段时间,无论我在哪里设置断点,该值始终为 true
。我想找到设置此值的位置 - 我尝试搜索代码并在该变量的每个赋值处设置断点,但似乎没有一个被触发,并且在稍后的断点处该值始终为 true
。有什么方法可以查明对变量的第一次写入吗?
最佳答案
正如 Flash Sheridan 在他对您的问题的评论中指出的那样,您想在此处使用观察点。在您的应用程序早期设置一个断点(例如 NSApplicationMain
),在您的(可能是全局的)bool 变量上设置一个观察点,
(lldb) watch set variable myvar
或
(lldb) w s v myvar
每次修改 myvar
时,这应该会停止程序执行。
关于c++ - 在 LLDB 中查找对变量的第一次写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13817636/