使用c/c++語言開發程式時,當程式crash的時候產生core dump檔案對於除錯程式是很有幫助的。在redhat linux系統中預設是不生成core dump檔案的,這是因為在/etc/profile檔案中有這樣一行
ulimit -s -c 0 > /dev/null 2>&1
如何開啟core dump呢?最簡單的方法是使用者在自己的~/.bash_profile中加入ulimit -s -c unlimited > /dev/null 2>&1,這樣設定後允許當前使用者生成沒有大小限制的core dump檔案。此外還有兩種系統級修改生成core dump的方法。
第一種方法是修改/etc/profile,把ulimit那一行改為
ulimit -s -c unlimited > /dev/null 2>&1
這樣設定後系統允許所有使用者生成沒有大小限制的core dump檔案。這樣做的優點是不需要重起系統,缺點是無法控制只讓某些使用者生成core dump檔案。
第二種方法是修改/etc/security/limits.conf檔案。很多系統上限都可以通過修改這個檔案改變,如最大子程序個數,最大開啟檔案數等等。這個檔案有詳細的注釋,對如何修改這個檔案做了說明。如果想對所有使用者開啟core dump,可以加入一行
* soft core 0
如果只想對某些使用者或使用者組開啟core dump,可以加入
user soft core 0或@group soft core 0
注意如果通過修改/etc/security/limits.conf檔案開啟core dump,還需要注釋掉/etc/profile中的ulmit那一行
#ulimit -s -c 0 > /dev/null 2>&1
這樣修改的優點是可以針對特定使用者或特定組開啟core dump檔案,缺點是需要重起系統。
最後說一下生成core dump檔案的位置,預設位置與可執行程式在同一目錄下,檔名是core.***,其中***是乙個數字。core dump檔名的模式儲存在/proc/sys/kernel/core_pattern中,預設值是core。通過以下命令可以更改core dump檔案的位置(如希望生成到/tmp/cores目錄下)
echo "/tmp/cores/core" > /proc/sys/kernel/core_pattern
trace檔案的生成
可以幫助你找到影響sql語句引起效能問題的原因 sql trace 的執行 begin execute dbms system.set sql trace in session id serial true sql語句 select from user tables execute dbms sys...
apk檔案的生成
1.eclipse會自動生成乙個 apk 檔案,該檔案在bin目錄下 生成 android.keystore 的方法 通過 cmd 進入到jdk的bin目錄下,然後輸入 keytool genkey alias android.keystore keyalg rsa validity 100000 ...
core dump檔案的生成
include int main int argc,char ar gcc g gdb.c o 1 gdb 1 core 1.生成core dump檔案的方法 ulimit c 檢視是否為0 如果為0 ulimit c unlimited 這樣在程式崩潰以後會在當前目錄生成乙個core的檔案 1.除...