2009-07-27 10 views
0

私は、Win32およびx64バージョン(Windows XP x64を使用)で動作する大規模なC++アプリケーションを持っています。 0xc0000005で:アクセス違反の書き込み場所0x0000000000030c90のx64バージョンをデバッグする場合、最初のデバッグセッション、各コードを変更した後、私はのmyapp.exeで0x77ee5f3cでVC 2005 x64デバッグセッションが最初の試行で失敗するのはなぜですか(ただし、2回目の試行では失敗します)。

未処理の例外を除いて停止を開始します。

コールスタックは、NTDLLで無限の再帰呼び出しを示しています

ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed()  
ntdll.dll!0000000077efbc0b()  
ntdll.dll!0000000077f2539e()  
ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed() 
etc. 

この後、私は通常、すべてがうまくていると私はコンパイルするまで、問題が再び発生しない「デバッグの停止」とし、「デバッグ開始」を選択し

いくつかのコードとリンクまたは私はVisual Studioを再起動します。

答えて

1

あなたがリストしたアドレスは32ビットアドレスです。これは、VSが32ビットプロセスで64ビットデバッガを使用しようとしていることを示しています。

「Win32」、「x64」、および「Any CPU」ビルドプラットフォームが混在している可能性があります。あなたの「アクティブビルドプラットフォーム」が一貫して定義されていることを確認してください。 .netのものは、表面上の「任意のCPU」と主張しています。その下には、32ビット操作のためのいくつかの親和性があります。

「編集して続行」のデバッグをオフにすると、このようなことが助長されるようです。

+0

「編集して続行」をオフにすると、問題の頻度が減るようですが、.NETは使用しませんが、プレーンなWin32です。選択したターゲットマシンは/ MACHINE:X64です。 –

関連する問題