[erlang-questions] Simple wrapper around dbg?

Philip Clarke <>
Tue Nov 6 16:44:29 CET 2012


Hi Attila,

This might not be answering the exact question you are asking, but have you
tried using the built in trace patterns ?
They can save you a lot of typing.  The build in trace patterns are
documented in the dbg man page (under the tpl/0 function).

For example, you can use
dbg:tpl(foo, bar, x)

as an alias for
dbg:tpl(foo, bar, x, [{'_', [], [{exception_trace}]}]).


Best regards
Philip



On Tue, Nov 6, 2012 at 2:33 PM, Attila Rajmund Nohl <
> wrote:

> Hello!
>
> I can trace a function call with specific arguments with a command like
> this:
>
> dbg:tpl(foo, bar, dbg:fun2ms(fun([baz,_]) -> return_trace(),
> exception_trace() end)).
>
> However, it's a long to type, I'd like to have a wrapper around it.
> The naive solution doesn't even compile:
>
> -module(d).
>
> -export([mfa/3]).
>
> mfa(M, F, A) ->
>     dbg:tpl(M, F, dbg:fun2ms(fun(Args) when Args==A -> return_trace(),
> exception_trace() end)).
>
> because there are no return_trace() and exception_trace() functions in
> the module. Even if it'd compile, I couldn't call it like this:
>
> d:mfa(foo, bar, [baz, _]).
>
> because the _ variable is not bound. Is there a simple workaround or
> shall I start to read up on parse_transforms?
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121106/804c2f71/attachment.html>


More information about the erlang-questions mailing list