[erlang-questions] Examining bindings on the stack
Nicolas Charpentier
nc@REDACTED
Wed Sep 10 07:33:46 CEST 2008
Brian Candler wrote:
> I'd like to know the easiest way to examine bindings on the stack in an
> error backtrace. In particular I'd to be able to see the arguments to all
> the functions called up to this point.
>
> I've had limited success with the erlang debugger. I was trying to debug a
> backtrace from a call into an existing complex library (in this case
> yaws_soap_lib)
Hi,
If you know the name of the function in which the 'bug' occurs you can
easily see the value of parameters using *dbg*
(http://www.erlang.org/doc/apps/runtime_tools/index.html).
dbg is a trace/debug tool which can be used on a runtime system (almost
the time safely) without any specific compilation (like debug_info for
example).
With dbg, you can *at run-time* add a trace on any function of your
system and see the value of parameters and the result of the function call.
As dbg is complex, I can't give you exactly the instructions to type but
basically to activate trace on a specific function it will be something
like that:
> dbg:tracer().
> dbg:p(all,[c]).
> dbg:tpl(Module,Function,Match_spec).
The Match_spec allow you to filter the function call you want to trace
according to the value of the parameter. By default I always use
Match_spec = [{'_',[],[{return_trace}]}].
Hope that it will help
Regards,
---
Nicolas
http://charpi.net
More information about the erlang-questions
mailing list