【问题标题】:Why pid returned by dbg:tracer() differs from dbg:get_tracer()为什么 dbg:tracer() 返回的 pid 与 dbg:get_tracer() 不同
【发布时间】:2012-09-16 12:30:27
【问题描述】:
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.

但它并没有清楚地说明dbg:tracer返回的pid是什么

【问题讨论】:

    标签: erlang dbg


    【解决方案1】:

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

    • 位于 dbg:loop/2
    • 位于 dbg:tracer_loop/2

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

    我还没有深入研究,但乍一看,前者似乎在做更多类似经理的工作,而后者实际上是在处理跟踪。

    【讨论】:

    • 像这样的东西更多是关于深入了解,而不仅仅是阅读文档。这个问题很好地说明了文档如何误导。
    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 2012-03-13
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    相关资源
    最近更新 更多