标签: c++ gdb memory-management heisenbug
我有一个没有正确初学的课程:
m_element.variable()=0xffffffff
什么时候应该是-1。我加了一个电话
Element::debug_initialize() { m_variable=-1; }
在读出之前,但这不会改变变量(即它仍然是0xffffffff),除非我将断点附加到debug_initialize()。
发生了什么事?显然,内存分配/共享,但不知道如何进一步。
免责声明:不是我的代码; - )
答案 0 :(得分:7)
在Two's Complement 0xFFFFFFFF 中 -1。代码实际上是否按预期工作?您如何确定该值是“错误的”,即您使用什么方法来检查该值?
0xFFFFFFFF
-1