我已經爲項目編寫了自定義核心轉儲處理應用程序。我改變了'/ proc/sys/kernel/core_pattern'來調用我的轉儲處理程序併成功調用它。核心轉儲文件格式
現在的問題是將core-dump保存到gdb可以識別的文件中。目前,我的轉儲處理程序從STDIN中讀取轉儲並將其保存到文件'core.dump'中。當我嘗試加載這個核心轉儲到GDB它給我的錯誤:
(gdb) ... is not a core dump: File format not recognized
當我運行在一個標準的核心「文件」命令轉儲它給我以下內容:
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './dump_gen'
而對於自定義生成轉儲, '文件' 給出如下:
core.dump: data
請任何人都可以幫助我如何正確寫入core-dump,以便它可以在gdb中使用。
PS:我不想使用標準的核心轉儲文件。
感謝您的快速響應。我檢查了你的方法,它的工作,所以我看着我的C代碼,並發現將數據複製到緩衝區的錯誤。有效。 – AvadhP
我也面臨同樣的問題,但只是想知道以上步驟會做什麼?它會產生一個新的核心轉儲,可以作爲參數傳遞給gdb?謝謝! – sad