On Monday, 1 September 2014 at 21:00:46 UTC, Nordlöw wrote:
Are there some nice traits or internals to query the current
call stack for address or perhaps even their (mangled) names.
I'm mostly interested in using this to detect infinite
recursions in my recursive descent parser. This provided that
my parser slice hasn't changed since last call to the same
function.
I've no idea how it is used but '_d_traceContext' might be of use:
import std.stdio;
int foo(int n)
{
writefln("&foo: 0x%X", &foo);
writefln("%s", _d_traceContext(&foo));
return n;
}
extern(C) Throwable.TraceInfo _d_traceContext(void* ptr = null);
void main(string[] args)
{
auto x = foo(100);
}
Found in object_.d in the druntime repo.