OS是Windows,GCC是4.7.2,GDB是7.3。GCC - 在調試符號中爲#includes生成絕對路徑
我在C .c文件:與/項目/ src目錄/文件夾中的包括:
#include "../inc/header.h"
彙編我在調試符號的相對路徑後:
> objdump -WL obj.o | grep header.h
C:/project/src/../inc/header.h
...
但我希望它是C:/project/inc/header.h,因爲如果我在發出set斷點命令時使用絕對路徑,那麼在gdb中設置BP會失敗。
這種情況是人爲的,但由於環境條件,我的問題的唯一解決方案是在調試符號中生成絕對路徑或者教GDB解析相對路徑。
是否有一個開關讓GCC打開調試符號中的絕對路徑生成?
另一個解決方案是在將'../ inc'添加到包含路徑(例如使用'-I')之後,將您的構建修復爲'#include「header.h」'。 –
確實如此,但我無法更改源代碼,只有編譯器標誌。 –
很多編碼標準都禁止以'。/'或'../'開頭的相對路徑。 –