在 LLDB 中查找对变量的第一次写入
Finding the first write to a variable in LLDB
我正在使用LLDB调试一个大型程序,并且有一个bool
变量随处使用,通常称为extern。我已经调试了一段时间,无论我在哪里设置断点,值始终是true
。我想找到设置此值的位置 - 我尝试在该变量的每个赋值时搜索代码并设置断点,但这些似乎都没有被触发,并且在以后的断点中,该值始终true
。有没有办法精确定位对变量的第一次写入?
就像Flash Sheridan在对你的问题的评论中指出的那样,你想在这里使用一个观察点。 在应用的早期设置断点(例如 NSApplicationMain
),在您的(大概是全局的)布尔变量上设置一个观察点,
(lldb) watch set variable myvar
或
(lldb) w s v myvar
这应该在每次修改myvar
时停止程序执行。
相关文章:
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 是什么导致我的循环在第一次迭代中运行得更慢
- QLibrary 函数在第一次调用时工作缓慢
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 为什么第一次迭代后的指针指向随机值?
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- LAPACK函数在第一次迭代后变慢
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- EGL 在第一次 opengl 函数调用时崩溃
- 提升 Asio SSL 无法第二次接收数据(第一次确定)
- 数组仅在第一次返回错误值
- C++程序在第一次尝试时会给出垃圾,但如果它捕获异常并重试,则会给出适当的值
- 为什么字符串的长度在第一次读取文件时相差 1?
- 在 LLDB 中查找对变量的第一次写入
- C++程序要求我输入两次,即使变量第一次被分配
- 缺点是在第一次使用变量之前声明变量
- c++使用一个函数表示多个变量.只有第一次运行有效
- 是在第一次调用静态成员函数之前初始化的静态类变量
- 变量在第一次执行后始终相同