Debugging Erlang dbg–;远程shell在生产OTP系统中的调试

Debugging Erlang dbg–;远程shell在生产OTP系统中的调试,debugging,erlang,otp,Debugging,Erlang,Otp,我有一个基于OTP的Erlang应用程序,它的行为似乎很奇怪 我想连接到erlangshell并准确地跟踪正在发生的事情。 我可以完成对dbg:tracer()、dbg:tp()等的所有调用。很好,但是没有输出发送到shell 我想这可能是,因为我是通过一个远程外壳连接的 但是,当我调用dbg:n时(wiwob@vlxd38-钻压)。我得到一个错误: ** exception error: bad argument in an arithmetic expression in oper

我有一个基于OTP的Erlang应用程序,它的行为似乎很奇怪

我想连接到erlangshell并准确地跟踪正在发生的事情。 我可以完成对dbg:tracer()、dbg:tp()等的所有调用。很好,但是没有输出发送到shell

我想这可能是,因为我是通过一个远程外壳连接的

但是,当我调用dbg:n时(wiwob@vlxd38-钻压)。我得到一个错误:

** exception error: bad argument in an arithmetic expression
     in operator  -/2
        called as wiwob@vlxd38 - wob

如何找出输出发送到哪个shell并通过管道将其发送到我的shell?

我无法帮助您解决dbg问题,您没有提供足够的信息,说明如何将调试器连接到进程、模块

对于第二点,错误是自解释的,解析表达式wiwob@vlxd38-沃布,炮弹试着执行

wiwob@vlxd38减去wob,这对于2个原子是不可能的

函数dbg:n/1具有以下规格:

n(Nodename) -> {ok, Nodename} | {error, Reason}
Nodename = atom()
Reason = term()

因此,您必须将节点名称写为'wiwob@vlxd38-“wob”以强制整个表达式成为单个原子。

我无法帮助您解决dbg问题,您没有提供足够的信息,说明如何将调试器连接到进程、模块

对于第二点,错误是自解释的,解析表达式wiwob@vlxd38-沃布,炮弹试着执行

wiwob@vlxd38减去wob,这对于2个原子是不可能的

函数dbg:n/1具有以下规格:

n(Nodename) -> {ok, Nodename} | {error, Reason}
Nodename = atom()
Reason = term()

因此,您必须将节点名称写为'wiwob@vlxd38-wob'以强制整个表达式成为单个原子。

dbg:n/1的参数必须是一个原子和
wiwob@vlxd38-wob不是原子,它需要像
一样引用wiwob@vlxd38-wob'
。有关atom和其他数据类型的语法,请参见。

dbg:n/1
的参数必须是atom和
wiwob@vlxd38-wob不是原子,它需要像
一样引用wiwob@vlxd38-wob'
。有关atom和其他数据类型的语法,请参见