0

.net 4 デバッグ API が起動時にアプリケーションの状態を何らかの形で破損させる方法はありますか?

私が持っている問題は次のとおりです。

  • .net デバッグ API (visual studio 2010、sharp development 4、mdbg) を使用してデバッガー内からアプリケーションを起動すると、さまざまなランダム アクセス違反が発生します。
  • .net デバッグ API (delphi 2007、sos 拡張機能付きの windbg) を使用せずにデバッガー内からアプリケーションを起動すると、すべて正常に動作します。
  • アプリケーションを直接起動し、後でデバッガーをアタッチすると (Visual Studio 2010、sharp development 4、mdbg、delphi 2007、windbg など)、すべて正常に動作します。
  • .net 3.5 と clr 2.0 に戻せば、まったく問題ありません。

マネージ デバッグ API の .net 3.5 から 4.0 への変更により、アプリケーションを起動するとアクセス違反がスローされる原因は何ですか?

アプリケーションは Delphi (アンマネージド) と C# (マネージド) で書かれており、マネージド vclを使用して相互運用を行っています。

この問題を再現するための例をほとんど挙げることができないので、この質問に答えることは不可能かもしれないことを認識していますが、デバッグ API についてより深い洞察を持っている人が正しい方向へのヒントを与えてくれたり、絞り込むのを手伝ってくれたりすることができれば、とてもありがたいです。

4

2 に答える 2

1

楽しみのために、Visual Studio のホスティング プロセスを無効にしてみてください。Visual Studio でプロジェクトを右クリックし、[デバッグ] タブに移動して、[Visual Studio ホース プロセスを有効にする] チェック ボックスをオフにします。

32 ビット アプリを実行している 64 ビット システムのマネージド/アンマネージド ランドで、奇妙なことがいくつか見られました。

于 2011-05-31T04:28:05.353 に答える
1

経験に基づく追加情報: MDAレジストリ キーではなく、COMPLUS_MDA環境変数(後で VS2010 を再起動することを忘れないでください) を使用することが重要です。MSDN の記事http://msdn.microsoft.com/en-us/library/d21c150dで説明されているように、レジストリ キーを設定してみました (その後、コンピューターを再起動します) 。うまくいきませんでした。

于 2012-07-02T11:22:25.103 に答える