new stack backtrace

Robert Virding <>
Tue Dec 14 11:09:37 CET 1999


Martin Bjorklund <> writes:
>The new stack backtrace printout on failures is great!  But I just
>spent half an hour trying to find out what was wrong with the
>following function in the module 'bt_conf':
>
>
>init_gws(Node) ->
>    Cf  = bt_cmd:bgetconfig(Node, cluster),
>...
>
>Obviously, I have no calls to config_file:parse_string in
>init_gws/1, as indicated by the backtrace.  But, init_gws calls
>bt_cmd:get_config, which looks like this:
>
>bgetconfig(Node, Type) ->
>    Cmd = cmd("bgetconfig"),
>    ibgetconfig(Cmd ++ " -t " ++ atom_to_list(Type) ++ " " ++
>		atom_to_list(Node)).
>
>ibgetconfig(Cmd) ->
>    Res = os:cmd(Cmd),
>    config_file:parse_string(Res).
>
>
>... and there's the error.
>
>
>The first question is why these last two calls don't show up in the
>stack backtrace?

Easy.  Seeing the call to config_file:parse_string/1 is the LAST CALL in 
ibgetconfig/1 which is the LAST CALL in bgetconfig/2 then the last call 
optimisation removes all traces of bgetconfig/2 and ibgetconfig/1.

Abnd as you know we can't do without the LCO. :-)

	Robert

-- 
Robert Virding                          Tel: +46 (0)8 692 22 12
Bluetail AB                             Email: 
Hantverkargatan 78                      WWW: http://www.bluetail.com
SE-112 38 Stockholm, SWEDEN
"Folk säger att jag inte bryr mig om någonting, men det skiter jag i".





More information about the erlang-questions mailing list