
Debian システムにコアファイルがあります。このコアダンプでシンボルスタックトレースを生成するために必要なすべてのデバッグシンボルパッケージの完全なリストを取得したいと思います。
そのようなリストはどのように生成できますか?
答え1
readelf -Wa
マッピングファイル(lookup)を含むコアダンプに関する詳細情報NT_FILE
が提供されています。バイナリまたはライブラリファイルのデバッグシンボルをインストールする必要があります。関連パッケージを見つけるには、そのパッケージをインストールし(apt-file
まだインストールされていない場合)、実行してsudo apt update
インデックスを更新してから、次の手順を実行します。
apt-file search /path/to/file
たとえば、特定のコアダンプ/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.7.1
用にマップされたファイルのリストに表示されている場合、
$ apt-file search /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.7.1
libpcre2-8-0: /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.7.1
libpcre2-8-0-dbgsym
拡張すると、そのデバッグシンボルを持つために何をインストールする必要があるかがわかります。
(はい、これは予想より少し面倒です。他のディストリビューションを使用するとこれは簡単になります...)
答え2
Debian では、次のbuster
ものを使用できます。find-dbgsym-packages
~からdebian-goodies
パック。
dbgsymパッケージの検索実行可能ファイル、ライブラリ、コアダンプ、またはPID番号のリストとして提供されるプロセスを正しくデバッグするために必要なすべての* -dbgsymパッケージを一覧表示します。