1

スクリプト言語(js、python、perl、さらにはphp、使いやすいもの)をOpenGLC++アプリケーションに埋め込みたいと思います。次のようなことができるようにするために、これを実行したいと思います。

  • 実行時にさまざまなC++クラスメンバーの値を出力します
  • 実行時にgdbをウェイクアップする割り込みを発生させる
  • バグを見つけたら、それを複製するための小さなスクリプトワンライナーを書きたいと思います

これは簡単なことではないと確信しています。これが良い/悪い考えであるかどうか、そしてそれが努力する価値があるかどうかを尋ねたいと思います。

ユースケースの例

何かに衝突するまで線を回転させ、衝突検出に衝突時に発生するSIGSEGVがあるとします。私はすべての角度を印刷し、SIGSEGVの前の角度を見つけ、いくつかの値を表示する小さなpythonthingieを作成して、何がうまくいかなかったかなどを把握できるようにします。

基本的に私がやろうとしているのは、gdbとuhmを避けることだと思います。プログラムが失敗した場合は、代わりにPythonでチェックする方法が必要です。

gdbが好きではないということではなく、gdbの限られたコマンドが好きではないということです。

更新: GDBは、すぐに使用できるPythonで拡張できるようになりました。これにより、コマンドの既定のシーケンスの多くの制限が解決されます。

4

5 に答える 5

1

まず第一に、GDB を使用してこれらすべてを非常に簡単に印刷できます。GDB に入ったら、「help data」が示す内容を試してみてください。

どの IDE を使用していますか? クロスプラットフォームの IDE Code::Blocks を試してみるのもよいでしょう。これは GDB と非常にうまくインターフェイスします。

別の言語とのインターフェースが必要な場合は、「Lua」を調べてみてください。学ぶのはとても簡単です。http://en.wikipedia.org/wiki/Lua_%28programming_language%29を参照してください。

Lua は他のアプリケーションに組み込むことを目的としているため、堅牢で使いやすい C API を提供します。API は、Lua コアと Lua 補助ライブラリの 2 つの部分に分かれています。

もちろん、これは C++ でもうまく機能します。

于 2013-03-06T11:58:56.187 に答える
0

Python は、アプリケーション スクリプト言語として非常に適しています。それは強い議論ではありませんが、luaがゲーム プログラミングで広く使用されていることは知っています (理由はわかりません)。OpenGL を使用しているため、便利かもしれません。

于 2013-03-06T11:49:12.990 に答える
0

それが良い考えか悪い考えか、私は質問を手伝うことはできません.

しかし、C++ で非常に使いやすいChaiscriptを見ることができます。

于 2013-03-06T11:28:25.207 に答える