This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

gcc-3.X: -gdwarf-2 breaks C++ exceptions for DJGPP (where to look?)


I have found that using DWARF-2 debugging information for
gcc-3.X (both gcc-3.0.3 and CVS head) breaks C++ exceptions
for target i586-pc-msdosdjgpp. 

C++ exceptions works for this target both with -gcoff and -gstabs.

Contents of .eh_frame section is identical if I use -gcoff and -gstabs
but slightly different when I specify -gdwarf-2. An attempt to manually
copy in contents of .eh_frame section in assembler file (from one built
using -gstabs) fixes the problem. 

So it seems that use of -gdwarf-2 causes the generation of wrong contents
of .eh_frame section. As far as I verified there is no similar problem
for i686-pc-linux-gnu

Andris

PS. here are diffs between assembler sources (.eh_frame section only).
	Other compiler options (-O2) were identical for all tests and code
	in .text section were identical both when I requested DWARF2
 	and stabs debugging info

--- exc_stabs.eh	Thu Jan 31 18:47:56 2002
+++ exc_dwarf.eh	Thu Jan 31 18:47:54 2002
@@ -13,7 +13,7 @@
 	.long	___gxx_personality_v0
 	.byte	0x0	/ LSDA Encoding (absolute)
 	.byte	0xc	/ DW_CFA_def_cfa
-	.uleb128 0x5
+	.uleb128 0x4
 	.uleb128 0x4
 	.byte	0x88	/ DW_CFA_offset, column 0x8
 	.uleb128 0x1
@@ -31,12 +31,12 @@
 	.long	LCFI0-LFB1
 	.byte	0xe	/ DW_CFA_def_cfa_offset
 	.uleb128 0x8
-	.byte	0x84	/ DW_CFA_offset, column 0x4
+	.byte	0x85	/ DW_CFA_offset, column 0x5
 	.uleb128 0x2
 	.byte	0x4	/ DW_CFA_advance_loc4
 	.long	LCFI1-LCFI0
 	.byte	0xd	/ DW_CFA_def_cfa_register
-	.uleb128 0x4
+	.uleb128 0x5
 	.byte	0x4	/ DW_CFA_advance_loc4
 	.long	LCFI3-LCFI1
 	.byte	0x83	/ DW_CFA_offset, column 0x3
@@ -61,12 +61,12 @@
 	.long	LCFI5-LFB2
 	.byte	0xe	/ DW_CFA_def_cfa_offset
 	.uleb128 0x8
-	.byte	0x84	/ DW_CFA_offset, column 0x4
+	.byte	0x85	/ DW_CFA_offset, column 0x5
 	.uleb128 0x2
 	.byte	0x4	/ DW_CFA_advance_loc4
 	.long	LCFI6-LCFI5
 	.byte	0xd	/ DW_CFA_def_cfa_register
-	.uleb128 0x4
+	.uleb128 0x5
 	.byte	0x4	/ DW_CFA_advance_loc4
 	.long	LCFI7-LCFI6
 	.byte	0x2e	/ DW_CFA_GNU_args_size
@@ -82,7 +82,4 @@
 	.p2align 2
 LEFDE3:
 /NO_APP
-	.text
-	.stabs "",100,0,0,Letext
-Letext:
-	.ident	"GCC: (GNU) 3.1 20020129 (experimental)"
+	.section .text




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