ddwTree.dll デバッグモジュールDLL †
ddwTree とはモジュール変数など同一グループに属する変数を階層表示することで視覚的に分かりやすくしたデバッグウィンドウです。
kz3のブリーフケースより、ddwTree/archive/試供品をたどったddwTree.dllがDLL本体です。
- naznyarkさんの指摘を受けて、コンパイラオプションを調べCRTライブラリのリンク方法を変更してみました。現在試供品に入っているのは以下の二つです。最終的には静的リンクしてリリースビルドしてリリースします。
- ddwTree_sd.dllは静的リンク(Static Link Debug bild)版です。(こちらを使ってみてください)
- ddwTree_dd.dllは動的リンク(Dynamic Link Debug bild)版です。(以前アップしたのはどうもこちらのようです)
- ddwConfig.iniは拡張情報を見るために必要な設定ファイルです。
- 標準デバッグウィンドウhsp3debug.dllのバックアップを必ずとる
- hsp3debug.dllはhsp3.exeと同じフォルダにあります。
- hsp3debug.dllをhsp3debug.dll.oldのようにリネームしてバックアップをとります。
またはバックアップ用のフォルダに移しても構いません。
- ddwTree.dllをhsp3.exeと同じフォルダに入れる
- ddwTree.dllをhsp3debug.dllにリネームする
これで後はスクリプトを普段どおり実行すればhsp3debug.dll(標準)の代わりにhsp3debug.dll(ddwTree.dll)がHSPから呼び出されてデバッグウィンドウが表示されます。
OS | HSPのバージョン |
---|
Windows XP Home SP2 | 30a,31b1-b2,31b4-b5 |
Windows XP Pro SP2 | 31b4 |
(ddwtree_sd.dll) Windows 98se | 30a,31b5 |
ddwTreeはデフォルトで標準デバッグウィンドウと同等の内容を表示します。
ddwConfig.iniを用意することでddwTreeを拡張することが出来ます。この設定ファイルはddwで共通して使われることを想定しています。
拡張表示が可能なのは現段階では、int型、double型、str型の変数情報のみです。
ddwConfig.iniはhsp3debug.dll(ddwTree.dll)と同じフォルダに入れて使います。
- メリット
- 標準では簡略・省略されていた内容が確認できる
- 標準では不可視となっていた内容が確認できる
- デメリット
- 情報量が多くなると表示に時間がかかる
- 情報量が多くなると目的の情報を確認するのに時間がかかる
- HSPの仕様変更に弱い
- ついにブリーフケースに試供品ddwTree.dllをアップしました。hsp3.exeのあるディレクトリのデフォルトのhsp3debug.dllをバックアップ(hsp3debug.dll.defにリネームなど)してから、ddwTree.dllをhsp3.exeのあるフォルダに放り込み、名前をhsp3debug.dllに変更して使います。表示できる変数情報はddwTree.dll単体では標準内容となります。一番心配なのはxp以外のPCで問題なく動くかどうかです。動かなかったりエラーが出たりと迷惑かけてしまったら「動かないじゃん!」と怒ってください...。それでも責任は取れませんので自己責任でテストして頂ける方だけ、使ってみてください。 -- kz3
- もしテストしてエラー表示なく動かせた方がいましたら、動作環境の方に環境の追加お願いします。 -- kz3
- 具体的に云えば各ツリーを(エクスプローラなどのように)折りたためるとよりもっといいのですが。 -- Irisawa
- 私の環境 Win98se + HSP3.0a/3.1b5 では「No debug module.」のエラー。
要RT + デバッグ でビルドしているなら実行時に msvcr80d.dll が必要なのが原因かな?
(VC なしの私の環境では dll がないので仮説の検証はできていません。) -- naznyark?
- Irisawaさんテストありがとうございます。テストということで説明されていませんでしたが、デフォルトでツリーの展開を抑制し、iniファイルで抑制の有無を変更できるような仕様になっています。どっちをデフォルトにするか迷いましたが、ご意見を取り入れて抑制しないほうをデフォルトにしたいと思います。 -- kz3
- すみません、(SS から予想しただけで)試していませんでした。普通にダブルクリックで表示したり折りたためるんですね。[+]表示があった方がいいと思うのですが...。 -- Irisawa
- っっ!自分以外の環境で実行できたとばかり思っていました...;;なるほど...角ポチ[+]もあったほうがいいということですね。メモしておきます。 -- kz3
- naznyarkさんもテストありがとうございます。早速何かミスを出してしまったようですみません...。原因を調べてみたいと思います。その前に一つだけ...実はHSPがhsp3debug.dll、もしくはエクスポート関数を見つけられなかった時も同様のメッセージ(errordialog.png)を出すのですが、エクスポート関数がないということはないはずなので今一度hsp3debug.dll(ddwTree.dll)があるかどうかだけ確認していただけると嬉しいです。(そんなはやとちりはしないと思いますが^^;)-- kz3
- ここまで調べて(コンパイラオプション)ダメだったらどうしよう...。-- kz3
- ddwtree_sd.dll 、私の環境 Win98se + HSP3.0a/3.1b5 で動作しました。
良い感じですね。それでも現状での個人的不満点をメモ。
まあ、感じたことを軽く書き流しただけですので気にしないで下さい。-- naznyark?
- ウィンドウ右上の操作ボタンは落ち着かない。
- 整数型のシステム変数は常に10進と16進の両方の数値を表示してくれたほうが良い。
- というより全ての整数型数値は10進と16進の切り替え表示か同時表示ができたほうが良い。
- 多次元配列の2次元以降の内容表示はできないのかな?
- とりあえず静的リンク版、無事動作確認とれたことに感謝しますーー!(本当に嬉しい) -- kz3
- 感じたことは書いていただけると助かります。ddwTreeでは表示する内容に標準モードと拡張モードを用意してあり、iniファイルで拡張モードを有効にするような仕様になっています。とりあえずuxtheme.dllの遅延ロードが有効になっていることと、キャプション描画(デバッグボタン周り)の描画が他の環境で動作するかが心配だったのでiniファイルは添付しませんでしたが、この際拡張版の内容についても意見を伺ってみたいと思います。 -- kz3
- 拡張表示に必要なddwConfig.iniをブリケスにアップしました。拡張表示に関しては自分の「こうしたほうがいい」しかまだ詰めていないのでかなりクセが強いと思います。 -- kz3
- 操作ボタンが落ち着かないというのは、具体的に言うとどういうことでしょうか?ちらついたり...クラシックだとキャプションが狭いとボタン押しづらかったりしますね...。10進,16進表示に関しては取り入れたいと思います。 -- kz3
- > 落ち着かない
機能面のことではなくあのあたりにウィンドウ操作以外のボタンがあるデザインになじめないという気分的なものです。 -- naznyark?
- あぁ^^;それもそうですねぇ...最大化ボタンとかも紛らわしかったりしますね...変数の内容表示領域を多く取ろうと思ってデバッグボタンのスペースを節約できないかと考え、ちょうどタイトルバーに[閉じる]ボタンなどがなく、また、[閉じる]ボタンなどインターフェースと揃っていてスッキリするかな、と思って実装しましたが、かえって違和感を...orzあとデバッグ作業は一つエラーが出たら、一つエラーを潰して...ということが多く、そう頻繁に停止と実行を切り替えたりすることはないかなぁという考えもあって標準のように大きくスペースをとらない位置に配置したい、という考えもありました。ぬ〜違和感があると思いますが我慢してやってください〜 -- kz3
- 要望です
- ウインドウの表示位置の記憶
- 構造体(STRUCT)のダンプ表示
- 変数を選択したときに表示される右側部分(EDITコントロール)に水平スクロールバーを表示
- 検討お願いします -- Shark++
- Shark++さんもテストしていただけましたかー^^struct型の拡張をちょっとだけ始めました。他二つの要望も実装しましたー。 -- kz3
- ところで、なんだかここを要望聞くために掲示板みたいに使うのは悪い気がしてきました(ソース公開していないので)。以前も似たようなことがありましたし...。そこで、Yahooをちょっと見てたらブログなんていうものがあったので、立ち上げました。(araranさんもやってたしね。)ddwTreeに関する要望はブログの方にコメントつけていただけると助かります。(使いにくいけど...)ブログは...ブリーフケーストップにリンク置いておきました。というわけで、ここは紹介などに留めようかと思っています。-- kz3
- スパム対策のため一時的にコメント入力欄を削除してみます。コメントを書き込みたい場合は、お手数ですが編集でコメント入力欄を有効にしてください。 - GENKI