我对使用gdb调试器是相当陌生的,因此在运行gdb时遇到显示的代码,这使我无法使用调试器。我不熟悉所显示的代码,但是做了一点研究,我以为我不小心打开了一个“线程”?很难解释我不理解的内容,但是我将链接一张图片以解释我在说什么。基本上,我想恢复到实际代码的“基本”显示,而不是这样:displayed by the debugger
答案 0 :(得分:0)
您的程序具有scanf
流,称为NULL
函数家族之一。
通常,当您不检查错误时就会发生这种情况。例如:
FILE *fp = fopen("/file/which/does/not/exist", "r");
char ch;
fscanf(fp, "%c", &ch); /* BUG: should check fp!=NULL first. */
您应该始终检查任何可能失败的函数的返回值。
您可以查看GDB fscanf
命令在where
中调用了哪些代码。