delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/02/01/06:03:38

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f
From: pavenis AT lanet DOT lv
To: DJ Delorie <dj AT redhat DOT com>, eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
Date: Fri, 1 Feb 2002 13:03:09 +0200
MIME-Version: 1.0
Subject: Re: gcc-3.X: -gdwarf-2 breaks C++ exceptions for DJGPP
Cc: djgpp-workers AT delorie DOT com
Message-ID: <3C5A920D.3055.AA388E@localhost>
In-reply-to: <200201311821.g0VILGF15061@greed.delorie.com>
References: <3C59942D DOT 3293 DOT 177886E AT localhost> (pavenis AT lanet DOT lv)
X-mailer: Pegasus Mail for Windows (v4.01)
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 31 Jan 2002 at 13:21, DJ Delorie wrote:

> 
> The place I usually have to fix first is simply getting the dwarf2
> structures registered at program startup time, something
> gcc/crtstuff.c is supposed to handle.

Seems that I have found a source of that breakage. 

About a half a year ago we had a discussion in djgpp-workers
about changing register naming sheme for debug info. See:

http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/07/28/14:30:56
http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/07/28/20:10:59
http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/07/28/21:58:04
http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/08/03/12:20:06
http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/08/03/12:20:23
http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-
workers/2001/08/03/13:33:18

The suggested definition of DBX_REGISTER_NUMBER breaks C++ exceptions when 
-gdwarf-2 is being used.

There seems to be possible workaround for this problem without reverting this 
change
by adding definition of DWARF_FRAME_REGNUM which is by default defined to 
DBX_REGISTER_NUMBER:

#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
  ((write_symbols == DWARF2_DEBUG) ? svr4_dbx_register_map[n] : 
dbx_register_map[n])

#undef DWARF_FRAME_REGNUM
#define DWARF_FRAME_REGNUM(n) dbx_register_map[n]

I don't know whether it's correct though. At least it seems to work.

Andris

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019