Answers:
取决于应用程序。不同的应用程序具有不同的日志记录系统;没有一个中央日志包含系统上运行的所有程序的所有输出。
话虽如此,许多程序确实将其日志文件放在目录中/var/log
。该文件/var/log/syslog
(或/var/log/messages
尤其是)包含来自“系统记录器”的输出,该输出是系统提供的服务,程序可以使用该服务(如果愿意)进行记录。但并非所有程序都使用它。通常,您会在该文件中找到来自低级系统服务的消息,而不是通常可能使用的图形应用程序。
您可能需要阅读更多有关标准日志文件位置的信息。
崩溃文件/var/log/crashes/
用于与报告错误一起使用。您可以使用提取核心转储apport-unpack
,然后将该核心转储放入gdb,然后找出导致程序崩溃的原因。
所有这些都假设您是一名程序员。如果您不是...那么,您无论如何都无法修复崩溃!
bt full
“哦,回溯……缺少符号...猜测我需要安装调试符号并尝试重现崩溃...”我曾经想出了如何设置一个断点...这是我所拥有的最先进的。
某些应用程序具有可用于打开调试的标志,例如-d,-D,-debug等。请检查应用程序的手册页(man [my-app]
)或使用-h标志运行该应用程序以查看其是否具有此类标志。选项。
许多GUI应用程序都会写入$ HOME / .xsession-errors,因此这是检查输出的好地方。
maco认为,分配权限可能是获取良好调试信息的最可靠方法。但是,有时它无法捕获崩溃。
如果所有其他方法都失败了,您还可以通过在gdb中运行应用程序来强制使用该信息。就像这样:
$ gdb my-app
(gdb) run
...尽一切可能使其崩溃...
(gdb) bt full
然后从那里去。
如果您走gdb路由,您还将要安装符号,如前所述。请参阅https://wiki.ubuntu.com/DebuggingProgramCrash以获取手持建议。