On Mon, 28 Jun 2010 18:01:55 +0200, Sean Kelly <[email protected]> wrote:

Rory McGuire Wrote:

On Mon, 28 Jun 2010 17:36:15 +0200, Sean Kelly <[email protected]>
wrote:

> Andrei Alexandrescu Wrote:
>>
>> We haven't reached consensus on where to put enforce() and friends. Any
>> other ideas? Of the above, I like std.checks.
>>
>> Better yet, how about defining std.exception that includes a host of
>> exception-related functionality (such as defining exceptions that retain
>> file and line, perhaps stack traces etc.)?
>
> The trace functionality already exists in druntime. As for exceptions,
> they may belong there as well if they're ones the runtime should be
> aware of.

How does one get a print out of the stack trace then? Is it a setting or
something?

I should qualify my original statement by saying that it's only implemented for Linux and OSX so far. I have some of the declarations in for the Windows implementation but haven't gotten to it yet.

Is there a way to get the function name/line? I'm using this on ubuntu 10.04.


void fun() {
        throw new Exception("eeek");
}

void main() {
        fun();
}

Output is:


object.Exception: eeek
----------------
../throw() [0x80493a0]
../throw() [0x804ba44]
../throw() [0x804b9a9]
../throw() [0x804ba81]
../throw() [0x804b9a9]
../throw() [0x804b958]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xf764cbd6]
../throw() [0x80492b1]


-Rory

Reply via email to