源碼控制工具

CVS,SVN,Git

Git使用多個分佈式存儲庫,基於改變集進行歷史跟蹤。

步驟:安裝,建立Git存儲庫,向庫中添加內容,操作庫中文件,合併,其他。

GNU/Linux環境編程一書

 

 

Gnuplot古老但流行的可視化程序,可與Ruby,Python,Smalltalk綁定。

 

 

pause會把進程掛起,直到接收到信號。返回繼續運行。

kill向一個或多個進程發送信號。

raise可以向當前進程發出一個特殊的信號。

alarm函數在預先設定的時間長度到達後發出一個SIGALRM信號。

sigaction是signal的改進版,也是POSIX的。

top和ps(-a列出所有)有關,top是實時的。

 

線程創建,推出,管理(pthread_self取得線程描述符句柄),同步(pthread_join讓線程創建者等待這個線程的結束),線程互斥(pthread_mutex)線程條件變量(pthread_cond允許一個線程基於條件喚醒另一個線程)。

構建使用線程的應用程序:

gcc -pthread threadapp.c -o threadapp -lpthread (-pthread選項爲程序提供了多線程支持,如重入性等)

 

用戶空間,進程間通信:

消息隊列,信號量,共享內存等。

 

高級文件操作:文件類型屬性,遍歷,映射,事件,緩衝傳輸。

glob正則表達式。

使用inotify進行文件系統事件通知。

 

getopt和getopt_long解析命令行選項

時間換算函數

sysinfo收集系統層次信息,如負載,存儲容量等。

mmap映射物理內存,把文件內容映射到用戶程序空間。

鎖定解鎖內存頁面(用於提高程序性能,使所使用的頁面不被交換出去)

錯誤報告

 

調試開始時,必須先載入要進行調試的程序,可以用以下兩種方式:
 * 在啓動gdb後執行以下命令:
   file 可執行文件路徑
 * 在gdb啓動時就載入程序:
   gdb 可執行文件路徑

list :顯示程序中的代碼

forward/search :從當前行向後查找匹配某個字符串的程序行

reverse-search :和forward/search相反,向前查找字符串

break 要設置斷點的行號

tbreak :設置臨時斷點,在設置之後只起作用一次。

clear :和break相反,clear用於清除斷點。

run :啓動程序,在run後面帶上參數可以傳遞給正在調試的程序

awatch :用來增加一個觀察點(add watch),使用格式:awatch 變量或表達式。當表達式的值發生改變或表達式的值被讀取時,程序就會停止運行。

watch :與awatch類似用來設置觀察點,但程序只有當表達式的值發生改變時纔會停止運行。

commands :設置在遇到斷點後執行特定的指令。‘

delete :清除斷點或自動顯示的表達式

disable :讓指定斷點失效。

enable :和disable相反,恢復失效的斷點。

ignore :忽略斷點。

condition :設置斷點在一定條件下才能生效。

cont/continue :使程序在暫停在斷點之後繼續運行。

jump :讓程序跳到指定行開始調試。

next :繼續執行語句,但是跳過子程序的調用。‘

nexti :單步執行語句,但和next不同的是,它會跟蹤到子程序的內部,但不打印出子程序內部的語句。

step :與next類似,但是它會跟蹤到子程序的內部,而且會顯示子程序內部的執行情況。

whatis :顯示某個變量或表達式的數據類型。

ptype :和whatis類似,用於顯示數據類型,但是它還可以顯示typedef定義的類型等。

set :設置程序中變量的值。set 變量=表達式        set 變量:=表達式
display :增加要顯示值的表達式。info display :顯示當前所有的要顯示值的表達式。
print :打印變量或表達式的值。

backtrace :打印指定個數的棧幀(stack frame)。

frame :打印棧幀。info frame :顯示當前棧幀的詳細信息。

quit :退出gdb。

kill :結束當前程序的調試。

 

子進程,父進程關係:

子進程在自己的虛擬地址空間中執行,空間包括棧、堆和數據空間 。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章