LinuxC的調(diào)試工具
時(shí)間:2017-01-05作者:華清遠(yuǎn)見
在linux開發(fā)中,使用gcc做為編譯器,編譯程序產(chǎn)生出來的東西可以是非常高效的ELF可執(zhí)行文件。 但是我們今天來看的是非常有用的調(diào)試工具可以幫我們查看到一些文件細(xì)節(jié)。 第一個(gè)是 nm nm 工具可以列出文件中各部分的地址信息。
08049f28 d _DYNAMIC 想要得到上述結(jié)果,需要一個(gè)程序:
#include <stdio.h>
printf("Hello,world/n");
void kkk(void) { 通過使用GCC編譯 gcc test.c 會(huì)生成一個(gè)a.out文件 然后直接使用 nm 就會(huì)得到屏幕上的結(jié)果了, 這個(gè)結(jié)果有什么用呢? 仔細(xì)觀察 nm 命令執(zhí)行的結(jié)果其中: 080483b4 T abc 的意思是abc函數(shù)的入口地址是0x080483b4 在程序中我們使用這個(gè)地址就可以直接調(diào)用函數(shù)abc,了解鏈接信息。 第二個(gè)程序是 addr2line 這個(gè)程序如果想要正常執(zhí)行,需要在編譯時(shí)加上-g選項(xiàng) gcc test.c -g 這樣當(dāng)你輸入 addr2line 0x080483b4 時(shí)系統(tǒng)會(huì)報(bào)出abc所在的行 /home/linux/test_c/test.c:2 這些命令都會(huì)自動(dòng)的查找a.out文件并加載分析,顯示你所需要的文件信息。
相關(guān)資訊
發(fā)表評(píng)論
|