我如何在启动时将 c 或 c++ 程序中的所有内存初始化为 NaN(非数字)以便使用 gdb 进行调试?
我相信默认情况下 gdb 用零初始化,但这通常对查找因初始化错误而崩溃的代码没有帮助。
PS:我想将每个变量和数组初始化为 NAN(或一些垃圾),仅用于调试。我正在使用的程序有数千个变量,因此更改每个变量相当乏味......
最佳答案
那些十六进制数字在 Rafael 的帖子中可能是正确的,但我会推荐一种更语义化的方式。
参见 http://en.cppreference.com/w/cpp/types/numeric_limits/quiet_NaN
#include <limits>
double nan1 = std::numeric_limits<double>::quiet_NaN();
double nan2 = std::numeric_limits<double>::signaling_NaN();
请注意,有两种 NaN。
关于c++ - 在C++中使用nan初始化内存以进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621716/