首頁 > 運維 > linux運維 > 主體

linux中程式偵錯的方法有哪些

王林
發布: 2019-12-06 11:01:19
原創
3748 人瀏覽過

linux中程式偵錯的方法有哪些

1、使用'print' 語句

這是一個基本的偵錯問題的方法。我們在程式中懷疑的地方插入print語句來了解程式的運行流程控制流程和變數值的改變。

它的缺點是需要進行程式編輯,加入'print'語句,必須重新編譯,重新執行以獲得輸出。若需要調試的程式比較大,這將是耗時費力的方法。

2、使用查詢

在某些情況下,我們需要弄清楚在一個運行在內核中的進程的狀態和記憶體映射。為了獲得這些信息,我們不需要在核心中插入任何程式碼。相反,可以用 /proc檔案系統。在/proc的偽檔案系統,保留系統啟動運行就收集的運行資訊 (cpu資訊, 記憶體容量等)。

ls -l /proc的輸出結果,透過對系統中運行的每一個進程在/proc檔案系統中有一個以進程id命名的項。每個進程的細節資訊可以在進程id對應的目錄下的檔案中取得。也可以'ls /proc/pid'的輸出。

免費影片教學推薦:linux影片教學

3、使用追蹤

strace的和ltrace是兩個在Linux中用來追蹤程式的執行細節的追蹤工具。

strace:

strace攔截和記錄系統呼叫及其接收的訊號。對於用戶,它顯示了系統呼叫、傳遞給它們的參數和傳回值。 strace可以附著到已在執行的進程或新的進程。它作為一個針對開發者和系統管理員的診斷、調試工具是很有用的。

它也可以用來當做一個透過追蹤不同的程式呼叫來了解系統的工具。這個工具的好處是不需要原始碼,程式也不需要重新編譯。

使用strace的基本語法是:

strace 命令
登入後複製

strace的輸出非常長,我們通常不會對顯示的每一行都感興趣。我們可以用'-e expr'選項來過濾不想要的資料。

用 '-p pid' 選項來綁定到運行中的進程。

用'-o'選項,指令的輸出可以被重定向到檔案。

linux中程式偵錯的方法有哪些

strace過濾成只有系統呼叫的輸出。

 ltrace:

ltrace追蹤並記錄一個行程的動態(執行時間)函式庫的呼叫及其收到的訊號。它也可以追蹤一個進程所作的系統呼叫。它的用法是類似與strace。

ltrace command
登入後複製

'-i' 選項在呼叫庫時列印指令指標。

'-S' 選項被用來現實系統呼叫和函式庫呼叫.

linux中程式偵錯的方法有哪些

trace捕捉'STRCMP'函式庫呼叫的輸出。

相關文章教學推薦:linux教學

#

以上是linux中程式偵錯的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!