gdb不';t打印调试信息
当我在gdb中运行核心文件时,gdb不会显示错误来自何处或哪一行 在导致问题的应用程序中 我正在使用编译器选项-g-DDEBUG-D_DEBUG,但它似乎没有帮助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; }
任何帮助都将不胜感激,谢谢。你可能会大发雷霆。例如,在运行以下程序之后
#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 ?? ()