From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31681 invoked by alias); 28 Aug 2009 15:35:44 -0000 Received: (qmail 31673 invoked by uid 22791); 28 Aug 2009 15:35:41 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,J_CHICKENPOX_54 X-Spam-Check-By: sourceware.org Received: from mailhost.u-strasbg.fr (HELO mailhost.u-strasbg.fr) (130.79.200.158) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Aug 2009 15:35:34 +0000 Received: from baal.u-strasbg.fr (baal.u-strasbg.fr [IPv6:2001:660:2402::41]) by mailhost.u-strasbg.fr (8.14.2/jtpda-5.5pre1) with ESMTP id n7SFZIIm055109 ; Fri, 28 Aug 2009 17:35:18 +0200 (CEST) (envelope-from muller@ics.u-strasbg.fr) Received: from mailserver.u-strasbg.fr (ms1.u-strasbg.fr [IPv6:2001:660:2402:d::10]) by baal.u-strasbg.fr (8.14.0/jtpda-5.5pre1) with ESMTP id n7SFZISP038761 ; Fri, 28 Aug 2009 17:35:18 +0200 (CEST) (envelope-from muller@ics.u-strasbg.fr) Received: from d620muller (www-ics.u-strasbg.fr [130.79.210.225]) (user=mullerp mech=LOGIN) by mailserver.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id n7SFZH4t065369 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) ; Fri, 28 Aug 2009 17:35:17 +0200 (CEST) (envelope-from muller@ics.u-strasbg.fr) From: "Pierre Muller" To: "'John Yates'" , Cc: "'Eli Zaretskii'" References: <0C8E40D1B3E28947A3EA5E185EF1C9B2AF5FA19AF4@CORP-EXCH01.netezza.com> In-Reply-To: <0C8E40D1B3E28947A3EA5E185EF1C9B2AF5FA19AF4@CORP-EXCH01.netezza.com> Subject: RE: Backtrace library? Date: Fri, 28 Aug 2009 15:54:00 -0000 Message-ID: <001f01ca27f5$26da1e20$748e5a60$@u-strasbg.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00266.txt.bz2 You could probably try to use Eli's work called bfdsymify.c This is based on GNU bfd library, but for DJGPP stack dumps written on a Dos console. But it can also handle a stack trace stored in a file. The version I have came with GDB 6.1.1 for DJGPP and BFD version is 2.15.90, but it might be easy to update. The sources are available ftp://ftp.univie.ac.at/applications/djgpp/v2gnu/gdb611s.zip To compile it for DJGPP on current CVS HEAD I had to change only a little, patch is below. To use it on other platform you might need to remove DJGPP specific stuff... Hope this can help you. Pierre Muller Pascal language support maintainer for GDB PS: Eli, is this source in any CVS tree? Pierre@d620-muller ~/gdbcvs/djbuild/bfdsymify $ diff -up ../../src/bfdsymify/bfdsymify.c bfdsymify.c --- ../../src/bfdsymify/bfdsymify.c 2009-08-28 17:00:44.781250000 +0200 +++ bfdsymify.c 2009-08-28 17:27:08.812500000 +0200 @@ -393,7 +393,8 @@ find_address_in_section (bfd *bfdp, asec if (pc < vma) return; - size = bfd_get_section_size_before_reloc (section); +// size = bfd_get_section_size_before_reloc (section); + size = bfd_get_section_size (section); if (pc >= vma + size) return; @@ -575,7 +576,8 @@ int main(int argc, char **argv) fputs(line, ofile); if (progname) { - char *arg_base = basename(progname), *prog_base = basename(line+9); + char *arg_base = lbasename(progname); + char *prog_base = lbasename(line+9); if (strcasecmp(prog_base, arg_base) && strncasecmp(prog_base, arg_base, strlen(prog_base)-4)) fprintf(stderr, @@ -675,7 +677,7 @@ int main(int argc, char **argv) } if (progname) { - char *arg_base = basename(progname), *prog_base = basename(prog); + char *arg_base = lbasename(progname), *prog_base = lbasename(prog); if (strcasecmp(prog_base, arg_base) && (strncasecmp(prog_base, arg_base, strlen(prog_base)-4)