DOBON.NET DOBON.NETプログラミング掲示板過去ログ

突然正常終了する現象について

環境/言語:[XP,VB.NET2003,.NET Framework1.1]
分類:[.NET]

いつもお世話になります。ご教授の程よろしくお願い申し上げます。

題記の件につきまして、終了処理(END、フォームCLOSE)のコーディングをしていないプログラムを作成(終了時はALT+F4で終了する)したのですが、フォーム表示後、あるボタンを押下しますと、なぜか正常終了(デバックにて確認)する現象が発生しております。また、ステップ実行中で、F11キーを押下し次ステップに進む段階で突然正常終了するなど、どのタイミングで発生するのか見当もつかない状況でございます。ご質問ですが、原因究明をするための手段(トレースなど)、考えられる要因などにつきましてご教授の程よろしくお願い申し上げます。

立て続けで大変恐縮でございます。
2006/03/21(Tue) 13:03:44 編集(投稿者)

bigsouthさん,こんにちは。

私は「こんなはずない」「絶対に変」「異常だと思う」などという事態に
陥った場合は,新しいソリューション・プロジェクトを作成し,コードを
コピーし,フォームをデザインし直します。
なぜかそれで大抵直ります。原因がわからないのは気持ちが悪いですが...

それで直らないときには自分の書いたコードが実は悪かったというオチが
ほとんどです。(COMオブジェクトをいじくったが,解放のしかたがまずい,とか
マルチスレッドにしたが,同期のしかたがまずい,とか...)

規模が大きい場合はちょっと無理かもしれませんが
YASさん、ご返答誠にありがとうございます。

実行結果が考えていたとおりに動作しないのは、第1に作成したプログラムが悪いとの考えでおりますが、いかんせん正常終了となるため、どの処理で終了となるのかが特定できずにおります。その原因究明に何かデバッガの機能があるかと思いご質問させていただきました。
 ご指摘いただきました要因の中で、マルチスレッド(本投稿前の点滅処理)を使用しておりますので、その点も含め、VBの仕様以外はないのかを再確認いたします。
■No14987に返信(bigsouthさんの記事)
> 実行結果が考えていたとおりに動作しないのは、第1に作成したプログラムが悪いとの考えでおりますが、
> いかんせん正常終了となるため、どの処理で終了となるのかが特定できずにおります。

何もせず、コードを追うだけでは無理でしょう。
ロギングなどを有効活用してください。

___________________________________________________________________________________
じゃんぬ - Microsoft MVP for Visual Developer C#
  C#, VB.NET 入門  http://jeanne.wankuma.com/
  じゃんぬねっと日誌 http://blogs.wankuma.com/jeanne/
じゃんぬねっとさん、ご返答誠にありがとうございます。

ご指導ありがとうございます。

はい。その前提で考えております。
■No14990に返信(bigsouthさんの記事)
> じゃんぬねっとさん、ご返答誠にありがとうございます。
>
> ご指導ありがとうございます。
>
> はい。その前提で考えております。
じゃあ、ここで聞くことではないでしょう。
我々にわかるはずもないですし。
ログから追ってください。
>あるボタンを押下しますと、なぜか正常終了(デバックにて確認)する現象が発生しております。また、ステップ実行中で、F11キーを押下し次ステップに進む段階で突然正常終了するなど、どのタイミングで発生するのか見当もつかない状況でございます。

読んでみると明確な再現条件がありますね。>あるボタンを押下
突然消えてしまうというのはほとんどがAPIレベルの呼び出し不正だと思いますが
スレッド処理も絡んでるようなのでそこが原因かと。
まずはスレッド処理を殺して実行してみてはどうでしょうか?
こまめにコメントアウトをして実行を繰り返してみてください。
突然終了するというとDEPでしょうか。
まぁソースを追っかければすぐわかるでしょう。
> 突然終了するというとDEPでしょうか。

DEPというのは、XP SP2のDEP機能のことでしょうか?私は詳しくないのでぜひ教えていただきたいのですが、DEPが原因でアプリケーションが終了すると、突然正常終了するという状態になるのでしょうか?通常はダイアログのようなものが表示されると思うのですが、デバッグ中だと突然終了したりするのでしょうか?
http://www.atmarkit.co.jp/fsys/kaisetsu/045dep/dep.html

こう書かれていますが、デバッガがアタッチしてたらずばっと落ちるかもしれないなと・・・
■No15003に返信(中博俊さんの記事)
> http://www.atmarkit.co.jp/fsys/kaisetsu/045dep/dep.html
>
> こう書かれていますが、デバッガがアタッチしてたらずばっと落ちるかもしれないなと・・・

本当に申し訳ないのですが、デバッガがアタッチしているとDEP機能によりアプリケーションが突然終了するということが、紹介していただいた記事のどの部分に書かれているのか、私の読解力では分かりませんでした。記事を読む限りでは、何も表示されずに突然終了するようなことはなさそうに思えるのですが。もし面倒でなければ、どの部分で説明されているのかだけでも教えていただけないでしょうか?よろしくお願いします。

私も実際にDEPで突然終了することがあるのか、試してみたいとも思うのですが、私の環境では今のところ難しく、試せずにいます。中さんは実際にそのような経験をされたことがある(あるいは、そのような話を聞いたことがある)のでしょうか?
DEP環境が無いのでわかりませんが、デバッガがアタッチしていると挙動が変わることはままあることですよね?
それで候補としてあげただけですが?
■No15015に返信(中博俊さんの記事)
> DEP環境が無いのでわかりませんが、デバッガがアタッチしていると挙動が変わることはままあることですよね?
> それで候補としてあげただけですが?

そうですか...失礼しました。あまり突っ込まない方が良かったですね。結果的に掲示板を汚してしまいまして、申し訳ありませんでした。

DOBON.NET | プログラミング道 | プログラミング掲示板