为什么dbg返回的pid:tracer()与dbg:get_tracer()不同

时间:2012-09-25 02:10:32

标签: erlang dbg

1> dbg:get_tracer().
{error,{no_tracer_on_node,nonode@nohost}}
2> dbg:tracer().
{ok,<0.33.0>}
3> dbg:get_tracer().
{ok,<0.35.0>}

document告诉:get_tracer返回the process or port to which all trace messages are sent.

但它没有清楚说明pid

返回的dbg:tracer

1 个答案:

答案 0 :(得分:0)

正如你在 pman 中看到的,确实有两个过程:

  • &lt; 0.33.0&gt; 位于 dbg:loop / 2
  • &lt; 0.35.0&gt; 位于 dbg:tracer_loop / 2

你可以在这里看到他们在做什么:https://github.com/erlang/otp/blob/maint/lib/runtime_tools/src/dbg.erl

我没有深入挖掘这一点,但一眼就看出前者正在做更多类似经理的工作,后者实际上处理了痕迹。