[Issue 1001] print stack trace (in debug mode) when program die

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon May 31 14:58:47 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=1001



--- Comment #25 from Brad Roberts <braddr at puremagic.com> 2010-05-31 14:58:39 PDT ---
Created an attachment (id=650)
sort hacky move of demangle from phobos to druntime and hook into the
stacktrace code

Arguably the demangler belongs in the runtime.  The current code is, well, less
than ideal.  At least from an interface standpoint.  But this get's the pieces
moved and put together to demonstrate what it could be.  In the process I also
noticed that the current unittest for druntime fails, which is handy for
testing.  The results:

<snip a bunch of foo unittest lines>
_arraySliceSliceMulass_s unittest
core.exception.AssertError at gc.gcx(264): Assertion failure
----------------
./unittest(class core.exception.AssertError
core.exception.AssertError.__ctor(immutable(char)[], uint) . +0x25) [0x8077a65]
./unittest(onAssertError+0x28) [0x8077c18]
./unittest(_d_assertm+0x16) [0x8095c02]
./unittest(void gc.gcx.__assert(int) . +0x12) [0x807f46e]
./unittest(void gc.gcx.GC.enable() . +0x54) [0x807c930]
./unittest(gc_enable+0x16) [0x807be7e]
./unittest(void core.memory.GC.enable() . +0x8) [0x8077ea0]
./unittest(_Dmain+0x2b) [0x8074b17]
./unittest(extern (C) int rt.dmain2.main(int, char**) . void runMain() . +0x14)
[0x8095f44]
./unittest(extern (C) int rt.dmain2.main(int, char**) . void tryExec(void
delegate()) . +0x1d) [0x8095ea9]
./unittest(extern (C) int rt.dmain2.main(int, char**) . void runAll() . +0x2d)
[0x8095f81]
./unittest(extern (C) int rt.dmain2.main(int, char**) . void tryExec(void
delegate()) . +0x1d) [0x8095ea9]
./unittest(main+0x88) [0x8095e58]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x12bbd6]
./unittest() [0x80741a1]

vs what it emitted before the changes:

_arraySliceSliceMulass_s unittest
core.exception.AssertError at gc.gcx(264): Assertion failure
----------------
./unittest(_D4core9exception11AssertError6__ctorMFAyakZC4core9exception11AssertError+0x25)
[0x8077a65]
./unittest(onAssertError+0x28) [0x8077c18]
./unittest(_d_assertm+0x16) [0x8095be2]
./unittest(_D2gc3gcx8__assertFiZv+0x12) [0x807f426]
./unittest(_D2gc3gcx2GC6enableMFZv+0x54) [0x807c8e8]
./unittest(gc_enable+0x16) [0x807be36]
./unittest(_D4core6memory2GC6enableFZv+0x8) [0x8077ea0]
./unittest(_Dmain+0x2b) [0x8074b17]
./unittest(_D2rt6dmain24mainUiPPaZi7runMainMFZv+0x14) [0x8095f24]
./unittest(_D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv+0x1d) [0x8095e89]
./unittest(_D2rt6dmain24mainUiPPaZi6runAllMFZv+0x2d) [0x8095f61]
./unittest(_D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv+0x1d) [0x8095e89]
./unittest(main+0x88) [0x8095e38]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xd23bd6]
./unittest() [0x80741a1]

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list