On Friday, 28 June 2013 at 20:00:52 UTC, Johannes Pfau wrote:
Am Fri, 28 Jun 2013 11:12:25 -0700
schrieb Sean Kelly <[email protected]>:
If I remember correctly, the issue there was that the runtime
would
need to open the executable or map file and parse it, and it
seemed a
lot more straightforward to simply make an API call. But if
you're
inclined to submit a pull request...
In the meantime the GCC guys have developed libbacktrace [1]
for GCC 4.8
which does exactly that: map the executable, parse it and use
the dwarf
debug info and all that without malloc. We're currently
integrating
this into GDC [2].
Unfortunately it's not as easy to integrate into dmd: It uses
libgcc,
the libbacktrace library is not installed in the target system
(it's
only available at gcc build time, we then just link it
statically into
druntime) and you need a more advanced build system to check for
BACKTRACE_SUPPORTED in C headers.
[1] https://github.com/mirrors/gcc/tree/master/libbacktrace
[2] https://github.com/D-Programming-GDC/GDC/pull/65
https://github.com/bombela/backward-cpp
That may be relevant.