erlang - 为什么 dbg 返回 pid :tracer() differs from dbg:get_tracer()

标签 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 返回所有跟踪消息发送到的进程或端口。

但它并没有明确说明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/

相关文章:

php - 无法配置 Notepad++ DBGP 插件。 Xdebug 已安装

安卓NDK |如何调试应用程序启动或暂停应用程序直到调试器连接

windbg - IDA Pro Windbg 命令不起作用

erlang - 接收循环模式匹配问题

erlang - Erlang的外部术语格式定义稳定吗?如果没有,用什么?

erlang - Erlang 中仅订购应用程序依赖项

http - Inets http客户端+授权

erlang - 从 erlang 插入 cassandra

c++ - 带条件的断点

erlang - 来自测试模块的 EUnit 输出调试信息