gdb如何显示宏定义的值

   今天调试程序时,一直想到#define的值打印出来看一看,如#define NUMBER '0',gdb中执行:p NUMBER时出现如下错误:(我的编译命令为gcc -g test.c -o test)

   No symbol "NUMBER" in current context.

  


    google后才知道如果需要在gdb中能查看宏定义,gcc编译的时候需要加上 -gdwarf-2和-g3的参数。

加了-g3的参数后,gcc编译的时候,会将扩展的debug 信息编译进二进制文件里面,包括宏定义信息。

所以,如果要使用gdb调试二进制文件里面的宏定义信息,这个选项必须开启。


DWARF是一种应用的比较广泛的elf(可执行和链接格式), 这的-gdwarf-2意思是使用版本2的格式


于是重新编译:gcc -g -gdwarf-2 -g3 test.c -o test

就可以查看宏定义的量了

     



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值