8

+Forth インタープリターの構築に関する全体的な知識を準備しており、-*、 などの一般的な Forth コード ワードの一部を逆アセンブルしたいと考えています。

私の Gforth (現在、Ubuntu Linux にインストールされているバージョン 0.7.3 を持っています) では、コマンドseeで作成したコロン定義と単一のコード ワードを逆アセンブルできます.。しかし、他のコード ワードsee +またはsee /で試してみると、 というエラーが表示さCode +れ、control-c を押しても端末に入力できなくなります。

Gforthのマニュアルに示されているように、コード ワードを逆コンパイル/逆アセンブルできるはずです。

他の誰かがこの問題を抱えていて、それを修正する方法を知っていますか?

4

4 に答える 4

0

SEE は厳密に制御された動作を持たない言葉です。次のように呼び出された場合、単語 X のコードを表示するのは一種の最善の努力です。

Xを見る

これを行うのがどれほど難しいかによって、動作が少し異なります。セッションで単語を自分で定義した場合、コードを元に戻すことがほぼ保証されます。それが組み込みの単語である場合、特に+のような非常に初歩的な単語である場合は、さらに難しくなります。最適化またはマシン コードへのコンパイルのため、元の定義とあまり変わらないように見える場合があります。

特に gforth の場合、困難な場合、gforth はシステムに存在する標準ツールを呼び出してオブジェクト ファイルを分析します。そのため、gdb をインストールするか、gforth がどのように接続しようとしているのかを調べる必要があるかもしれません。Ubuntu と gforth 0.7.3 の具体例については、Lutz Mueller がレシピを提供しています。

.

于 2018-12-17T15:25:21.707 に答える