今天我們拿 systemd-journald 的 core dump 來當範例
解壓縮 core_systemd-journald.tar 可以看到資料夾內有以下檔案
我們這篇,主要是去拿 exe.lz4 與 core.lz4 來放到 gdb 裡面,來做debug
所以我們先把者兩個 lz4 檔案,放到linux 系統中使用以下 command 把他解開,得到兩個檔案,分別是 core 與 exe,
core 是 core dump 紀錄的錯誤資訊,exe 則是此執行檔(systemd-journald)
=>
lz4 -d core.lz4 core
lz4 -d exe.lz4 exe
lz4 -d exe.lz4 exe
接著我們把 core 與 exe 丟到有gdb 的 device上,如果編譯的時候,也有編譯出 symbol 的 library 或是 執行檔,也可以準備一下,等等 gdb 會使用到 (symbol 就是沒有被 strip 的檔案)
symbol資料夾如下:

symbol資料夾如下:
可以看到Core was generated by `/lib/systemd/systemd-journald'.
Program terminated with signal SIGABRT, Aborted.
=> systemd-journald 因為 SIGABRT造成的 crash
接著可以用 bt full 印出完整的資訊
No symbol table info available
我們就去找 symbol folder,試試看用 systemd-journald 的 binary跑gdb 試試看
gdb systemd-journald core
會看到多了一些資訊,gdb似乎有載入一些資訊