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
命令调用了哪些代码。
推荐阅读
- r - 根据 dplyr 中的另一列替换列中的 vaue
- android - 使用 ionic cordova 构建的 keystore.jks 签名 APK 的问题
- encryption - ECDH 密钥可以从 ECDSA 密钥派生吗?
- python - 字典复制自身的问题
- matlab - 从广义特征值问题到经典特征值问题
- chart.js - 有没有办法在同一行对齐标题和图例?
- javascript - Selenium - 等待 ScrollIntoView 完成
- sql - 在 BigQuery 中计算订单序列
- sql - SQL/mariadb 使用 IN() 以相同顺序在多个列上进行选择
- unity3d - Unity Assets 不会与玩家发生碰撞,但立方体等会