這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么在Linux終端下調(diào)試C語言技巧,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
目前創(chuàng)新互聯(lián)建站已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、南澗網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、strace
這個(gè)功能很強(qiáng)大,能夠看到很多底層調(diào)用,便于分析問題:
舉例:
[wangbin@localhost pas]$ strace -p 10472 Process 10472 attached - interrupt to quit futex(0x4113be8, FUTEX_WAIT, 10482, NULLProcess 10472 detached
我們可以看出這個(gè)進(jìn)程已經(jīng)死鎖了,所以strace命令非常有用,特別是網(wǎng)絡(luò)程序。
2、tcpdump
在分析fastcgi程序時(shí),我們利用這個(gè)命令來查看tcp包的情況:
[root@localhost ~]# tcpdump -i lo -s 1500 port 9000 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 1500 bytes 15:23:16.901004 IP localhost.localdomain.50867 > localhost.localdomain.9000: S 3482201970:3482201970(0) win 3276715:23:16.901025 IP localhost.localdomain.9000 > localhost.localdomain.50867: S 3473410857:3473410857(0) ack 3482201971 win 32767 15:23:16.901039 IP localhost.localdomain.50867 > localhost.localdomain.9000: . ack 1 win 256 15:23:16.901150 IP localhost.localdomain.50867 > localhost.localdomain.9000: P 1:1377(1376) ack 1 win 256 15:23:16.901170 IP localhost.localdomain.9000 > localhost.localdomain.50867: . ack 1377 win 256 15:23:16.901214 IP localhost.localdomain.9000 > localhost.localdomain.50867: P 1:97(96) ack 1377 win 256 15:23:16.901222 IP localhost.localdomain.50867 > localhost.localdomain.9000: . ack 97 win 256 15:23:16.901236 IP localhost.localdomain.9000 > localhost.localdomain.50867: F 97:97(0) ack 1377 win 256 15:23:16.901822 IP localhost.localdomain.50867 > localhost.localdomain.9000: F 1377:1377(0) ack 98 win 256 15:23:16.901836 IP localhost.localdomain.9000 > localhost.localdomain.50867: . ack 1378 win 256
我們通過這個(gè)命令可以發(fā)現(xiàn)是9000端口主動(dòng)關(guān)閉了連接,這說明在另一端保持連接是沒有效果的。
3、core文件
這個(gè)作用就是像取款機(jī)旁邊的攝像機(jī),能夠記錄下程序崩潰時(shí)的場(chǎng)景,對(duì)于分析高難度問題非常有用,不過用這個(gè),一定要權(quán)限配置正確了。
4、gdb
gdb -p 進(jìn)程號(hào),可以去調(diào)試正在執(zhí)行中的進(jìn)程,功能也很強(qiáng)大。也就是說,只要你上線的程序編譯的時(shí)候加上了-g,并去掉了優(yōu)化參數(shù),你就可以在上線的時(shí)候調(diào)試某一個(gè)進(jìn)程,比如nginx進(jìn)程。
5、log文件
這是最常用的方法,也是最土的方法,不過對(duì)于調(diào)試還是非常有用的。
上述就是小編為大家分享的怎么在Linux終端下調(diào)試C語言技巧了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。