当应用程序崩溃而没有输出错误时,是否有可以检查的日志?

有时会发生一些应用程序崩溃但没有给出输出错误(在我的情况下很可能,可能是我的配置之一是不正确的)。

是否有某个错误日志,我可以检查,以了解它为什么崩溃?

取决于申请。 不同的应用有不同的日志系统; 没有一个中央日志包含系统上运行的所有程序的所有输出。

话虽这么说,很多程序确实将他们的日志文件放在目录/var/log 。 特别是文件/var/log/syslog (或者/var/log/messages )包含来自“system logger”的输出,这是系统可以使用的服务(如果他们选择)用于记录。 但并非所有程序都使用它。 大多数情况下,您将从该文件中的低级系统服务中找到消息,而不是您可能正常使用的图形应用程序。

您可能想要阅读有关标准日志文件位置的更多信息 。

崩溃文件进入/var/log/crashes/用于apport报告错误。 您可以使用apport-unpack提取核心转储,通过gdb放置该核心转储,并找出导致程序崩溃的原因。

这都假设你是一名程序员。 如果你不是……好吧,你无论如何都无法修复崩溃!

对于conky,也可能是$HOME/.xsession-errors中有条目。

某些应用程序具有可用于打开调试的标志,例如-d,-D, – debug等。检查应用程序的手册页( man [my-app] )或使用-h标志运行应用程序看看它是否有这样的选择。

许多GUI应用程序写入$ HOME / .xsession-errors,因此这是检查输出的好地方。

maco是正确的,apport可能是获得良好调试信息的最可靠的方法。 但有时它并不会捕获崩溃。

如果所有其他方法都失败了,您还可以通过在gdb中运行应用程序来强制退出该信息。 它是这样的:

 $ gdb my-app (gdb) run 

……做任何需要让它崩溃的事情……

 (gdb) bt full 

从那里开始

如果您使用gdb路由,您还需要安装符号,如前所述。 有关手持建议,请参阅https://wiki.ubuntu.com/DebuggingProgramCrash 。

您可以转到/var/log/messages or crashes然后您可以对这些命令运行grep命令并搜索您查找文件的应用程序有时会变得非常大。 它将返回与您的应用程序相关的信息。 🙂

如果要从.desktop启动程序文件启动应用程序,请将选项Terminal=true添加到.desktop文件中。