dbg match spec
Ulf Wiger (AL/EAB)
ulf.wiger@REDACTED
Mon Oct 3 14:23:58 CEST 2005
Aargh! That's what the problem was!
This single statement from the ERTS match spec guide:
"In ETS the match head is a tuple() (or a single
match variable) while it is a list (or a single
match variable) when tracing."
Having used match specifications mostly for ets,
I forgot about this little detail.
It's not exactly intuitively obvious... (:
/Uffe
> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Siri
> Hansen (EAB)
> Sent: den 3 oktober 2005 13:20
> To: chandru; erlang-questions@REDACTED
> Subject: Re: dbg match spec
>
>
> Hi Chandru - Hope you are well!!
>
> I'm sending from an address which is not member of the erlang list, so
> this might not come out on the list - but anyway...
>
> You could try
>
>
> dbg:tpl(dbg_test, test, 1, [{[{'A','_','_'}],[],[]}]).
>
> or
>
> dbg:tpl(dbg_test, test, 1,
> [{['$1'],[{'==',{element,1,'$1'},'A'}],[]}]).
>
>
> (But what is the 'call' command you put in the match spec body?)
>
> BR
> /siri
>
>
>
> chandru wrote:
> > Hi,
> >
> > If I had code like this:
> >
> > -module(dbg_test).
> > -export([test/1]).
> >
> > test(N) when integer(N) ->
> > io:format("Integer -> ~p~n", [N]);
> > test({'A', X, Y}) ->
> > io:format("A: X -> ~p, Y -> ~p~n", [X,Y]);
> > test(L) ->
> > io:format("L -> ~p~n", [L]).
> >
> > how would I write a dbg command to print out a trace when the second
> > clause is matched?
> >
> > I've tried:
> >
> > dbg:tpl(dbg_test, test, 1,
> [{'$1',[{'==',{element,1,'$$'},'A'}],[call]}]).
> >
> > but it doesn't work. whereas this does:
> >
> > dbg:tpl(dbg_test, test, 1, [{'_',[],[call]}]).
> >
> > but it is not quite what I want...I want to single out the
> second clause.
> >
> > cheers
> > Chandru
>
More information about the erlang-questions
mailing list