|   LinuxC的調試工具  時間:2017-01-05作(zuo)者:華清遠見 在linux開(kai)發中(zhong),使(shi)用gcc做為編(bian)譯(yi)器(qi),編(bian)譯(yi)程(cheng)序產生出來的東西可以是非(fei)常高效的ELF可執行(xing)文件。 但是我們(men)今天來看的是非(fei)常有用的調試(shi)工具可以幫(bang)我們(men)查看到一些文(wen)件細節。 第一個是 nm nm 工具可以(yi)列(lie)出(chu)文件中(zhong)各部分的地址(zhi)信息(xi)。 
	08049f28 d _DYNAMIC 想(xiang)要得到上述結果,需要一個程序: 
	#include <stdio.h> 
	printf("Hello,world/n"); 
	void kkk(void) { 通過使用(yong)GCC編譯 gcc test.c 會生成一個(ge)a.out文件 然后直接使用 nm 就會得到屏幕上的結果了, 這個結果(guo)有什么用(yong)呢? 仔細觀察 nm 命令執(zhi)行的結果其中(zhong): 080483b4 T abc 的意思是abc函(han)數的入口地址是0x080483b4 在(zai)程(cheng)序中(zhong)我們(men)使(shi)用(yong)這個地址就可以(yi)直接調用(yong)函數(shu)abc,了(le)解鏈接信息。 第二個程序是 addr2line 這個程序如果(guo)想要正常(chang)執行,需要在編譯(yi)時加上-g選項 gcc test.c -g 這樣當你輸入 addr2line 0x080483b4 時(shi)系統會報出abc所(suo)在的行 /home/linux/test_c/test.c:2 這些命令(ling)都會自動的查找a.out文件(jian)并加載分析,顯示(shi)你所(suo)需要的文件(jian)信息。 
 相關資訊 發表評論 
 |