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
返回所有跟踪消息发送到的进程或端口。
但它并没有明确说明dbg:tracer
返回的pid
是什么
最佳答案
在pman中可以看到,确实有两个进程:
- <0.33.0> 位于 dbg:loop/2
- <0.35.0> 位于 dbg:tracer_loop/2
你可以在这里看到他们在做什么:https://github.com/erlang/otp/blob/maint/lib/runtime_tools/src/dbg.erl
我没有深入研究这个问题,但乍一看,前者似乎在做更多类似于管理器的工作,而后者实际上是在处理痕迹。
关于erlang - 为什么 dbg 返回 pid :tracer() differs from dbg:get_tracer(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575337/