Asside from the stack trace (which I'm guessing comes from _objc_terminate() in the stack below), that's what a c++ core file from g++ would look like from an assert or uncaught exception. They both end up in abort.
On Thu, 29 Jul 2010, Sean Kelly wrote: > Date: Thu, 29 Jul 2010 18:52:47 -0700 > From: Sean Kelly <[email protected]> > Reply-To: Discuss the phobos library for D <[email protected]> > To: Discuss the phobos library for D <[email protected]> > Cc: Discuss the phobos library for D <[email protected]> > Subject: Re: [phobos] Calling abort() on unhandled exception > > Huh, so the ObjC behavior is to print the exception and abort() too. Looks > like good justification for doing it in D as well then. > > Sent from my iPhone > > On Jul 29, 2010, at 5:14 PM, Michel Fortin <[email protected]> wrote: > > > Le 2010-07-29 ? 19:50, Sean Kelly a ?crit : > > > >> Even on OSX I see an "Abort trap" message in the console when I exit an > >> app in this way. I'm inclined to think that this isn't acceptable and > >> that I should just try and sort out the weirdness that results from > >> throwing an object outside of main(), but I thought I'd ask here for > >> suggestions. As an alternative I could call asm HLT, but this may bypass > >> too much C-level runtime stuff. Thoughts? > > > > To put things in perspective: on OSX, if I throw an Objective-C exception > > and it is unhandled, I get this output: > > > > 2010-07-29 20:08:50.818 Nib Preview Helper[1875:a0f] *** Terminating app > > due to uncaught exception 'hello', reason: 'test' > > *** Call stack at first throw: > > ( > > 0 CoreFoundation 0x00007fff810cecc4 > > __exceptionPreprocess + 180 > > 1 libobjc.A.dylib 0x00007fff80d0d0f3 > > objc_exception_throw + 45 > > 2 TestApplication 0x00000001000012c2 main + 162 > > 3 TestApplication 0x00000001000011f4 start + 52 > > 4 ??? 0x0000000000000001 0x0 + 1 > > ) > > terminate called after throwing an instance of 'NSException' > > Program received signal: ?SIGABRT?. > > sharedlibrary apply-load-rules all > > (gdb) backtrace > > #0 0x00007fff86e363d6 in __kill () > > #1 0x00007fff86ed6972 in abort () > > #2 0x00007fff83e315d2 in __gnu_cxx::__verbose_terminate_handler () > > #3 0x00007fff80d10d29 in _objc_terminate () > > #4 0x00007fff83e2fae1 in __cxxabiv1::__terminate () > > #5 0x00007fff83e2fb16 in std::terminate () > > #6 0x00007fff83e2fbfc in __cxa_throw () > > #7 0x00007fff80d0d192 in objc_exception_throw () > > #8 0x00000001000012c2 in main (argc=1, argv=0x7fff5fbff7c0) at main.m:28 > > (gdb) > > > > -- > > Michel Fortin > > [email protected] > > http://michelf.com/ > > > > > > > > _______________________________________________ > > phobos mailing list > > [email protected] > > http://lists.puremagic.com/mailman/listinfo/phobos > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
