user3840170 Asked: 2020-02-04 04:23:23 +0800 CST2020-02-04 04:23:23 +0800 CST 2020-02-04 04:23:23 +0800 CST 如何找到获取符号堆栈跟踪所需的 dbgsym 包? 772 我在 Debian 系统上有一个核心文件。我想获得从该核心转储生成符号堆栈跟踪所需的所有调试符号包的完整列表。 我可以通过什么方式生成这样的列表? debian debugging 2 个回答 Voted Stephen Kitt 2020-02-04T04:39:49+08:002020-02-04T04:39:49+08:00 readelf -Wa将提供有关核心转储的详细信息,包括映射文件(查找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才能具有相应的调试符号。 (是的,这比它应该的要麻烦一些。其他发行版使这更简单......) Best Answer user3840170 2020-02-11T00:28:47+08:002020-02-11T00:28:47+08:00 从 Debian 开始buster,您可以find-dbgsym-packages从debian-goodies包中使用。 find-dbgsym-packages列出了正确调试进程所需的所有 *-dbgsym 包,这些包由可执行文件、库、核心转储或 PID 号列表给出。
readelf -Wa
将提供有关核心转储的详细信息,包括映射文件(查找NT_FILE
)。您应该为任何二进制文件或库文件安装调试符号。要找到相关的包,apt-file
如果你还没有安装,运行sudo apt update
更新它的索引,然后运行例如,如果
/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.7.1
出现在给定核心转储的映射文件列表中,通过扩展,这告诉您需要安装
libpcre2-8-0-dbgsym
才能具有相应的调试符号。(是的,这比它应该的要麻烦一些。其他发行版使这更简单......)
从 Debian 开始
buster
,您可以find-dbgsym-packages
从debian-goodies
包中使用。