現在、COM DLLに定義されているオブジェクトを処理するVB.netプログラムで作業しています。 問題は、そのオブジェクトによってクラッシュが発生することがあることです。「Try Catch」で処理できない例外がスローされ、Visual Studioでデバッグを求めるダイアログが表示されます。 このアプリケーションをのみ無効にします。 クラッシュの場合には、他のすべての.Netアプリケーションでこのダイアログが表示されます。 さて、私はVisual Studio 2008を使用します。1つのアプリケーションのVisual Studioデバッガを無効にする方法
答えて
私は最終的にHans 'one(コメントを参照)以外のアプローチを選択しました。カスタムプログラムをデバッガの代わりにデバッガとして使用するためのレジストリの設定。そのプログラム( "DebuggerCaller.exe"と呼ぶ)をDr Watson(または他の登録されたデバッガ)にリダイレクトするか、クラッシュしたプロセスの名前の後にダンプファイルまたはログを自動的に作成します。あなたはこのアプリケーションがにHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ DbgManagedDebuggerで、レジストリで定義されます
KEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgJITDebugLaunchSetting = 2
レジストリに設定を必要とする管理アプリケーション
の場合
クラッシュの場合に呼び出される。これは存在しないか、16(デフォルト)と等しくなる可能性があります。 Visual StudioとそのJITデバッガがインストールされているマシンで 、値は次のとおりです。
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgManagedDebugger
= "c:\WINDOWS\system32\vsjitdebugger.exe" PID %d APPDOM %d EXTEXT "%s" EVTHDL %d
とエルス
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgManagedDebugger
= "MyDebugCaller.exe" PID %d APPDOM %d EXTEXT "%s" EVTHDL %d
のようなものに置き換える必要があり、エントリが存在しないかではないかもしれない
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgManagedDebugger
= "drwtsn32.exe" -p %ld -e %ld
は
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgManagedDebugger
= "*MyDebugCaller.exe*" -p %ld -e %ld
のようなものに置き換える必要があります 私たちのdebuuggerがそれら(特にPID)を使用してプロセス名を決定し、ログを作成し、必要に応じて別のデバッガに転送できるように、引数は変更されません。ネイティブアプリケーションの場合
手順は非常に類似しています。 最初に定義されたネイティブアプリケーションのデバッガが
のVisual Studioがインストールされている場合、その値は、一般的にdrwtsn32.exe" -p %ld -e %ld
または"c:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld
ある HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
ある
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Auto
= 1
エントリキーを設定します。 それはこのようにSTHに変更する必要があります。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
= "*MyDebugCaller.exe*" -p %ld -e %ld
私は、これは明らかだった願っています。 jitデバッガの設定に関する情報は、http://msdn.microsoft.com/en-us/library/2ac5yxx6%28v=vs.90%29.aspx
- 1. 無効なwin32アプリケーションVisual Studioアプリケーション
- 2. Visual Studio 2008のラジオボタンを無効にする方法
- 3. Visual Studioエディタでフォントスムージングを無効にする方法は?
- 4. Visual Studioでプロジェクト間で警告を無効にする方法
- 5. Visual Studioでコンパイルエラーの警告を有効または無効にする方法
- 6. (再)Visual Studio 2008でIE7でJavaScriptデバッガを有効にする
- 7. のVisual Studio - リリースモードでは無効のstd ::文字列のデバッガ出力
- 8. Visual Studioデバッガの拡張性 - VSデバッガのソースファイルパスのリダイレクトに従う方法
- 9. Visual StudioデバッガでIloIntArray要素にアクセスする方法は?
- 10. visual studio C++デバッガの使い方は?
- 11. のVisual Studioコンソール - デバッグ時にエラーに閉じ無効にする方法(F5)
- 12. Visual Studioデタッチ現在のデバッガ
- 13. Visual Studio 2008 - 保留中のチェックイン処理を無効にする方法
- 14. Visual Studioのエラーリストで視覚的な基本エラーを無効にする方法
- 15. Visual Studio 2010で戻り値の最適化を無効にする方法は?
- 16. Visual Studio 2012 RCでブレークポイント行のハイライトカラーを変更/無効にする方法?
- 17. Visual Studio 2003でデバッガからXMLストリームを検査する方法
- 18. Visual Studioデバッガでビットマップオブジェクトを確認する方法は?
- 19. ブラックベリーの1つのアプリケーションでサウンドを無効にする
- 20. Visual Studio Wp8.1でアプリケーションのパッケージ名を見つける方法は?
- 21. Visual Studio 2008でVisual Basicバックグラウンドコンパイラを無効にする
- 22. 1つのオプションが選択されている場合、Visual Studio 2010の特定のオプションを無効にする
- 23. Visual Studio 2010でマニフェストファイルオプションを使用してUACプロンプトを無効にする方法
- 24. Visual Studio 2015のGit統合を永久に無効にする
- 25. Visual Studio 2012(またはResharper)で/ *オートコンプリートを無効にする方法
- 26. Visual Studio 2010のHtmlタグペア編集を無効にする
- 27. Visual Studioで特定の例外タイプを無効にするスクリプト
- 28. Microsoft Visual Studio 2012のソリューションレベルでコード分析を無効にする
- 29. VSTOのVisual Studio 2008変換ウィザードを無効にする
- 30. Visual Studioの自動ID名前変更を無効にする
から取得できます。まず、AppDomain.CurrentDomain.UnhandledExceptionイベントを購読します。これは、COMサーバーによって開始されたネイティブスレッドでエラーが発生した場合でも、例外をキャッチしないことがあります。その後、ネイティブコードSetUnhandledExceptionFilter()を記述する必要があります。正しいbtwを得るためにかなり難しい、最高の回避。このダイアログでは、お客様のマシンにデバッガオプションは提供されません。 –
ありがとう、ハンス。 AppDomain.CurrentDomain.UnhandledExceptionイベントのサブスクリプションは既に実装されており、この場合は機能しません。私はネイティブコードを書くことは私を気に入らないだろうと認めなければなりません:私は実際に私の場合にこれを実装する方法を知りません。 .Netでの私の経験は貧弱で、C/C++での私の経験は悪いです。 –
私が書いたように、これはネイティブコードを書く必要があり、少し過度のものになるので、Hansの提案をあきらめました。私は私のVBコードでWin32 API関数SetUnhandledExceptionFilter()を呼び出そうとしましたが、うまくいきませんでした。 –