gdb调试器不熟悉显示的代码

时间:2018-10-25 05:57:50

标签: gdb

我对使用gdb调试器是相当陌生的,因此在运行gdb时遇到显示的代码,这使我无法使用调试器。我不熟悉所显示的代码,但是做了一点研究,我以为我不小心打开了一个“线程”?很难解释我不理解的内容,但是我将链接一张图片以解释我在说什么。基本上,我想恢复到实际代码的“基本”显示,而不是这样:displayed by the debugger

1 个答案:

答案 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中调用了哪些代码。