On Tue, 13 Jul 2010 08:48:50 -0400, Steven Schveighoffer wrote: > On Tue, 13 Jul 2010 02:26:22 -0400, Graham St Jack > <[email protected]> wrote: > >> I have jumped back onto the D2 band-wagon after a long absence, read >> Andrei's book, and am having a great time cutting heaps of D code. My >> increase in productivity and happiness when compared to working in C++ >> is enormous. >> >> Bug thumbs up to everyone involved with D2, Phobos and the book. >> >> One area I am having a bit of trouble with is debugging. Can anyone >> help me out with how to debug a D2 program in Linux? Currently I am >> reduced to printing out heaps of debug text. >> >> Specifically: >> >> Stack Trace: >> ------------ >> >> I can't get the D2 stack-trace to work properly. All I get is something >> like this, which isn't helpful: >> >> Segmentation fault >> >> The code I used to generate this was: import std.stdio; >> import std.file; >> void foo(File file) { >> file.flush; >> } >> void main(string[] args) { >> File file; >> foo(file); >> } >> Is stack-trace support broken, or do I have to do something to enable >> it? > > Seg faults do not generate stack traces in Linux/MacOS. This is because > a segmentation fault is generated by a signal, and it's unsafe to throw > exceptions from signals. > > I believe seg faults can generate exceptions in Windows, but I'm not > sure. > > Your best bet is to get a debugger working, and it will halt on the > signal. As I understand it, a lot of good work was done recently on dmd > (can't remember who did it) to get it working better with gdb. > > -Steve
Thanks. I will persist with gdb and look forward to the D support coming through.
