2015-11-08 36 views
0

是否可以從使用調試信息編譯的程序獲取字符串的地址?gdb:獲取字符串/註釋的地址

e.g,:

int main(void) 
{ 
    // Call function 
    f(); 
    return 0; 
} 

是否有可能得到的字符串 「//調用函數」 地址? 如果我使用「信息行x」,我得到一個地址,但它不包含字符串。它包含調用f();

回答

0

是否可以獲取字符串「// Call function」的地址?

不,因爲該字符串是而不是在編譯的程序中。

編譯過程中的第一步是預處理,它擴展了所有的宏定義,並去除所有註釋

您可以通過運行

gcc -E t.c 

您的評論將在那裏看到,步驟的輸出。

可以讓gcc在預處理源代碼中留下注釋(使用-C標誌),但不可能將註釋「編譯」爲最終的二進制文件。