c - 如何在 GDB 中以符号形式检查枚举变量的值?
问题描述
我是 C 新手,想知道如何在 GDB 中以符号形式检查枚举变量的值?
这是我的测试代码:
int main ()
{
enum months {JAN = 1, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC }myMon;
printf("%d\n", JAN);
return 0;
}
在 GDB 中,我在行中设置断点printf("%d\n", JAN);
,并尝试检查myMon
其符号形式的值,并得到以下结果:
(gdb) p myMon
$1 = 0
myMon
我想知道是否有可能以符号形式打印值?
任何帮助将不胜感激。
解决方案
是的,该p
命令将执行此操作,但前提是变量设置为与命名枚举常量之一匹配的值。这里myMon
等于 0(显然是偶然的,因为您未对其进行初始化),而您将枚举常量设置为从 1 开始,因此 0 不是其中的任何一个。在这种情况下,gdb 回退到将其打印为整数。
Try myMon = AUG;
,然后在后续行中,p myMon
将$1 = AUG
根据需要显示。
确保您正在编译-g
以使所有这些工作。
推荐阅读
- c# - 如何将 Bing 地图的缩放级别设置为足够宽以显示所有图钉?
- php - WordPress - 获取帖子内容中第一张图片的 ID
- c# - .Net Core 5 AddMicrosoftIdentityWebAppAuthentication,现在如何结合OpenId和Bearer?
- python - 根据元组值将元组列表转换为字典
- azure - 如何使用 C# 列出具有当前天蓝色凭据的订阅(无需注册应用程序)
- git - 使用相同的更改但不同的提交更新分支
- javascript - 使用 JSON 模式进行 YAML 验证
- google-cloud-platform - 无法为 GCP Cloud SQL 的副本实例打开 log_bin 数据库标志
- winapi - 来自包含多个图标的 ICO 文件的 LoadImage (LoadIcon)
- javascript - bottomCalcFormatterParams 在 Tabulator.js 中不起作用?