gpt4 book ai didi

c - 在 gdb 中打印函数宏定义

转载 作者:行者123 更新时间:2023-12-05 03:20:21 25 4
gpt4 key购买 nike

这是源文件片段:

#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 以任何方式扩展函数宏?

最佳答案

它变得像 macro expand 一样简单

(gdb) macro expand PRINT_CONCAT(2, 4)                                                                                                                                                                              
expands to: printf("%d\n", 24)

-ggdb3 甚至不是必需的,-g3 就足够了。 -g2 似乎没有包含所需的信息。

关于c - 在 gdb 中打印函数宏定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73187668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com