私はちょうどLuaでちょっと遊んで、Koneki Eclipseプラグインを試しました。これはかなりいいです。問題は、私が現時点でデバッグしている関数を変更すると、変更を保存するときに変更が有効にならないということです。だから私は強制的にアプリケーションを再起動します。デバッガを変更することができればすばらしいだろうし、スモールトークなどのようにオンザフライで有効になるか、あるいはJavaのホットコードの置き換えのように拡張されるだろう。これが可能かどうか誰かが手掛かりを持っていますか?Luaの "デバッガで"コードを書く方法は?
6
A
答えて
5
いくつかの制限がありますが、ある程度可能です。私はこの機能を提供するIDE/debuggerを開発してきました。実行中のアプリケーションのコンテキスト/環境でコマンドを実行するためのリモートコンソールへのアクセスを提供します。 IDEはlive codingもサポートしています。変更したコードを変更すると、そのコードがリロードされます。デモhereを参照してください。
主な制限は、現在実行中の機能を変更することができないことです(少なくともLua VMを変更することなく)。つまり、現在実行中の機能に対する変更の影響は、その機能を終了して再入力した後にのみ表示されます。同じ関数を繰り返し呼び出す環境(例えば、draw
を呼び出すゲームエンジン)ではうまく機能しますが、あなたのケースではうまくいかないかもしれません。
もう一つの課題は、関数の外部で作成され、その内部で参照される値であるupvaluesを扱うことです。現在のupvaluesを "読み込み"、新しい(new)関数が作成されたときに再作成する方法がありますが、現在の値を取得するために関数を再作成し、それらの上位値を持つ新しい環境を作成し、それらに適切な値を割り当てます。私の現在の実装はこれをしません。つまり、回避策としてグローバル変数を使用する必要があります。
ちょうど前日のLuaメーリングリストにrelevant discussionもありました。
関連する問題
- 1. デバッガを書く
- 2. Luaでは、コードを書くのが最も簡単な方法は何ですか?
- 3. joomlaでコードを始める方法と書く方法は?
- 4. このコードを書くクリーナーの方法
- 5. LUAテキスト・インタフェース・ライブラリー(すなわち、LUAでカスタムシェルを書く)
- 6. クエリのT-SQLコードを書く方法
- 7. プロセスにアタッチできるLuaデバッガ
- 8. 辞書とデータフレームでマルチプロセッシングのPythonコードを書く方法
- 9. LuaでのLuaの処理方法C
- 10. C++で行列乗算の高速コードを書く方法は?
- 11. 効率的な方法で次のコードを書くには?
- 12. コードを書く良い方法
- 13. javascriptにvbscriptコードを書く方法
- 14. JavaScriptにJavaコードを書く方法
- 15. nginxの下でLuaを実行する(Luaを使ってウェブサイトを書く)
- 16. Android Studioのデバッガでコードの行を戻す方法
- 17. デバッガでのアセンブリではなくオリジナルのObjCコードの表示
- 18. Luaは - ネストメタテーブル__index方法
- 19. Rails 5(turbolinks 5)でjQueryコードを正しく書く方法
- 20. mathematicaに特別にこのプログラムのコードを書く方法は?
- 21. MacOSでluaファイルを簡単に開く方法は?
- 22. JavaでLuceneの雪玉のコードを書く方法
- 23. Javaコードのようなスカラーコードを書く方法は?
- 24. 変数出力の中にPHPコードを書く方法は?
- 25. Luaスクリプト間でコードを共有する方法
- 26. コードで 'デバッガ'をgitで
- 27. Visual StudioでDelveデバッガを使用してリモートデバッグする方法コード
- 28. 地域の設定コードをJavaで書く方法
- 29. C++で幅優先検索のコードを書く方法
- 30. WordpressプラグインのためにPHP内でJavaScriptコードを書く方法
洞察力のある回答、Paul。ありがとう。 – OlliP
私は、Smalltalkで動作する理由は、全体のコードが完全にメモリにあるバイナリスナップショット(Smalltalkの "image")であるためだと思います。だから私はSmalltalkがこれを行うことができる唯一の言語だと思う。非常に残念です... – OlliP