因此,在处理一个真正的巫毒错误一周后(已解决,但当然,通过#include
在相关位置添加一个)我意识到一个人不应该总是信任调试器,如果某些事情没有意义,很好oldprintf()
可能对你有用。据我所知,如果代码在发布模式下编译,调试器可能会“撒谎”。我最近了解到,如果一个类有一个#ifdef
,类似
struct MyStruct
{
char a;
#ifdef USE_ME
double c;
#else
int c;
#endif
};
并且USE_ME
未在结构定义可见的标头中定义,而是在其他地方定义,调试器会感到困惑,因为它不知道 c 是什么类型并且会“撒谎”,即使我们处于调试模式。我的问题是:谁能给出调试器何时撒谎的其他情况?