4

Visual C ++ 2010(Win32アプリケーション、非マネージコード)にプロジェクトがあり、非常に奇妙な動作が発生しています。ブレークポイントを設定しましたが、壊れません。

手がかり:

  • PDBファイルはexeファイルのパスに生成されます。

  • Debug / Modulesウィンドウに、「Binary was not buildedwithdebuginformation。」というメッセージが表示されます。

  • PDBファイルを手動でロードする(デバッグ/モジュール、実行可能モジュールを右クリック、シンボルのロード元/シンボルパスをダブルクリックしてからPDBファイルをダブルクリック)と、「このフォルダーに一致するシンボルファイルが見つかりませんでした。」と表示されます。

私の設定:

  • C ++ /一般/デ​​バッグ情報フォ​​ーマット:プログラムデータベース。
  • C ++ /最適化:無効。
  • C ++ /コード生成/ランタイムライブラリ:マルチスレッドデバッグ。
  • リンカ/デバッグ/デバッグ情報の生成:はい。
  • リンカ/デバッグ/プログラムデータベースの生成:$(TargetDir)$(TargetName).pdb。

コンパイラのコマンドライン:

/I"..\..\calibur64k\include" /I"C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include" /Zi /nologo /W3 /WX- /Od /Oy- /D "D3D_DEBUG_INFO" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"Debug\calibur_app.pch" /Fa"Debug\" /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /analyze- /Zl /errorReport:queue 

リンカーコマンドライン:

/OUT:"C:\Users\David\Desktop\calibur64k\vs2010\Debug\calibur_app.exe" /INCREMENTAL:NO /NOLOGO "kernel32.lib" "user32.lib" "d3dcompiler.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "C:\Users\David\Desktop\calibur64k\vs2010\Debug\calibur64k.lib" /MANIFEST /ManifestFile:"Debug\calibur_app.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\David\Desktop\calibur64k\vs2010\Debug\calibur_app.pdb" /ASSEMBLYDEBUG /SUBSYSTEM:WINDOWS /PGD:"C:\Users\David\Desktop\calibur64k\vs2010\Debug\calibur_app.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE

インターネットで見つけたものは何も役に立ちませんでした:(アイデアはありますか?ありがとう!

4

2 に答える 2

3

問題は試行錯誤によって解決されました:)

誰でも興味があるかもしれません:

リンカー/マニフェスト ファイル/マニフェストの生成: いいえに設定します。 リンカー/マニフェスト ファイル/分離の許可: いいえに設定します。 リンカー/埋め込み IDL/埋め込み IDL の無視: はいに設定します。

それでおしまい。生成された PDB ファイル マニフェストまたは実行可能マニフェストが C++ プロジェクト用に正しく設定されていない可能性がありますか?

回答ありがとうございます。

于 2012-07-07T13:04:00.040 に答える
3

Visual c++ 2010 の私の設定:

リンカー/マニフェスト ファイル/マニフェストの生成: はい。リンカー/マニフェスト ファイル/分離の許可: はい。リンカー/埋め込み IDL/埋め込み IDL を無視: いいえ。

すべてのプログラムでこれらの設定を使用しましたが、ブレーク ポイントは正常にヒットしました。

したがって、私の推測では、あなたが提案したことは正しい解決策ではない可能性があります。

于 2012-07-07T17:03:40.477 に答える