Query Parser Callstack
Gary Willoughby via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Sep 2 11:10:18 PDT 2014
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.
More information about the Digitalmars-d-learn
mailing list