gpt4 book ai didi

c++ - gdb 在简单程序中报告错误值。为什么?

转载 作者:行者123 更新时间:2023-11-28 08:20:56 25 4
gpt4 key购买 nike

#include <iostream>
int main ()
{
int* a = new int[15];
a[0] = 42;
a[1] = 43;
std::cerr << a[0];

return 0;
}

gdb 说 a = 0xffffffff 并且 'print a[0]' 给出 '无法访问内存地址' 但为什么呢?如果在 gdb 之外运行,程序会按预期打印出“42”。这里发生了什么?使用“g++ test2.cpp -gstabs+ -O0 -o test2”编译。

最佳答案

您在哪个平台上? gstabs+ 调试器格式并未得到普遍支持,如果您想使用它,您必须熟悉 COFF、DWARF 2 和可能我从未听说过的其他一些 exe/调试格式之间的迷人差异。底线 - 阅读 gdb 手册。但是如果您简单地使用 -g 标志,您的代码几乎肯定会正常工作。

关于c++ - gdb 在简单程序中报告错误值。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862558/

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