This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/38952] [4.4 Regression] EH does not work.
- From: "dave dot korn dot cygwin at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jan 2009 23:44:49 -0000
- Subject: [Bug target/38952] [4.4 Regression] EH does not work.
- References: <bug-38952-9431@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from dave dot korn dot cygwin at gmail dot com 2009-01-23 23:44 -------
The bug manifests itself as a crash on exit from main(); $eip is set to zero
and we get a SEGV.
On entry to main(), the registers show:
esp 0x22cc40 0x22cc40
ebp 0x22cca8 0x22cca8
Just before the epilogue at the end of main, we see:
esp 0x22cc40 0x22cc40
ebp 0x22cc90 0x22cc90
(gdb) x/32xw 0x22cc40
0x22cc40: 0x0022cc5c 0x0040e7e0 0x00000000 0x004f0584
0x22cc50: 0x005005c2 0x32200060 0x0022cc78 0x00000000
0x22cc60: 0x00000000 0x100325b8 0x00000001 0x61010173
0x22cc70: 0x00000001 0x00407600 0x00407bd4 0x0022cc90
0x22cc80: 0x004010ec 0x0022cc40 0x00000000 0x610df2c7
0x22cc90: 0x100324fa 0x00000000 0x611021a0 0x0040546c
0x22cca0: 0x611021a0 0x0040546c 0x0022cd98 0x610060e8
0x22ccb0: 0x00000001 0x100324a0 0x10030090 0x60030000
(gdb)
and so when we come to the ret instruction, ...
(gdb)
Breakpoint 2, 0x00401125 in main () at ./eh.C:11
11 }
(gdb) info reg
eax 0x0 0
ecx 0x22cb30 2280240
edx 0x0 0
ebx 0x0 0
esp 0x22cc94 0x22cc94
ebp 0x100324fa 0x100324fa
esi 0x611021a0 1628447136
edi 0x40546c 4215916
eip 0x401125 0x401125 <main+181>
eflags 0x202 [ IF ]
cs 0x1b 27
ss 0x23 35
ds 0x23 35
es 0x23 35
fs 0x38 56
gs 0x0 0
(gdb) stepi
0x00000000 in ?? ()
Next comment will analyze how $ebp comes to have the wrong value.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38952