プログラムのブレーク、ステップ処理等を除き一応の完成、ブレーク等は
アプリケーションのGUIが出来上がらないとボタンが無いので。その他にも
いろいろ修正をしました。
・言語の内部コードをSJISからワイド文字wchat_tに変更。
・動的コンパイラの組込み。
・コンパイルエラーのモニター連携
・VM実行時エラーのモニター連携
・デバックシステムの組込み(第1段階終了、全体の80%以上は終わったかな)
・コンパイラのpool導入による高速メモリー確保と一括開放。
・VMも一部Pool化。
・VMの言語関数起動の最適化と高速化。
・ライザ付属エディターの組込み。
・LIZA.iniファイルによる初期化設定を組込み
等々いろいろ修正しました。特にデバッグシステムの組み込みは大きかった。
もう、文字で示すのも画像で示すのも困難と思うので。↓にUPしています。
http://ux.getuploader.com/yamamoto/download/2/debug.zip
もしお暇がありましたら試してみて、何かありましたらよろしくお願いします。
まだ本体はCUIで出来ています。多分バグだらけです。
手順は、ライザデバックモニタ「LZ_moniter1_001.exe」を実行して、本体の
「lz002.exe」を実行するとデフォルトの「start.lzp」を実行します。以前出した
タイマプログラムです。
2つともローカルでUDP通信をしているので、通信許可でお願いします。
初期起動時は、UDP通信がごっそり抜ける時があるので、本体は2回以上起動して
みたほうがいいかもしれません。時々モニターのログが抜ける時があります
本体はデバックモードのままなのでEXEも大きく、動作はとても遅いです。
大量のデバックトレースをモニターに送っているので。
また、XXX.lzpの起動をlz002.exeに起動リンクすれば、その他のプログラムは、
ダブルクリックで直接実行できます。そこに入っているXXX.lzpは総て動きます。
ただ、修正するとこける可能性が高いです。試作以前の段階なので。
デバックの組込みで以下の言語仕様が追加されました。
ただ、まだほとんど機能しません。本体のGUIを作る時でないと2度手間に
なってしまうので。
次からはようやくアプリケーションの本体です。ああ~~長かった~
次も長いんだろうな
//-- デバック行コントロール -------------
#define DBL // デバック行有効
//#define DBL /-/ // デバック行のコメント化
//-- デバック関係関数 -----------------------
#define 一時停止 debug_break
//-- デバックログ関係関数 -------------------
#define ファイル表示 debug_file_disp // モニタにファイル表示
#define トレースログ debug_trace_log // トレースログに表示
#define システムログ debug_system_log // sysログに表示
#define ログ1 debug_log1 // ログ1に表示
#define ログ2設定 debug_log2_set // ログ2にタブ追加設定
#define ログ2 debug_log2 // ログ2に表示
#define ログsys変数 debug_sysval // ログするシステム変数の登録
#define クリア "クリア" // ログするシステム変数のクリア
//-- デバックモニタ制御関数 -------------------
#define デバックモニタ制御 debug_monitor_control
#define 変数ログクリア 1 // モニタ02の変数ログクリア
#define 全ログクリア 2 // モニタ01全ログクリア
#define トレースログクリア 3 // トレースログクリア
#define sysログクリア 4 // sysログクリア
#define ログ1クリア 5 // デバックログ1クリア
#define ログ2クリア 6 // デバックログ2クリア
//-- ログ出力制御用システム変数 ---------------
#define 全ログSW SLI001 // 全てのログ0:停止1:開始
#define トレースログSW SLI002 // トレースログSW
#define システムログSW SLI003 //
#define ログ1SW SLI004 //
#define ログ2SW SLI005 //
#define ローカル変数ログSW SLI006 //
#define システム変数ログSW SLI007 //
//-- 組込み関数宣言 --------------------
DBL int 一時停止() // 戻り=0
DBL int デバックモニタ制御(int type); // 戻り=0
DBL int ファイル表示(string fname); // 戻り=0
DBL int システムログ(string str); // 戻り=0
DBL int トレースログ(string str); // 戻り=0
DBL int ログ1(string str); // 戻り=0
DBL int ログ2設定(string tag_name); // 戻り=log2id
DBL int ログ2(int log2id,string str); // 戻り=0
DBL int ログsys変数(string str); // 戻り=0
//--------------------------------------