1. 程式人生 > >二進位制工具:nm_列出目標檔案中的符號表]

二進位制工具:nm_列出目標檔案中的符號表]

該符號位於只讀資料區。例如定義全域性const int test[] = {123, 123};test就是一個只讀資料區的符號。注意在cygwin下如果使用gcc直接編譯成MZ格式時,原始檔中的test對應_test,並且其符號型別為D,即初始化資料段中。但是如果使用m6812-elf-gcc這樣的交叉編譯工具,原始檔中的test對應目標檔案的test,即沒有新增下劃線,並且其符號型別為R。一般而言,位於rodata section。值得注意的是,如果在一個函式中定義const char *test = “abc”, const char test_int = 3。使用nm都不會得到符號資訊,但是字串“
abc”分配於只讀儲存器中,testrodata section中,大小為4