利用strace 除錯程式

2021-06-27 17:09:53 字數 630 閱讀 2718

strace -p pid  除錯程式;

可以看到程序執行的過程,顯示的是系統呼叫的函式,同時可以看出系統呼叫的返回值

core除錯

在root使用者下執行sysctl -a | grep core,檢視core檔案的配置是否正確

命令設定:

1)使用命令 ulimit -c unlimited 設定coredump檔案可以使用最大空間;

或去vi /etc/security/limits.conf修改

2)/proc/sys/kernal/core_pattern 可以設定coredump產生的路徑和檔名格式。如果不修改,預設在程式執行目錄下產生。

或使用命令修改:

sysctl -w kernel.core_pattern=/core/core.%e.%p

如果設定了上述兩點,還是不能產生coredump,可能是以下原因:

1) 有些訊號量預設是不產生coredump的,可以用 man signal  看一下。

2) 硬碟空間不夠了,coredump需要占用很大的硬碟空間(上g的空間);

3) ulimit -c 命令只在當前terminal上有效,也就是程式啟動的terminal設定該命令才有效。該命令無效,當然就不能產生coredump了。

使用linux的strace來除錯程式系統呼叫

命令用法 讓我們看看strace命令如何追蹤乙個程式的執 況。最簡單的形式,strace後面可以跟任何命令。它將列出許許多多的系統呼叫。一開始,我們並不能理解所有的輸出,但是如果你正在尋找一些特殊的東西,那麼你應該能從輸出中發現它。linux strace命令詳解 linux strace 跟蹤程序...

如何利用gdb除錯程式?

程式的大體意思就是各乙個陣列賦值,然後輸出來 程式已經寫在了上面,下面我們就來看一下如何產生帶有除錯資訊的編譯檔案,這裡我們要使用gcc的 g引數,用於在編譯檔案中加入一些除錯資訊。發現加了 g和沒有加 g,生成的檔案大小不一樣的!你會發現,加上g後,產生的編譯檔案體積也會增加,所以在我們做軟體開發...

利用strace除錯關機充電服務程式

external strace android.mk 補丁如下 a android.mk b android.mk 232,7 232,7 local c includes x86 64 local path linux x86 64 local path linux local module st...