|
|
Warp <war### [at] tagpovrayorg> wrote:
> Have you ever wondered what the 'core' file is used for (ie. have you
> ever wondered what the "core dumped" is all about)?
Well, I *know* what it is all about - actually, years ago I did some Unix
training on a HP-UX machine, and it kept "core dumping" on my self-written C
programs, which I found annoying back then because it kept cluttering my
directories with coredumps ;)
.... these days I wished why my Linux system did coredump ;)
> If you have your shell configured to dump core when a program crashes,
> you can use the 'core' file in conjunction with gdb to do what I described
> without having to run the program again. This can be useful if the program
> crashing happens only randomly or it takes a very long time to happen.
Hey, tell me - tell me! How do I activate that? (*bouncing up and down
impatiently*)
> I must admit, though, that I don't remember now how exactly the 'core'
> file was used. It might have been that gdb automatically reads it if it
> exists in the current directory (and has been produced by the program in
> question, an information which is most probably included in the 'core' file
> itself). So in effect if you have the 'core' file from the program crash,
> you can skip the "run the program from gdb" part.
No, I just had a look at the gdb man page: Yo have to run gdb with both the
program name and the coredump name as parameters.
> You can try with optimizations and hope they still allow you to find
> the location of the crash. Start with -O1 and try making it crash. Increase
> from there if it doesn't seem to happen.
I just tried with full optimizations, but to no avail. The segfault seems to be
very sensitive about any changes to the binary.
Still a bit of hope: Turning on debug information in the ./configure script not
only adds symbol info to the binary, but also turns on some additional code
intended to help with debugging. Maybe if I can just get the symbol info...
Darn! Right now the code refuses to segfault at all, even with the settings that
previously killed it reproducably... Looks like I just need to wait until some
other code changes make it segfault again...
I guess I'll activate debug stuff by default from now on. And please tell me how
to activate coredumping...
Post a reply to this message
|
|