インストールの前に
このアプリはluaプログラムのデバッグを行うためのものなのですが、リモートデバッグを行うために
- デバッグ対象にリンクするライブラリ部分 (lldebug.lib(.a))
- 情報を表示するためのフレーム部分 (lldebug_frame)
に分かれています。ライブラリ部はデバッグ対象にリンクするライブラリで、フレーム部分は単一の実行ファイルです。つまり、インストールにはライブラリと実行ファイルの作成、また各種ファイルの適切なディレクトリへの移動が必要になります。ちょっと面倒なのでそこだけ気をつけてください。
lldebug_frameの作成
lldebug_frameとはデバッグ時の情報をヴィジュアルに表示するフレームで、単一の実行ファイルになっています。デバッグ時にはデバッグ対象プロジェクトから自動的に起動されます。
Windows(VC8)の場合
- lldebug_libs.slnから各種ファイルをビルド
- lldebug.slnから各種ファイルをビルド
linux(UNIX)の場合
- ./configure
- make
その以外の環境の場合
まずlldebug_frameが使用する外部ライブラリを作成する必要があります。
boost_system
- extralib/boost_asio_0_3_9/libs/system/src/*.cpp
からライブラリ(仮にここでは'boost_system.lib'とする)を作成して下さい。
treelistctrl
- extralib/treelistctrl/src/*.cpp
からライブラリ(仮にここでは'treelistctrl.lib'とする)を作成して下さい。
これにはwxWidgetsが必要です。
wxScintilla
- extralib/wxscintilla/src/*.cpp
- extralib/wxscintilla/src/scintilla/src/*.cpp
からライブラリ(仮にここでは'wxscintilla.lib'とする)を作成してください。
これにはwxWidgetsが必要です。
lldebug_frame本体
lldebug_frameとはデバッグ時にビジュアル環境を提供するためのウィンドウ部分です。
- src/*.cpp
- src/net/*.cpp
- src/visual/*.cpp
- (これまでの手順で作成した)boost_system.lib, treelistctrl.lib, wxScintilla.lib
- wxWidgets
- boost_thread, boost_serialization, boost_filesystem
から'lldebug_frame + 拡張子'という名前の実行ファイルを作成してください。この名前は固定で、"lldebug_frame"という文字列から実行可能である必要があります。
lldebug.lib(.a)の作成
これはデバッグ対象となるプロジェクトからリンクして使います。デバッグ情報の受け渡しや、受け取りなどを担当します。
Windows(VC8)の場合
lldebug_frameの作成手順と全く同じです。
linux(UNIX)の場合
lldebug_frameの作成手順と全く同じです。
他の環境の場合
- src/*.cpp
- src/net/*.cpp
- src/context/*.cpp
から'lldebug + 拡張子'という名前のスタティックライブラリ(この名前は違ってもかまいません)を作成してください。
ファイルの移動
linux(UNIX)の場合
- make install
によりすべてのファイルが適切な位置に移動されます。
(現時点ではこれは上手くいきません。そのうち直します。すみませんm__m)
その他の環境の場合
'lldebug_frame'が別ファイルであること、対象ファイルがlldebug.lib(.a)をリンクする必要があること、などからライブラリやインクルードファイルなどを適切な位置へ移動する必要があります。
具体的には以下の3つの手順が必要です。
- 'lldebug_frame'実行ファイルをパスの通ったディレクトリへ移動
- 'lldebug.lib(.a)'と'boost_system.lib(.a)'をライブラリパスの通ったディレクトリへ移動
- includeディレクトリ中のファイル(lldebug.h, llencoding.h など)をすべて、インクルードパスの通ったディレクトリに移動
実際の使用に関して
ファイルの移動が完了したらすべての準備は整っているはずです。実際に使うには
- 対象ファイルのluaファイルのインクルードを無くし、'lldebug.h'へのインクルードに置き換える
- 対象ファイルに、以上の手順で作成した'boost_system.lib(.a)'と'lldebug.lib(.a)'をリンク
- 明示的なリンクが必要なら、boost_thread, boost_serialization, boost_filesystemも追加
これで完了です。lua_open, lua_callなど、置き換える必要のある関数はすべて#defineによって置き換えられています。詳しくは'lldebug.h'を見てください。
試しにプログラムを実行してみましょう。自動的に'lldebug_frame'が起動され、ビジュアルデバッグができたと思います。
困ったことに、もしできない場合は、lldebug_frameがパスの通ったディレクトリにあるか? wxwidgetsの設定はきちんとなされているか? それぞれのライブラリ間でコンパイルオプションはちゃんとあっているか? などを確認してみてください。
しかし、もしかするとlldebug自身のバグかもしれません もしそうだった場合はこちらにご一報くださると幸いです。
簡便なデバッグ環境が必要な方へ
とりあえず、簡単なデバッグ環境が必要な方は、配布ファイル中に含まれている
- src/lua_debug/lua_debug.cpp
から
- src/lua_debug/lua_debug.cppをコンパイル
- それに'boost_system.lib(.a)'と'lldebug.lib(.a)'をリンク
して実行ファイル'lua_debug'を作成してみてください。luaファイルを与えれば、デバッグが行えると思います。