gpt4 book ai didi

c++ - 调试器什么时候会撒谎?

转载 作者:太空宇宙 更新时间:2023-11-04 16:26:43 25 4
gpt4 key购买 nike

<分区>

所以,在处理了一个真正的 voodoo bug 一周之后(当然,通过在相关位置添加一个 #include 解决了)我意识到人们不应该总是相信调试器,如果有些东西没有意义,旧的 printf() 可能对您有用。据我所知,如果代码是在 Release模式下编译的,调试器可能会“说谎”。我最近了解到,如果一个类有一个#ifdef,比如

struct MyStruct
{
char a;
#ifdef USE_ME
double c;
#else
int c;
#endif
};

并且 USE_ME 没有在结构定义可见的 header 中定义,而是在其他地方定义,调试器会感到困惑,因为它不知道 c 是什么类型,并且会“说谎” ,即使我们处于 Debug模式。我的问题是:任何人都可以给出关于调试器何时撒谎的其他情况吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com