Ong*_*gun 6 python bug-reporting
当 ubuntu-bug 崩溃时如何报告错误?
ongun@ongun-ubuntu:~$ ubuntu-bug python
ERROR: /etc/apport/crashdb.conf is damaged: No default database
Run Code Online (Sandbox Code Playgroud)
当Appport(ubuntu-bug
其中的一部分)不起作用时,通常最好尝试使用 Appport 来解决问题。但是,无需批准即可报告错误。
我不知道这里描述的具体错误是否是由于错误或配置错误或其他问题造成的。看到该确切消息的用户应该尝试Rinzwind 描述的解决方法。更一般地说,虽然不适用于此处显示的错误消息,但该命令有时会在不起作用apport-cli
时起作用。ubuntu-bug
但是“当 ubuntu-bug 崩溃时如何报告错误?”的答案 (或以其他方式无法使用)的优点是可以通过 Launchpad 的 Web 界面直接报告错误,并且只要报告者仔细并细致地描述问题并包含与其合理相关的所有信息,这样的错误报告就可能有用。
主要有两种情况。
如果您通过运行报告非崩溃错误,则 Apport 无论如何都不会将堆栈跟踪和核心转储附加到错误报告中。所以直接在 Launchpad 上报告 bug 是合理的。作为its_me对如何报告错误?说:ubuntu-bug package
只需访问 Launchpad 并填写其中的 2 或 3 个字段即可。命令行并不是唯一的方法。
或者,您可以使用它(将
PACKAGENAME
URL 替换为包名称。例如:unity、gnome-shell 等):Run Code Online (Sandbox Code Playgroud)http://bugs.launchpad.net/ubuntu/+source/PACKAGENAME/+filebug?no-redirect
Ubuntu 文档中提到了这一点。
这直接适用于这个问题中描述的情况。只需确保包含足够的信息来完整描述错误、发生错误的系统以及与错误相关的软件包,包括它们的确切版本。与往常一样,以这种方式报告错误的用户应首先阅读ReportingBugs。
在没有 Appport 的情况下报告导致崩溃的 bug会比较费力,但可以通过传统方式完成。这包括为崩溃的程序及其使用的库安装调试符号,在调试器中打开程序(对于 Ubuntu 软件包,gdb
通常应该使用),然后尝试重现崩溃。只要所有相关的调试符号可用,崩溃后运行产生的堆栈跟踪就应该可用。bt
gdb
这不是问题中描述的情况,我也不打算彻底介绍它。我主要提到它是为了让试图报告崩溃的读者不要使用上面提到的方法而不包含堆栈跟踪。但基本上,某些包在名称以 结尾的类似命名包中具有相应的调试符号-dbg
,而大多数其他包具有可从单独存储库获取的调试符号包,可以按照调试符号包中所述启用和使用这些调试符号包。
考虑这样做的用户绝对应该阅读DebuggingProgramCrash和ReportingBugs。
如果您稍后让 Appport 正常工作,您仍然可以使用它自动将信息添加到错误报告中。正如v010dya对该答案的评论所说:
如果您遵循此方法,然后决定以与
ubuntu-bug
方法相同的方式添加文件,您可以简单地键入apport-collect REPORTNUMBER
,其中 REPORTNUMBER 是 bug 的编号,它将出现在您提交的 [bug] 的 URL 中。
这对于需要附加堆栈跟踪和核心转储文件的崩溃错误最有用/var/crash
。
正如评论中的错误报告中提到的,这似乎是一个“区域设置”问题。
LC_ALL=C ubuntu-bug python
Run Code Online (Sandbox Code Playgroud)
工作完美。