From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31674 invoked by alias); 28 Jun 2003 13:43:02 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 31667 invoked from network); 28 Jun 2003 13:43:02 -0000 Received: from unknown (HELO hub.ott.qnx.com) (209.226.137.76) by sources.redhat.com with SMTP; 28 Jun 2003 13:43:02 -0000 Received: from smtp.ott.qnx.com (smtp.ott.qnx.com [10.0.2.158]) by hub.ott.qnx.com (8.9.3p2/8.9.3) with ESMTP id JAA30405; Sat, 28 Jun 2003 09:35:21 -0400 Received: from dash ([192.168.20.26]) by smtp.ott.qnx.com (8.8.8/8.6.12) with SMTP id JAA09066; Sat, 28 Jun 2003 09:43:01 -0400 Message-ID: <007f01c33d7c$c7a5d980$2a00a8c0@dash> From: "Kris Warkentin" To: "Jason Molenda" , References: <20030627004003.A6119@molenda.com> <20030627202956.A42704@molenda.com> Subject: Re: Howdy from Apple; Fix and Continue implemented Yet Again Date: Sat, 28 Jun 2003 14:43:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-SW-Source: 2003-06/txt/msg00521.txt.bz2 That's pretty interesting. Does it require any special os support in the debug interface or is it all done with dlopen/dlclose, etc.? Other than compiling your app PIC, does it require any other special compiler features? cheers, Kris ----- Original Message ----- From: "Jason Molenda" To: Sent: Friday, June 27, 2003 11:29 PM Subject: 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 >