3
私はErlang moduleを経由しています。 Erlangのバーチャルマシンのトレース機能はどのように実装されていますか?Erlangトレース技術はどのように機能しますか?
トレース呼び出しを追加するためにバイトコードを即座に「再コンパイル」しますか?または、スケジューラごとにすべてのバイトコードを「解釈」し、そのたびにリアルタイムでトレースロジックを実行しますか?それとも全く別のもの?
私はErlang moduleを経由しています。 Erlangのバーチャルマシンのトレース機能はどのように実装されていますか?Erlangトレース技術はどのように機能しますか?
トレース呼び出しを追加するためにバイトコードを即座に「再コンパイル」しますか?または、スケジューラごとにすべてのバイトコードを「解釈」し、そのたびにリアルタイムでトレースロジックを実行しますか?それとも全く別のもの?
実行時にコードを変更して、GDBがネイティブコードにブレークポイントを挿入する方法と非常によく似ています。
つまり、関数内の最初の命令は、トレースを行い、関数にジャンプする前に元のコードを呼び出す特別なトレース命令によって上書きされます。
ありがとうございます。私が理解しているように、gdbはデバッグのためのカーネルのサポートに頼ってこれを行います。 Erlang VMでどのように動作するのかについての参考文献はありますか? – elpddev
私は参照があるとは思わない。問題のコードで作業するので、私はそれを知っています。 – Lukas