Alex Rivera | Logout

C++ Linux Binary terminated with signal SIGKILL - why? (loaded in GDB)

Asked 2012-09-05T19:37:37.790
25

So I fire up my c++ application in GDB, and when it quits, I basically get:

[Thread 0x7fff76e07700 (LWP 6170) exited]
[Thread 0x7fff76f08700 (LWP 6169) exited]
[Thread 0x7fff77009700 (LWP 6168) exited] 
...
Program terminated with signal SIGKILL, Killed. The program no longer exists.
(gdb)

I literally have no idea why this is occuring, why can't I do a backtrace to see how it exited? Anyone have any ideas? It should never end :(

Thanks!

Edit
Report

1 Answer

32

I literally have no idea why this is occuring,

This usually means that either

  • some other process executed a kill -9 <your-pid>, or
  • the kernel OOM killer decided that your process consumed too many resources, and terminated it (effectively the kernel executed kill -9 for it). You should look in /var/log/messages (/var/log/syslog on Ubuntu variants) for traces of that -- the kernel usually logs a message when it OOMs some process.

why can't I do a backtrace to see how it exited?

Because in order to see a backtrace, the process must exist. If it doesn't exist, it doesn't have stack, and so can't have backtrace.

answered 2012-09-06T03:22:37.013

Your Answer