新聞中心
在Linux中,打印函數(shù)名是一項(xiàng)非常有用的技能。不僅可以追蹤程序運(yùn)行時(shí)的錯(cuò)誤,還可以了解程序中各個(gè)函數(shù)的調(diào)用順序。下面將介紹如何在Linux中打印函數(shù)名。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)沁陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
一、利用GCC選項(xiàng)打印函數(shù)名
GCC是Linux下最常用的編譯器,其中有一些選項(xiàng)可以在編譯時(shí)打印函數(shù)名。具體的選項(xiàng)為:
-fverbose-a:在編譯過程中生成編譯器產(chǎn)生的中間代碼,這個(gè)選項(xiàng)可以打印出所有的函數(shù)名和調(diào)用情況。
例如:
gcc -fverbose-a -S hello.c -o hello.s
上述命令將hello.c編譯成匯編代碼,并生成一份可讀性比較高的hello.s文件。其中,就包含了所有函數(shù)名和調(diào)用情況。
優(yōu)點(diǎn):可以方便地查看函數(shù)調(diào)用情況,包括調(diào)用次數(shù)和位置等。
缺點(diǎn):需要重新編譯整個(gè)程序,比較麻煩,而且會(huì)使得程序運(yùn)行速度變慢。
二、利用gdb打印函數(shù)名
GDB是Linux下最常用的調(diào)試工具,可以在程序運(yùn)行時(shí)動(dòng)態(tài)地打印函數(shù)名。具體的步驟如下:
1.編譯程序時(shí)加上-g選項(xiàng)
例如:
gcc -g -Wall -o test test.c
2.啟動(dòng)gdb調(diào)試程序
例如:
gdb test
3.設(shè)置斷點(diǎn)
例如:
break mn
4.運(yùn)行程序
例如:
run
5.程序運(yùn)行到斷點(diǎn)處時(shí),打印函數(shù)名
例如:
info frame
該命令可以查看當(dāng)前執(zhí)行代碼所在的函數(shù)名。
優(yōu)點(diǎn):可以動(dòng)態(tài)地查看函數(shù)名,不需要重新編譯程序。
缺點(diǎn):對(duì)程序運(yùn)行速度有一定的影響。
三、利用objdump打印函數(shù)名
objdump是Linux下的反匯編工具,可以在編譯后的程序中查看函數(shù)名。具體的步驟如下:
1.編譯程序時(shí)加上-g選項(xiàng)
例如:
gcc -g -Wall -o test test.c
2.使用objdump反編譯程序
例如:
objdump -t test
3.查看函數(shù)名
例如:
objdump -t test | grep fun
其中,fun為要查看的函數(shù)名。
優(yōu)點(diǎn):可以在不運(yùn)行程序的情況下查看函數(shù)名。
缺點(diǎn):需要以反匯編的形式查看,不太友好。
綜上所述,打印函數(shù)名是一項(xiàng)非常有用的技能。在Linux中,可以使用三種不同的方法來打印函數(shù)名,具體使用哪種方法取決于具體的情況。如果需要實(shí)時(shí)查看函數(shù)名,可以使用gdb;如果想要查看所有函數(shù)名,可以使用objdump或者GCC選項(xiàng)。無論使用哪種方法,都要先確保程序已經(jīng)被編譯,并且添加了-g選項(xiàng)。
相關(guān)問題拓展閱讀:
- 在linux中,我用vi編輯腳本時(shí),我希望把某些函數(shù)的名字設(shè)定為高亮顯示,用神馬命令啊?
在linux中,我用vi編輯腳本時(shí),我希望把某些函數(shù)的名字設(shè)定為高亮顯示,用神馬命令?。?/h3>
可以設(shè)置一下變量,alias vi=’/usr/bin/vim’!
vi編輯腳本,不能設(shè)置高亮,神馬都橘豎沒用,要用vi的升級(jí)版本vim,要方便改變世改配色方案的圓返大話你更好用gvim。。
vim有個(gè)函數(shù)列表的插件,說明如下鏈宏碼:
你要自己定義高亮關(guān)鍵字,絕歲需要修改高亮語法,看這棚哪里:
linux打印函數(shù)名的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux打印函數(shù)名,如何在Linux中打印函數(shù)名?,在linux中,我用vi編輯腳本時(shí),我希望把某些函數(shù)的名字設(shè)定為高亮顯示,用神馬命令???的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱:如何在Linux中打印函數(shù)名?(linux打印函數(shù)名)
轉(zhuǎn)載來于:http://www.5511xx.com/article/djihsid.html


咨詢
建站咨詢
