Debugging
Steven Schveighoffer
schveiguy at yahoo.com
Tue Jul 13 05:48:50 PDT 2010
On Tue, 13 Jul 2010 02:26:22 -0400, Graham St Jack
<Graham.StJack at internode.on.net> 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
More information about the Digitalmars-d
mailing list