I have been debugging in GDB (C code). The issue is if I run my application and if it crashes, the control comes back to main()(app restarts). Hence will have no idea where it crashed. So I spend a lot of time stepping through each function.
I would like to know if there is anyway a log can be enabled which will generate the last line of execution before crash. This is just my assumption, if there is any other simpler way of doing this please let me know, this would save a great deal of time for me!
Also if the gdb generates a log where would the path be?
Thanks in advance.
This question is a little unclear to me, but I’ll take a stab:
If you have GDB attached to the crashing process when it crashes, a crash should stop the program and put you back at the
(gdb)prompt. If you then typebt, you should see the stack.If you do NOT have GDB attached, then this answer to a related question might help. (In short, maybe you want the system to create a core dump when the program crashes. A core dump is just a file that contains a lot of information about the crashed process. You can use GDB with the core dump to see the stack.)
If you don’t know, post what you see on the screen when this happens, and we’ll guess.
In any case, the program definitely should not start over at main(). It seems worthwhile to track down why this happens and precisely what’s going on. Does control really jump to
mainin the same process, as opposed to another process somehow being automatically started?