1. 程式人生 > >c程式段錯誤及效能調查

c程式段錯誤及效能調查

     在linux c開發中經常會遇到各種問題,的確很令人頭疼,下面總結一下我用到的調查方法:
1.段錯誤---gdb

   gdb絕對是linux c中的除錯利器,用gdb將程式掛起,在出現段錯誤的時候會自動停止,這個時候輸入bt,檢視函式呼叫棧,就會看到在呼叫到具體哪個函式時候出問題的,結合列印指令p檢視變數值,一般都是訪問了錯誤的記憶體。

    gdb的使用在網上有很詳細的資料,這裡就部具體介紹了,除了調查段錯誤,gdb還有掛起執行緒的作用,可以單獨除錯執行緒,可以說是除錯中的屠龍刀倚天劍。

    程式執行效能低,想看看具體是在哪裡耗時了,就輪到strace、ltrace登場了

2.效能---strace、ltrace

    strace可以跟蹤程式,檢視程式執行情況,加上-C引數在程式退出時可以看到最耗時的處理是哪個;ltrace和strace大同小異,是用來檢視程式呼叫系統介面的情況。

3.cpu佔用率高

    對於多執行緒的程式來說可能是某個執行緒佔用了較多的cpu,使用top命令,然後按h即可看到各個執行緒佔用cpu的情況,然後找出佔用cpu最高的執行緒,使用gdb掛起該執行緒(attach命令)檢視具體是哪裡的處理,然後再做優化。