Re: [ES40-developers] Patch: Backtrace fix
Status: Alpha
Brought to you by:
iamcamiel
From: Camiel V. <iam...@gm...> - 2008-02-26 12:18:17
|
This has been committed to the repository. Camiel. On Thu, Feb 21, 2008 at 2:55 PM, Brian Wheeler <bdw...@in...> wrote: > This patch make a few changes to the backtrace functionality: > > * adds the -rdynamic LD flag if DEBUG_BACKTRACE is specified. This > allows all non-static function names to appear in the backtrace. > > * catch SIGUSR1 to trigger the backtracer if es40 seems to have hung. > > * use _exit() to really really quit when a SIGSEGV is caught. > > > Index: Makefile > =================================================================== > RCS file: /cvsroot/es40/es40/src/Makefile,v > retrieving revision 1.26 > diff -u -w -r1.26 Makefile > --- Makefile 20 Feb 2008 21:02:50 -0000 1.26 > +++ Makefile 21 Feb 2008 13:47:38 -0000 > @@ -135,6 +135,7 @@ > # -DDEBUG_PIC Turn on Programmable Interrupt Controller debugging > # -DDEBUG_LPT Turn on debugging for LPT Port > # -DDEBUG_BACKTRACE Turn on backtrace dump on SIGSEGV > +# -DDEBUG_USB Turn on debugging for USB controller > # > CDEBUGFLAGS = -g -DHIDE_COUNTER -DDEBUG_BACKTRACE > > @@ -172,6 +173,11 @@ > LDOPTIONFLAGS += -g > endif > > +ifneq ($(findstring "-DDEBUG_BACKTRACE",$(CDEBUGFLAGS)),"") > +LDOPTIONFLAGS += -rdynamic > +endif > + > + > CFLAGS = -I. -I.. \ > $(CDEBUGFLAGS) $(CTUNINGFLAGS) $(OPTIONS) $(COPTIONFLAGS) > LDFLAGS = $(LDOPTIONFLAGS) > @@ -265,4 +271,3 @@ > $(DEPEND) -o.do -a -- $(IDB_CFLAGS) -- $(SRCS) > clean: > rm -f es40 es40_idb es40_lss es40_lsm *.o *.do *.mao *.slo *.trc gui/*.o gui/*.mao gui/*.slo gui/*.do > - > Index: AlphaSim.cpp > =================================================================== > RCS file: /cvsroot/es40/es40/src/AlphaSim.cpp,v > retrieving revision 1.40 > diff -u -w -r1.40 AlphaSim.cpp > --- AlphaSim.cpp 7 Feb 2008 20:33:26 -0000 1.40 > +++ AlphaSim.cpp 21 Feb 2008 13:47:38 -0000 > @@ -211,7 +211,7 @@ > printf("%3d %s\n",nptrs-i, strings[i]); > } > free(strings); > - exit(1); > + if(signum==SIGSEGV) _exit(1); > } > > #else > @@ -255,6 +255,7 @@ > > #ifdef HAS_BACKTRACE > signal(SIGSEGV, &segv_handler); > + signal(SIGUSR1, &segv_handler); > #endif > > try > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Es40-developers mailing list > Es4...@li... > https://lists.sourceforge.net/lists/listinfo/es40-developers > |