none
Vistaで例外が発生したときにその詳細を知りたい RRS feed

  • 質問

  • C#でプログラムしてますが、XPで実行したときに、catchしていない例外が発生した場合は、次のような画面が表示されて、「詳細」ボタンをクリックすると「例外テキスト」が表示されてデバッグの際に便利です。

     

    アプリケーションコンポーネントで、ハンドルされていない例外が発生しました。「続行」をクリックすると、アプリケーションはこのエラーを無視し...(以下省略)

     

    「詳細」ボタンを押すと、

     

    このダイアログボックスではなく、Just-In-Time(JIT)デバッグを呼び出すための詳細に...(略)

    ************* 例外テキスト****************

    System.ArgumentOutOfRangeException: 指定された引数は、有効な値の範囲内に...(略)

    (このあとにトレースがついている)

     

    しかし、Vistaでは、このような詳細な例外の内容が見えずにアプリケーションを閉じるしかありません。

    Vistaで、上の例のようなXPのときのような例外の詳細を表示させる方法はないのでしょうか?

     

    試しにビルド時にPDBファイルを生成するようにしてVistaで実行してみましたが、やはりXPのような例外の詳細は表示されませんでした。

     

    どなたか表示させる方法がわかる方がいらっしゃいましたら教えて下さい。

    2008年4月7日 10:47

回答

  • 手元で簡単な例外をスローさせるサンプルを書き、Vista(SPなし)で動かしましたが、再現しません。

    「詳細」でスタックトレースも表示されるダイアログが表示されています。

     

    前提として、アプリケーションが起動すらしないのであれば、もっと別の角度で調査する必要があるかもしれません。

     

    #再現を試みた環境はVisual Studioがインストールされていません。

    2008年4月7日 14:28
    モデレータ
  • レジストリ内にある

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 内の

    Debuggerの値を確認してみてはいかがでしょうか?

     

    ■詳細が出ているマシン

    "c:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

     

    ■デフォルト

    drwtsn32 -p %ld -e %ld

    2008年4月18日 7:04
  •  Cantabile さんからの引用

    レジストリ内にある

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 内の

    Debuggerの値を確認してみてはいかがでしょうか?

     

    ■詳細が出ているマシン

    "c:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

     

    ■デフォルト

    drwtsn32 -p %ld -e %ld

    私が試した環境では該当の値はありませんでした。(値がなくても詳細が出るダイアログは出る)

    というのは本筋じゃないので、置いといて下さい。

     

    eikaさんの環境ではどのような値になっているかが重要ですね。

     

    参考

    http://www.atmarkit.co.jp/fdotnet/dotnettips/262apperror/apperror.html

    2008年4月18日 14:51
    モデレータ

すべての返信

  • 手元で簡単な例外をスローさせるサンプルを書き、Vista(SPなし)で動かしましたが、再現しません。

    「詳細」でスタックトレースも表示されるダイアログが表示されています。

     

    前提として、アプリケーションが起動すらしないのであれば、もっと別の角度で調査する必要があるかもしれません。

     

    #再現を試みた環境はVisual Studioがインストールされていません。

    2008年4月7日 14:28
    モデレータ
  • レジストリ内にある

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 内の

    Debuggerの値を確認してみてはいかがでしょうか?

     

    ■詳細が出ているマシン

    "c:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

     

    ■デフォルト

    drwtsn32 -p %ld -e %ld

    2008年4月18日 7:04
  •  Cantabile さんからの引用

    レジストリ内にある

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 内の

    Debuggerの値を確認してみてはいかがでしょうか?

     

    ■詳細が出ているマシン

    "c:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

     

    ■デフォルト

    drwtsn32 -p %ld -e %ld

    私が試した環境では該当の値はありませんでした。(値がなくても詳細が出るダイアログは出る)

    というのは本筋じゃないので、置いといて下さい。

     

    eikaさんの環境ではどのような値になっているかが重要ですね。

     

    参考

    http://www.atmarkit.co.jp/fdotnet/dotnettips/262apperror/apperror.html

    2008年4月18日 14:51
    モデレータ
  • こんにちは。森田 知良です。
    みなさんフォーラムのご利用ありがとうございます。

     

    Azuleanさん、Cantabileさん、有用な情報ありがとうございました。

     

    eikaさん、その後いかがでしょうか?
    私の方でAzuleanさん、Cantabileさんの情報は、有用な情報と判断しましたので、
    勝手ながら回答済みチェックを付けさせていただきました。
    追加の質問等がありましたら、是非もう一度投稿してくださるようお願いします。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有効な回答があった場合は、なるべく回答済みボタンを押してチェックを付けてくださるようお願いします。

     

    なお、eikaさんの意図しない回答にチェックが付いていた場合は、
    回答済みチェックを解除することもできますのでご確認ください。

     

    それでは、これからもフォーラムのご利用をよろしくお願いいたします。

    2008年4月24日 6:10