> Yeah it seems to be fixed in 2.053 beta. > > But why is the stack trace printed out? Is that the new norm when > printing caught exceptions with write()? > > Regardless of that, I don't get any symbols printed out when building > with dmd -g -debug: > > C:\dmd2\windows\bin>dmd -debug -g test.d > C:\dmd2\windows\bin>test > object.Exception@test.d(24): thrown from foo > ---------------- > 42BA60 > 42B8D7 > 40203E > 4059B8 > 4059F7 > 4055F3 > 45BEED > object.Exception@test.d(36): thrown from bar #3 > ---------------- > 42BA60 > 42B8D7 > 402115 > 40203E > 4059B8 > 4059F7 > 4055F3 > 45BEED > object.Exception@test.d(36): thrown from bar #2 > ---------------- > 42BA60 > 42B8D7 > 4021D6 > 402115 > 40203E > 4059B8 > 4059F7 > 4055F3 > 45BEED > object.Exception@test.d(36): thrown from bar #1 > ---------------- > 42BA60 > 42B8D7 > ... > > Where are the symbols? :o
Recent work has been done on chained exceptions, so that could definitely change their behavior. And you should definitely get the symbols on Linux if you compile with the standard dmd.conf. If you aren't doing that for some reason, then you need to make sure that you use -L--export-dynamic. - Jonathan M Davis