在使用Windbg分析转储时,我可以信任局部变量值吗?
Can I trust local variable value when analyzing a dump with Windbg?
我看到一些奇怪的东西,比如指针值在2次调用之间改变值(0或有效的东西)而没有改变。枚举值也一样。这些值只是被转发,没有机会被修改。转储为minidunp
优化构建我假设?问题是CPU不处理变量,而是处理内存地址和寄存器。碰巧的是,在发布版本中,一个寄存器可能被许多变量共享——当然,不是所有变量同时共享。但是如果调试器不能确定现在在寄存器中是什么变量,它可能会很困惑。
您可以使用dv/V来显示局部变量是否存在于寄存器中。如:
0:000> dv/v@ecx this = 0x0018fe10
要解决这个问题,必须在编译时取消优化。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 为什么我可以通过引用修改常量返回
- 我可以在 C++ 中的函数体之外进行操作吗?
- 我可以重新分配/覆盖std::字符串吗
- C++-我可以创建另一个类的成员并在构造函数中使用它吗
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么我可以使用比分配的内存更多的内存
- 在一个读写器队列中,我可以用volatile替换原子吗
- 我可以把基础班提升为儿童班吗
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 我可以使用什么来停止循环而不是"返回 0"?
- 我可以使用反向迭代器作为ForwardIt吗
- 在抛出异常后,我可以信任 vector::size 吗?
- 这是openMP的正确用法吗?(或者:我可以信任默认设置吗?)
- 在使用Windbg分析转储时,我可以信任局部变量值吗?