This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Checkpoint-restart with different code

Thanks for your help! I've looked around some more and it looks like a number of debuggers provide some form of this functionality. However, they all seem to be binary rewriters. Does anybody know of work at the compiler level? I can imagine that it would be possible to allow for more flexible editing of the code if it could be recompiled from the source.

                            Greg Bronevetsky

Daniel Jacobowitz wrote:

On Fri, Dec 09, 2005 at 04:57:57PM -0500, Greg Bronevetsky wrote:

I see that there's been some discussion on this list on checkpointing techniques that may be included in gdb. My research group at Cornell is working on a number of such checkpointers for both sequential and parallel programs and we recently decided to try a more challenging variant of checkpointing where the user can take a checkpoint of their program, modify their source code a bit (add remove stack variables, move function calls around a bit and a few other things) and then resume computation using the modified code. This seems to be very useful for debugging long-running applications since the user would be able to work around the bug without losing a week's or month's worth of results. (can happen in high-performance computing) Similarly, its useful for situations where your execution is in some particularly buggy corner case and you want to keep making modifications and trying them out without having to guide the program's execution back into that corner case after every code change.

My question is, has anybody heard of anything that can do this? Obviously, this kind of checkpointing would require compiler support, so gdb wouldn't have done this, but have you heard of any systems/research that has addressed this question? Thanks.

Better: I know at least one production debug environment which supports this - Apple's Xcode. The option is called fix-and-continue. I don't think they combine it with checkpointing, though, only as an action on a running process. It's partly compiler-based and partly in their debug environment.

Merging that with Michael's fork-based code would be fairly
straightforward, I expect.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]