除非设置了断点,否则不会覆盖变量

时间:2011-11-03 23:55:26

标签: c++ gdb memory-management heisenbug

我有一个没有正确初学的课程:

m_element.variable()=0xffffffff

什么时候应该是-1。我加了一个电话

Element::debug_initialize() {
    m_variable=-1;
}

在读出之前,但这不会改变变量(即它仍然是0xffffffff),除非我将断点附加到debug_initialize()。

发生了什么事?显然,内存分配/共享,但不知道如何进一步。

免责声明:不是我的代码; - )

1 个答案:

答案 0 :(得分:7)

Two's Complement 0xFFFFFFFF -1。代码实际上是否按预期工作?您如何确定该值是“错误的”,即您使用什么方法来检查该值?