问题标签 [systemd-coredump]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
623 浏览

systemd - 如何解决日志中的 systemd-coredump 错误:“内核:核心转储到 |/usr/lib/systemd/systemd-coredump 管道失败”

我正在尝试在 Ubuntu 18.04 上进行设置systemd-coredump,以便我可以捕获并记录我的 C++ 应用程序的崩溃以进行调试。

到目前为止,我已经systemd-coredump从 apt 安装了 237-3ubuntu10.47 版本,并且可以通过向我的应用程序发送分段错误信号来触发崩溃:

但是,我没有/var/crash/像预期的那样看到转储。运行sudo coredumpctl list也不会显示任何崩溃;它只回复No coredumps found.

我阅读了日志存储在日志中的systemd-coredump手册,所以我打开它sudo journalctl并搜索我的kill命令。之后,我发现了这个错误信息:

我检查了目录/usr/lib/systemd/,发现它systemd-coredump不存在。但是,我不确定这个...文件是否?..目录?应该是动态创建的。在文件/目录创建期间是否可能存在权限问题,因为我的应用程序以非特权用户身份运行,因为/usr/lib/systemd/它是由 拥有的?root

这是我的kernel.core_pattern配置,/usr/lib/sysctl.d/50-coredump.conf. (这是默认设置。)

还有我的coredump配置,/etc/systemd/coredump.conf(也是默认配置)。

我还确认我没有配置片段/etc/systemd/coredump.conf.d/(事实上,没有这样的目录。)

0 投票
0 回答
26 浏览

gdb - 尝试在 gdb 中调试交叉编译的可执行文件时不会加载共享库

在本地下载核心转储(核心转储由 systemd-coredump 在原始目标上生成,然后下载到其他位置)并使用 GDB 的本地副本进行调试,共享库将不会加载。

'info shared' 给出以下输出:

但是,当使用'coredumpctl debug'对原始目标进行调试时,所有共享库都会加载而不会出现任何问题。那里的“信息共享”输出

事情试图手动加载共享库

  1. 尝试使用'set solib-search-path /usr/lib/foo.so' 将 solib-search-path 设置指向共享库,并将solib-absolute-prefix 设置为 /usr/lib。没有确认 foo.so 已加载。

  2. 尝试在可执行文件上运行objdump,获取列表 .so 库,并尝试通过设置路径单独链接它们。那也没有加载库。

  3. 尝试在“ set auto-solib-add off ”之后运行“ sharedlibrary foo ”。未加载共享库 foo。

  4. 尝试使用“set sysroot”命令更改 sysroot 以指向包含 lib/ 和 usr/lib 子目录中的共享库的目录。

由于无法手动加载共享库,因此假设提供一种识别要加载哪些库的方法的机制可能会以某种方式被破坏。有没有人见过类似的东西,可以做些什么来确保共享库的加载?任何帮助表示赞赏。谢谢!

0 投票
1 回答
17 浏览

coredump - 启用 coredump 是否会使我的软件调试构建?

询问

这个问题主要针对Linux发行版。

通常有 Debug 和 Release 版本。如果我启用核心转储,我的发布版本会变成调试版本吗?

查询的原因。

我们遇到了一个非常奇怪的难以重现的问题,它只在 Release 构建中被捕获,而在 Debug 构建中从未被捕获。想确认启用 coredumps 是否使我的发布版本成为调试版本并阻止我发现问题?如果不是,我将在我的发布版本中启用 coredumps 来检查这些情况。