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