We have processes written in a mix of Python, Java and C++ that core dump from time to time. They allocate more memory in chunks as needed during runtime, and are known to crash when their allocation tips over 4G (I guess the return value of the malloc()
isn't checked).
However the core dumps produced are truncated, according to GDB – they are unlimited in size in the OS, and on-disk they vary between 2-3.8G in size.
GDB observes that the size doesn't match what it expects (presumably including the failed alloc?) and gives up – but in 3.8G of data there surely must be something of interest? Possibly even the entire stack I need for a backtrace!
How can I persuade GDB to at least try, or is there an alternate tool that can extract something from a truncated core?
Best Answer
This blurb on the Sun Studio 12 website would seem to imply that they're basically useless.
excerpt - http://docs.oracle.com/cd/E19205-01/819-5257/blabs/index.html