0
是否可以從使用調試信息編譯的程序獲取字符串的地址?gdb:獲取字符串/註釋的地址
e.g,:
int main(void)
{
// Call function
f();
return 0;
}
是否有可能得到的字符串 「//調用函數」 地址? 如果我使用「信息行x」,我得到一個地址,但它不包含字符串。它包含調用f();
是否可以從使用調試信息編譯的程序獲取字符串的地址?gdb:獲取字符串/註釋的地址
e.g,:
int main(void)
{
// Call function
f();
return 0;
}
是否有可能得到的字符串 「//調用函數」 地址? 如果我使用「信息行x」,我得到一個地址,但它不包含字符串。它包含調用f();
是否可以獲取字符串「// Call function」的地址?
不,因爲該字符串是而不是在編譯的程序中。
編譯過程中的第一步是預處理,它擴展了所有的宏定義,並去除所有註釋。
您可以通過運行
gcc -E t.c
您的評論將不在那裏看到,步驟的輸出。
可以讓gcc在預處理源代碼中留下注釋(使用-C
標誌),但不可能將註釋「編譯」爲最終的二進制文件。