digitalmars.D.bugs - [Bug 136] New: Corrupt GDB backtrace
- d-bugmail puremagic.com (51/51) May 11 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=136
- d-bugmail puremagic.com (12/12) May 12 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=136
- Lars Ivar Igesund (8/30) May 12 2006 Hmm, -gc is not listed in DMD's help ? I see it is under the linux versi...
- d-bugmail puremagic.com (21/21) Jun 01 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=136
- Thomas Kuehne (25/27) Jun 02 2006 -----BEGIN PGP SIGNED MESSAGE-----
http://d.puremagic.com/bugzilla/show_bug.cgi?id=136 Summary: Corrupt GDB backtrace Product: D Version: 0.157 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: oskar.linde gmail.com void main() { static int i = 0; while(i++ < 10) main(); *(cast(int *)0) = 0; } On DMD 0.157 compiling with dmd -g -debug and running in gdb and printing a backtrace gives: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208064320 (LWP 23068)] 0x0804b1fa in _Dmain () at debug.d:5 5 *(cast(int *)0) = 0; Current language: auto; currently minimal (gdb) bt Previous frame inner to this frame (corrupt stack?) Compared to DMD 0.156: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208064320 (LWP 23192)] 0x0804b1fa in _Dmain () at debug.d:5 5 *(cast(int *)0) = 0; Current language: auto; currently minimal (gdb) bt --
May 11 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=136 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME Many gdb's fail with the -g switch. Use -gc instead. With -gc -debug, the backtrace works fine on my machine: gdb 5.3 i386-redhat-linux-gnu --
May 12 2006
d-bugmail puremagic.com wrote:http://d.puremagic.com/bugzilla/show_bug.cgi?id=136 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME Many gdb's fail with the -g switch. Use -gc instead. With -gc -debug, the backtrace works fine on my machine: gdb 5.3 i386-redhat-linux-gnu --Hmm, -gc is not listed in DMD's help ? I see it is under the linux version on http://www.digitalmars.com/d/dcompiler.html, but not if you do "dmd" on the linux command line. Looked for it on all the latest version. -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsivi
May 12 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=136 oskar.linde gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WORKSFORME | Maybe this is really a GDB bug, but the error remains with -gc. On i686-pc-linux-gnu (RedHat EL4), with all of the following gdb versions: gdb 6.4 + d symbol demangling patches gdb 6.4 vanilla gdb 6.3 gdb 6.0 (I was unable to get gdb 5.3 and 5.2.1 to work on my system) compiled with: dmd -gc => corrupt backtrace dmd -g => corrupt backtrace dmd => OK backtrace with DMD 0.156 and earlier, the back traces work fine with all above combinations. --
Jun 01 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-06-01:http://d.puremagic.com/bugzilla/show_bug.cgi?id=136Maybe this is really a GDB bug, but the error remains with -gc.This seems to be GDB related. Valgrind hand no problems: ==23266== Invalid write of size 4 ==23266== at 0x804A0C0: void a.foo() (a.d:7) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0BB: void a.foo() (a.d:5) ==23266== by 0x804A0CB: _Dmain (a.d:11) ==23266== Address 0x0 is not stack'd, malloc'd or (recently) free'd Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEgFOK3w+/yD4P9tIRAmDGAKCfoL6jMeP9DW4v2DWg1yh3z8014wCgyxR+ MG8+4PPsyk7xTXxhLzy9ACo= =Mhov -----END PGP SIGNATURE-----
Jun 02 2006