不像windows程式需手動呼叫相關函式,linux程式crash dump(稱為core dump)檔案會在程式崩潰(如sigsegv)時自動生成,只需要在之前設定了乙個引數即可——當然,windows的方式能夠支援更靈活的功能。
生成:1, 使用ulimit -c unlimited設定引數(unlimited表示dump檔案大小無限制,否則會截斷到設定大小),或在程式中呼叫setrlimit進行設定;
2, 在發生sigsegv時系統會自動在程式目錄下生成core.***x檔案,此即dump檔案;
注意,此時程式不能再註冊sigsegv的處理函式!
使用gdb分析dump檔案:
1, 執行gdb:gdb –core=core.***x
2, 在gdb中載入符號檔案:file ./a.out
上兩步也可以統一成:gdb a.out core.***x
3, 定位到出錯**:where或backtrace,將顯示#x這樣的堆疊資訊
4, 檢視更詳細的函式呼叫資訊:frame x,x為#後的數字
一段setrlimit**:
rlimit lmt;
lmt.rlim_cur = 1024*100;
lmt.rlim_max = rlim_infinity;
return -1 != setrlimit(rlimit_core, &lmt);
另外:程式的symbols直接儲存在
可執行檔案中,一種處理方式是使用-g編譯生成可執行檔案,發布時再使用命令strip去掉symbols
參考:man dump、man 2 setrlimit;
NSSpeechSynthesizer 文字變語音
nsspeechsynthesizer 是 foundation中的乙個類,這個類可以方便的在cocoa應用程式中新增 文字到語言 功能。開發者可以使用這個類向ios 引用程式中新增類似功能。效果圖如下 截圖 speechutterance引數說明 utterance.voice 語系 不區分大小寫...
FileSystemWatcher判斷檔案複製完成
使用 filesystemwatcher 監視指定目錄中的更改。可監視指定目錄中的檔案或子目錄的更改。該元件可以監視本地計算機 網路驅動器或遠端計算機上的檔案。可監視目錄或檔案中的若干種更改。例如,可監視檔案或目錄的 attributes lastwrite 日期和時間或 size 方面的更改。通過...
Vmware Window Linux 共享資料夾
問題描述 在虛擬機器vmware 8.0下,其中宿主機系統為window 7,安裝的虛擬機器系統為ubuntu 12.04 x64,通過使用共享資料夾的方式,實現兩個系統的通訊。預備工作 虛擬機器需要安裝vmware tools。解決方案 1.在虛擬機器的詳細設定下,選擇啟用共享資料夾。右擊虛擬機器...