デバッグで実現されないバグを発見するには


kazuki  2006-01-25 04:17:41  No: 129821

すぐ下に解決させてもらった質問があるのですが、今度は違う質問なので新しく質問させていただきます。

前書いたようにタブブラウザを作っているのですが、デバッグ(VB上の実行ボタン)するときにはならないのですがexeにしたら発生するバグがあります。
アドレスバーで入力したアドレスを現在開いているウェブブラウザでアクセスすると、クリックを受け付けません。具体的に言うと、IEでインターネットオプションを開いたままIEをクリックしたらポンポンと音が鳴りますが、あの状態になってしまいます。また、ホームボタン(.gohomeを使用)をクリックしても同様のことが起こります。ただ、ウェブブラウザ上でリンクで開く分にはそのようなことはありません。また、アドレスバーで入力したアドレスを新しいタブ(ブラウザ)を作ってアクセスするというのは問題なくできます。

開発環境はVB6+XPHomeです。

よろしくお願いします。


なな  2006-01-25 04:55:32  No: 129822

> すぐ下に解決させてもらった質問があるのですが、
> 今度は違う質問なので新しく質問させていただきます。

順番などは入れ替わるので、URLをリンクしておくのが親切です。

>デバッグで実現されないバグを発見するには

バグ、を発見する行為をデバッグというので
デバッグで実現されないバグを発見するには手法を変えることです。

例えば、Logファイルなどに、値を出力させる等・・・。


我龍院忠太  2006-01-25 18:18:19  No: 129823

>前書いたようにタブブラウザを作っているのですが、デバッグ(VB上の実行ボタン)
>するときにはならないのですがexeにしたら発生するバグがあります。
開発環境では正常に動作するが、コンパイルしたEXEファイルでは期待した動作にならない
と言うことですか?
一度試しにコンパイルオプションで「P-Codeコンパイル」を選択して
コンパイルをしてみましょうか、根本的な解決にはなりませんが。

>アドレスバーで入力したアドレスを現在開いているウェブブラウザでアクセスすると、
>クリックを受け付けません。
修飾語を取ってチョッと位置を入れ替えると、
「ウェブブラウザでアドレスをアクセスするとクリックを受け付けません」
となるけれどクリックを何が受け付けないのかな、"ぽんぽん"言うなら
クリックを受け付けてる気がするが。

要するにウェブブラウザがNavigateを受け付けないと言うことですか?
Navigateの前にWebBrowser.SetFocusを入れてみるとか。


kazuki  2006-01-26 09:41:37  No: 129824

>例えば、Logファイルなどに、値を出力させる等・・・。
これは自分でファイル出力のプログラムを作って行うということでしょうか?

>開発環境では正常に動作するが、コンパイルしたEXEファイルでは期待した動作にならない
>と言うことですか?
そのとおりです。P-Codeでコンパイルしてみましたが、同じ現象になってしまいました。

あと、クリックを受け付けないという表現は適切じゃなかったです。
クリックをしてもコマンドボタンが押せなかったり、アドレスバーに入力できなかったり(カーソルが出ない)するんです。フォーム全体がフリーズしているといえばいいのかな。終了するにも強制終了しかできない状態になってしまいます。

>要するにウェブブラウザがNavigateを受け付けないと言うことですか?
navigateは受け付けていると思います。新しいタブで開く場合にはなんの問題もないので。。。


なな  2006-01-26 11:42:56  No: 129825

>これは自分でファイル出力のプログラムを作って行うということでしょうか?

自作しても他人が作成したものを利用しても別にかまいません。

オリジナルな仕様ならば、自作は必要ですが、
この場合は、テキストファイルに出力する。という処理なので
自作するまでも無く、ネットにサンプルが嫌というほど存在します。


葉月α  2006-01-26 18:09:54  No: 129826

水をさすようだが
質問の内容は以下でよろしい?(俺流解釈なのだが)

今私は独自のタブブラウザを作成しております
VBのコンパイラ上でデバッグ実行時には発生しないが
コンパイルを行いEXEファイルから実行すると発生するバグが存在します

バグの内容は
実行後独自のタブブラウザにアドレスを直接入力し接続ボタンを押すと
webページを開くはずなのですが
直接入力するとなぜかボタン及び概ねの画面の機能が反応しなくなります
(親画面よりモーダルの子画面を開いている時に親画面をクリックした時の音が鳴る)

ただし、現在表示中のページ内のハイパーリンクなどはその現象の間でもクリックできますし、リンク先に飛びます
また、入力した直接入力アドレスに対し、新しいタブで開くを選択すると正常に新しいタブにて任意のページを開くことが出来ます
この問題はどのような状況で起こるでしょうか?

>前書いたようにタブブラウザを作っているのですが
>アドレスバーで入力したアドレスを現在開いているウェブブラウザでアクセスすると
このように書くとタブブラウザは貴方が作成しているものと認識できるのですが
ウェブブラウザが何なのか特定できない気がします
もしかしてIEのアドレスバーに入力後反応しなくなる?とも取れないこともないし


kazuki  2006-01-27 00:13:02  No: 129827

だいたい葉月αさんの言っている通りです。

>直接入力するとなぜかボタン及び概ねの画面の機能が反応しなくなります
>(親画面よりモーダルの子画面を開いている時に親画面をクリックした時の>音が鳴る)
概ねではなく画面全体(フォームを含むそのなかのコントロール)の機能が反応しなくなるため、
>ただし、現在表示中のページ内のハイパーリンクなどはその現象の間でもク>リックできますし、リンク先に飛びます
>また、入力した直接入力アドレスに対し、新しいタブで開くを選択すると正>常に新しいタブにて任意のページを開くことが出来ます
以上のようなこともできません。

>このように書くとタブブラウザは貴方が作成しているものと認識できるので>すが
>ウェブブラウザが何なのか特定できない気がします
>もしかしてIEのアドレスバーに入力後反応しなくなる?とも取れないことも>ないし
作成したブラウザが反応しないのであって、IEなどのブラウザは正常に動作します。


葉月α  2006-01-27 18:10:02  No: 129828

じゃぁバグとなりそうな要因を挙げるしかないような気もしますが・・・

ぱっと思いつく限りだと・・・
1.アドレス入力直後及びどこらかにフォームを固める処理がある
    Form.Enable = False
    Form.Lock = True
    など・・・

2.実はプログラムが稼動中
    CPU使用率をこまめにチェックし動いていないか確認する
    ループやサーバの返答待ち状態でないかを確認

3.隠れてこっそりモーダルフォームを開いていないか?

4.コンパイルしたEXEが実は違うものを実行している
    一度EXEを削除し再作成する

5.P-Codeでもなくコードの最適化なしでコンパイルしてみる
    これでうまくいった場合IF文などに欠陥の恐れあり

本当にぱっと思いつく限りでスマソ


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加