首页 > 解决方案 > gdb 调试器不熟悉显示的代码

问题描述

我对使用 gdb 调试器相当陌生,因此当我运行 gdb 时遇到显示的代码让我对调试器毫无用处。我不熟悉显示的代码,但做了一些研究,我想我不小心打开了一个“线程”?很难解释我不明白的事情,但我会链接一张图片来解释我在说什么。基本上我想恢复到我的实际代码的“基本”显示,而不是这个:由调试器显示

标签: gdb

解决方案


您的程序称为scanf函数家族之一,带有NULL流。

当您不检查错误时,通常会发生这种情况。例如:

FILE *fp = fopen("/file/which/does/not/exist", "r");
char ch;

fscanf(fp, "%c", &ch);  /* BUG: should check fp!=NULL first.  */

您应该始终检查任何可能失败的函数的返回值。

fscanf您可以查看使用 GDBwhere命令调用了哪些代码。


推荐阅读