[英]Print function macro definition in gdb
这是源文件片段:
#define TEST 34
#define PRINT_CONCAT(a, b) \
printf("%d\n", a##b)
使用GCC
编译并将此源文件链接到带有标志-ggdb3 -O3
的二进制文件并使用gdb
运行应用程序会显示以下行为:
(gdb) p TEST
$3 = 34
(gdb) p PRINT_CONCAT
No symbol "PRINT_CONCAT" in current context.
有没有办法让 gdb 以任何方式扩展 function 宏?
它变得像宏展开一样简单
(gdb) macro expand PRINT_CONCAT(2, 4)
expands to: printf("%d\n", 24)
-ggdb3
甚至不是必需的, -g3
就足够了。 -g2
似乎没有包含所需的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.