自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux終端下調(diào)試C語言技巧

系統(tǒng) Linux
本篇文章向讀者介紹了Linux終端下調(diào)試C語言的技巧,包括strace、tcpdump、core文件、gdb和log文件的作用。有的還賦給了實(shí)例,相信對(duì)初學(xué)者來說會(huì)很有幫助! 、

本篇文章向讀者介紹了Linux終端下調(diào)試C語言的技巧,包括strace、tcpdump、core文件、gdb和log文件的作用,相信對(duì)初學(xué)者來說會(huì)很有幫助!

1、strace

這個(gè)功能很強(qiáng)大,能夠看到很多底層調(diào)用,便于分析問題:

舉例:

[wangbin@localhost pas]$ strace -p 10472
Process 10472 attached - interrupt to quit
futex(0x4113be8, FUTEX_WAIT, 10482, NULL
<unfinished ...>
Process 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 32767 <mss 16396,sackOK,timestamp 2296841391 0,nop,wscale 7>
15:23:16.901025 IP localhost.localdomain.9000 > localhost.localdomain.50867: S 3473410857:3473410857(0) ack 3482201971 win 32767 <mss 16396,sackOK,timestamp 2296841391 2296841391,nop,wscale 7>
15:23:16.901039 IP localhost.localdomain.50867 > localhost.localdomain.9000: . ack 1 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901150 IP localhost.localdomain.50867 > localhost.localdomain.9000: P 1:1377(1376) ack 1 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901170 IP localhost.localdomain.9000 > localhost.localdomain.50867: . ack 1377 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901214 IP localhost.localdomain.9000 > localhost.localdomain.50867: P 1:97(96) ack 1377 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901222 IP localhost.localdomain.50867 > localhost.localdomain.9000: . ack 97 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901236 IP localhost.localdomain.9000 > localhost.localdomain.50867: F 97:97(0) ack 1377 win 256 <nop,nop,timestamp 2296841391 2296841391>
15:23:16.901822 IP localhost.localdomain.50867 > localhost.localdomain.9000: F 1377:1377(0) ack 98 win 256 <nop,nop,timestamp 2296841392 2296841391>
15:23:16.901836 IP localhost.localdomain.9000 > localhost.localdomain.50867: . ack 1378 win 256 <nop,nop,timestamp 2296841392 2296841392>

我們通過這個(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)試還是非常有用的。

【編輯推薦】

  1. Linux文件分割與合并:split&cat
  2. 推薦:輕型簡(jiǎn)易的Linux桌面環(huán)境
  3. Linux進(jìn)程與作業(yè)的區(qū)別及相關(guān)命令
  4. Linux下利用ext3grep恢復(fù)被刪除的文件
  5. Linux十大妙用:充當(dāng)Windows修復(fù)工具

 

責(zé)任編輯:馮宇 來源: Linux社區(qū)
相關(guān)推薦

2009-03-09 21:36:41

Linux終端輸出

2014-06-18 10:47:05

dstat監(jiān)控工具

2018-02-07 15:35:04

2011-01-14 17:00:11

Linux內(nèi)存泄露

2015-01-27 23:21:53

Linux終端

2015-09-02 10:31:59

UbuntuLinux終端

2016-09-21 08:26:27

LinuxGoogleUbuntu

2020-06-02 14:02:22

Linux生產(chǎn)力工具文件

2018-02-01 17:32:30

LinuxUNIXBash Shell

2021-04-20 09:52:43

Linuxcore dump代碼

2023-01-03 15:47:09

Linux內(nèi)核C語言

2022-07-18 07:38:52

Linux終端工具

2018-05-16 11:45:42

Linux終端電池狀態(tài)

2020-10-25 16:53:56

Linux 開源操作系統(tǒng)

2015-12-01 13:09:54

Linux終端文件系統(tǒng)

2015-12-03 09:42:56

Linux終端文件系統(tǒng)

2011-08-30 15:41:03

UbuntuNethogs

2020-01-27 10:48:55

Linux終端技巧

2023-02-17 08:14:29

C語言C技巧內(nèi)存

2019-03-27 11:30:30

Linux終端密碼生成器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)