0

私はOTPベースのErlangアプリケーションを持っていますが、これは奇妙な動作をしているようです。

erlangシェルに接続して、何が起こっているのかを正確に追跡したいと思います。dbg:tracer()、dbg:tp()などへのすべての呼び出しは問題なく実行できますが、出力はシェルに送信されません。

リモートシェル経由で接続しているので、そうかもしれないと思います。

ただし、dbg:n(wiwob @ vlxd38-wob)を呼び出すと。エラーが発生します:

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

出力が送信されたシェルを見つけて、シェルにパイプするにはどうすればよいですか?

4

2 に答える 2

3

への引数dbg:n/1はアトムでなければならwiwob@vlxd38-wobず、アトムではありません。 のように引用する必要があります'wiwob@vlxd38-wob'。アトムの構文とその他のデータ型については、Atomsを参照してください。

于 2012-09-16T20:57:23.647 に答える
1

dbgの問題についてはお手伝いできません。デバッガをプロセス、モジュールに接続する方法について十分な情報を提供していません...

2 番目の点については、エラーは一目瞭然です。式 wiwob@vlxd38-wob を解析すると、シェルは実行を試みます。

wiwob@vlxd38 マイナス wob。これは 2 つのアトムでは不可能です。

関数 dbg:n/1 の仕様は次のとおりです。

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

そのため、式全体を強制的に単一のアトムにするために、ノード名を「wiwob@vlxd38-wob」と記述する必要があります。

于 2012-09-16T17:58:48.340 に答える