linux linenumbers in stacktraces and druntime/phobos debug builds..

Vijay Nayar vnayar at wgen.net
Wed Feb 8 15:48:00 PST 2012


I actually ran into this myself while working on a pet game project, and 
here's what I do.

First, let's start with a simple program that segfaults due to a null 
pointer.

// File seg.d
class Dummy {
     int a;
}

void main() {
     Dummy d;
     d.a = 3;
}

You compile and run the program with expected results.

  $ dmd seg.d
  $ ./seg
  Segmentation fault

If you have an older version of gdb, you should compile your program to 
include C compatible symbols.

  $ dmd -gc seg.d

Now run your program through gdb.
  $ gdb seg
  (gdb) run
  Starting program: /home/vnayar/projects/Demo/seg
  [Thread debugging using libthread_db enabled]

  Program received signal SIGSEGV, Segmentation fault.
  _Dmain () at seg.d:7
  7           d.a = 3;

And now you're good to go.

  - Vijay

On Mon, 6 Feb 2012, simendsjo wrote:

> I get an segfault in druntime, but have no idea where to start looking.
> _D4core7runtime18runModuleUnitTestsUZb19unittestSegvHandlerUiPS4core3sys5posix6signal9siginfo_tPvZv+0x3c
>
> I cannot seem to find a way to enable line numbers in traces (adding -g adds 
> line numbers in win, but not linux), and I cannot find any debug build of 
> libphobos2.a - is it included? what is it called?
>
> PS: using dmd 2.057 on kubuntu x64 using the deb package from digitalmars.com
>


More information about the Digitalmars-d-learn mailing list