When an application crash without output an error, is there a log that i can check?

Sometimes it happen that some application crash without give no output error (conky in my case, probably is one of my configuration that is incorrect).

Is there somewhere a error log that I can check to understand why it is crashed?


Solution 1:

Depends on the application. Different applications have different logging systems; there's no one central log that contains all the output from all the programs that run on your system.

That being said, a lot of programs do put their log files in the directory /var/log. The file /var/log/syslog (or maybe /var/log/messages), in particular, contains output from the "system logger", which is a service made available by the system that programs can use (if they choose to) for logging. But not all programs use it. Mostly, you'll find messages from low-level system services in that file, not the graphical applications you probably use normally.

You may want to read more about the locations of standard log files.

Solution 2:

crash files go into /var/log/crashes/ for use with apport to report bugs. You can extract a core dump with apport-unpack, put that core dump through gdb, and find out what's causing the program to crash.

This is all assuming you're a programmer. If you're not...well, you can't fix the crash anyway!

Solution 3:

For conky it could also be that there are entries in $HOME/.xsession-errors.

Solution 4:

Some applications have flags that can be used to turn on debugging, such as -d, -D, --debug, etc. Check the application's man page (man [my-app]) or run the app with the -h flag to see if it has such an option.

Many GUI apps write into $HOME/.xsession-errors so that's a good place to check for output.

maco's right that apport is probably the most sure-fire way to get good debug info. Sometimes it doesn't capture the crash, though.

If all else fails, you can also force the info out of it by running the app in gdb. It'd be something like:

$ gdb my-app

(gdb) run

... do whatever is needed to get it to crash ...

(gdb) bt full

and go from there.

If you go the gdb route you'll also want to install symbols, as mentioned previously. See https://wiki.ubuntu.com/DebuggingProgramCrash for handholding advice.

Solution 5:

you can go to /var/log/messages or crashes then you can run the grep command on those and search for the application your looking for the files can get pretty big sometimes. It will return information relevant to your applicaton. :)