aboutsummaryrefslogtreecommitdiffhomepage
path: root/mplayer.c
diff options
context:
space:
mode:
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/mplayer.c b/mplayer.c
index bb620be214..12fa60e415 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -378,9 +378,23 @@ void exit_sighandler(int x){
// can't stop :(
kill(getpid(),SIGKILL);
}
- mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_IntBySignal,x,
+ mp_msg(MSGT_CPLAYER,MSGL_FATAL,"\n" MSGTR_IntBySignal,x,
current_module?current_module:mp_gettext("unknown")
);
+ switch(x){
+ case SIGINT:
+ case SIGQUIT:
+ case SIGTERM:
+ case SIGKILL:
+ break; // killed from keyboard (^C) or killed [-9]
+ case SIGILL:
+ mp_msg(MSGT_CPLAYER,MSGL_FATAL,"- MPlayer crashed by 'Illegal Instruction'. It usually happens when you run it on different CPU than it was compiled for. Verify this!\n");
+ case SIGFPE:
+ case SIGSEGV:
+ mp_msg(MSGT_CPLAYER,MSGL_FATAL,"- MPlayer crashed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and disassembly. For details, see DOCS/bugreports.html section 5.b.\n");
+ default:
+ mp_msg(MSGT_CPLAYER,MSGL_FATAL,"- MPlayer crashed. This shouldn't happen. It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc version. If you think it's MPlayer's fault, read DOCS/bugreports.html and follow instructions there. We can't and won't help unless you provide these informations when reporting a possible bug.\n");
+ }
exit_player(NULL);
}