This is the mail archive of the gdb@sources.redhat.com 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: Howdy from Apple; Fix and Continue implemented Yet Again


On Fri, Jun 27, 2003 at 12:40:04AM -0700, Jason Molenda wrote:
`
> Fix and continue is a feature implemented by many other debuggers,
> which we added to our gdb for this release.  

It was pointed out that I never said what F&C _is_.  It's a feature
for debugging your program, where you can modify your sources
mid-debug-session, and the debugger will "patch" in the new code.
At a very high level, the source file you're modifying is built as
a shared library, gdb executes inferior function calls to load that
shared library into the program, gdb finds all old versions of all
functions contained in that shared library and writes trampolines
in the prologues to jump to the new versions of those functions,
and gdb redirects all file-static (including global) variables in
that shared library to point to the statics/globals in the original
executable.

>From an end user's perspective, they're running their program, they
see it misbehave or they know it's about to misbehave, but it took
them fifteen minutes to get to this point -- they don't want to
restart from the beginning and navigate all the way back here.
With F&C, they make the source change, patch it in, and continue
on with their work.

I don't have anything interesting planned this weekend so maybe I'll
write up a short ditty about how it is implemented in gdb and some
of the more technical aspects of the feature.  I've been doing little
else since winter, so I've got a pretty good idea of how it all fits
together. :-)


Jason


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