gdb不';t打印调试信息

gdb不';t打印调试信息,gdb,Gdb,当我在gdb中运行核心文件时,gdb不会显示错误来自何处或哪一行 在导致问题的应用程序中 我正在使用编译器选项-g-DDEBUG-D_DEBUG,但它似乎没有帮助 任何帮助都将不胜感激,谢谢。你可能会大发雷霆。例如,在运行以下程序之后 #include <stdio.h> #include <string.h> int main(void) { int a[10]; memset(a, 0, 100 * sizeof a[0]); return 0; }

当我在gdb中运行核心文件时,gdb不会显示错误来自何处或哪一行 在导致问题的应用程序中

我正在使用编译器选项-g-DDEBUG-D_DEBUG,但它似乎没有帮助


任何帮助都将不胜感激,谢谢。

你可能会大发雷霆。例如,在运行以下程序之后

#include <stdio.h>
#include <string.h>

int main(void)
{
  int a[10];

  memset(a, 0, 100 * sizeof a[0]);

  return 0;
}
where
bt
命令的输出用处不大:

(gdb) where #0 0x0000000000000000 in ?? () #1 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000000000 in ?? () (gdb)在哪里 #0 0x0000000000000000英寸??() #1 0x0000000000000000英寸??() (gdb)英国电信 #0 0x0000000000000000英寸??() #1 0x0000000000000000英寸??()
好的,问题解决了。我有一个返回字符串的递归函数,但问题是没有返回任何内容,但我仍然不明白为什么没有生成调试信息,当我逐步遍历代码时,它显示了我正在遍历的行号,但我猜是因为它得到的错误行丢失了?那么,在哪里出错就没有断点了?当它试图通过递归到函数中来连接自身时,使用“+=”将进入第二个调用,但在函数末尾崩溃,因为没有返回任何内容。但这不应该在没有返回的行上的第一个函数调用上生成错误吗


谢谢。

库函数内部可能会发生错误。您是否尝试过键入
backtrace
? (gdb) where #0 0x0000000000000000 in ?? () #1 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000000000 in ?? ()