gpt4 book ai didi

ubuntu - 如何更改非打包应用程序崩溃的默认行为?

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:38 25 4
gpt4 key购买 nike

如图所示,我们部署了一个启用了 appport 的 Ubuntu 服务器。

~$ cat /proc/sys/kernel/core_pattern 
|/usr/share/apport/apport %p %s %c

不幸的是,apport 在处理非打包应用程序崩溃方面的行为并不完全符合我们的喜好。在这些场景中,apport 正在工作目录中生成“核心”文件(假设 ulimit -c 已正确设置)。例如,从批准日志中,

ERROR: apport (pid 10117) Tue Jan  8 08:56:25 2013: executable: /home/jess/a.out (command line "./a.out")
ERROR: apport (pid 10117) Tue Jan 8 08:56:25 2013: executable does not belong to a package, ignoring
ERROR: apport (pid 10117) Tue Jan 8 08:56:25 2013: writing core dump to /home/jess/core (limit: 18889465931478580853760)

令人沮丧的是,一旦核心文件存在,它就不会被覆盖。因此,例如,如果我们正在测试一个应用程序并忘记从工作目录中清除旧的核心文件,那么应用程序在测试期间崩溃,我们将看不到新的核心文件。即使它被覆盖,这也可能不是理想的,因为我们会失去旧的核心。

理想情况下,我们希望能够通过参数告诉 apport,例如,对于非打包应用程序,生成一个核心文件,其文件名根据指定模式格式化(根据 core_pattern 文件规范)...有没有办法做到这一点,或类似的东西?

最佳答案

另一种选择是使用 Apport 来处理崩溃。它将保存核心转储,以及大量其他有关崩溃的有用上下文。将以下行添加到 ~/.config/apport/settings(如果不存在则创建它):

[main]
unpackaged=true

现在崩溃将显示为 /var/crash 中的 Apport .crash 文件。您可以使用 apport-unpack 解压它们。

一个警告:如果用户选中“发送错误报告”复选框,Apport 似乎仍会尝试将这些崩溃上传到 Ubuntu 错误跟踪器;如果您正在处理专有代码等,这可能是个问题。我正在寻找这方面的更多信息;/etc/apport/crashdb.conf 似乎可以控制崩溃报告的发送位置。

关于ubuntu - 如何更改非打包应用程序崩溃的默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com