[英]Can C macros be expanded in gdb when the program was compiled using clang?
我有一個宏,它獲取整數的第 J 位:
#define TWO_TO_THE(POWER) (1 << POWER)
#define JTH_BIT(BITS, J) ((TWO_TO_THE((J-1)) & BITS) != 0)
但是,我不能通過發出命令print JTH_BIT(i,j)
從 gdb 使用它,甚至可以在調試時使用 C 中的宏嗎?
宏由預處理器處理。 編譯器甚至不知道它們。
但是,如果幸運的話,GCC 的選項-g3
可以完成這項工作並生成允許gdb
擴展宏的代碼。
從gdb 文檔(我強調):
-glevel
[...] 級別 3 包括額外信息,例如程序中存在的所有宏定義。 當您使用 -g3 時,某些調試器支持宏擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.