C++ gdb在简单程序中报告错误的值。为什么? #包括 int main() { int*a=新的int[15]; a[0]=42; a[1]=43; std::cerr

C++ gdb在简单程序中报告错误的值。为什么? #包括 int main() { int*a=新的int[15]; a[0]=42; a[1]=43; std::cerr,c++,gdb,C++,Gdb,是的,我可以复制,但只能使用-gstabs+ 那么:为什么要使用-gstabs+ 听起来不公平,但这是一个诚实的问题,STAB+带来“正常”调试信息有什么好处?您在哪个平台上?gstabs+调试器格式并不是普遍支持的,如果您想使用它,您必须熟悉COFF、DWARF 2和其他一些exe/debug f之间令人着迷的差异虽然我只听过GDB手册,但是如果你简单地使用-G标志,你的代码几乎肯定会正常工作。你确定你不想访问 A之前吗?新< /COD>被调用。我在几年前开始调试C++程序时遇到了问题。ats

是的,我可以复制,但只能使用
-gstabs+

那么:为什么要使用
-gstabs+


听起来不公平,但这是一个诚实的问题,STAB+带来“正常”调试信息有什么好处?

您在哪个平台上?gstabs+调试器格式并不是普遍支持的,如果您想使用它,您必须熟悉COFF、DWARF 2和其他一些exe/debug f之间令人着迷的差异虽然我只听过GDB手册,但是如果你简单地使用-G标志,你的代码几乎肯定会正常工作。

你确定你不想访问<代码> A<代码>之前吗?<代码>新< /COD>被调用。我在几年前开始调试C++程序时遇到了问题。ats和stabs+是当时唯一正确工作的。从那以后我一直坚持使用它,这是我遇到的第一个问题。
#include <iostream>
int main ()
{
  int* a = new int[15];
  a[0] = 42;
  a[1] = 43;
  std::cerr << a[0];

  return 0;
}