よくある質問
ご質問があり、ここに見つからない場合は、電子メールをお送りください。
"src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\Project.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS" というエラーが出続けます。
これは、コンパイラが生成した .PDB ファイル(C/C++ -> Output Files -> Program Database File Name) とリンカが生成した .PDB ファイル(Linker -> Debugging -> Generate Program Database File) の両方が同じ出力ファイルに設定されている場合に発生します。この場合、デバッガはデバッグ中に.PDBファイルをロックし、コンパイラはコンパイル時に同じファイルに書き込もうとします。
コンパイラーが生成する.PDBファイルは中間ファイルであり、ビルドの成果物ではないことに注意してください。そのため、対応するコンパイラー・オプションはそのままにしておくのが最善です。さらに、コンパイラとリンカーの両方が同じ .PDB ファイルに書き込んだ場合、大規模なプロジェクトのリンク時間が最大で 4 倍長くなったという報告があります(Live++ を使用しないインクリメンタルビルドとフルビルドの場合)。
コンパイラが"src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\vc141.idb'; if multiple CL.EXE write to the same .PDB file, please use /FS" を報告し続けます。
これは、ネイティブの Edit and Continue が有効で、'C/C++ -> General -> Debug Information Format -> Program Database for Edit and Continue (/ZI)' コンパイラー・オプションが使用されている場合に発生します。デバッグ情報形式を'C7 compatible (/Z7)' または 'Program Database (/Zi)' に設定する必要があることに注意してください。
cl : Command line warning D9007 : '/external:I' requires '/external:W'; option ignored
これを修正するにはどうすればよいですか?
Visual Studioのツールチェーンに問題がある可能性が高いです。
インクルード・パスを指定するためにINCLUDE環境変数を使用していますが、Live++によって無視されているようです。
どうなっていますか?
Visual Studioツールチェーンで問題が発生している可能性が高いです。
Live++ が"関数 'Bar' の 0xF00 の命令は短すぎるため、パッチを適用できません。この関数を変更しても、観察できません。" と報告します。
どうすればいいですか?
正しいコンパイラ設定でビルドされていない翻訳ユニットが原因である可能性が高いです。
Live++ が"ツールチェーン 'Foo' の vcvars*.bat 環境を決定できませんでした報告します。
どうすればいいですか?
Visual Studioのコンパイラまたはリンカを使用する場合、vcvars*.batファイルを呼び出して、後続のコンパイルのためのツールチェーン環境を設定する必要があります。Live++は、デフォルトのインストール・ディレクトリの相対パスが維持されている限り、Live++対応アプリケーションのビルドに使用されたツールチェーンを自動的に検出し、対応するvcvars*.batファイルを探します。
カスタム ツールチェーンまたはビルド システムを使用する場合、コンパイラ(cl.exe)とリンカ(link.exe)はデフォルト以外の相対パス構造に保持されることが多く、正しい vcvars*.bat ファイルを見つけるのが難しくなります。この場合、Live++は、呼び出されたコンパイラまたはリンカと同じディレクトリにある次のファイルのいずれかを期待します:
- vcvars64.bat
- vcvarsamd64_x86.bat
- vcvarsx86_amd64.bat
- vcvars32.bat
コンパイラー環境を設定するために独自のファイルを提供することができ、Visual Studioのファイルをコピーする必要はないことに注意してください。
ファイルを再コンパイルしようとすると、Live++はコンパイラを起動できません。
セットアップで分散/リモートビルドを使用していますか?そうであれば、必要な環境設定を確認してください。
どの設定を行う必要がありますか?
部分 PDB(/DEBUG:FASTLINK など)ではなく、完全 PDB(/DEBUG:FULL など)を生成してください。
Live++ はショートカットを押しても何もしません。
何が足りないのでしょうか?
まず、Live++エージェントが作成され、適切なAPI関数のいずれかを呼び出して、問題のモジュール(.EXEまたは.DLL)に対してLive++が有効になっていることを確認してください。
次に、ショートカットを押す前に、変更を保存することを忘れないでください。Live++がまだ何もしない場合、どの翻訳ユニットがモジュールに含まれているかを検出できません。この場合、コンパイラとリンカの設定が正しいかどうか確認してください。
第三に、Live++が動作するために必要なすべての.PDB、.OBJ、.CPP、.Hファイルを見つけられることを確認してください。
それでも問題が解決せず、Live++があなたのセットアップで動作しない理由がわからない場合は、お知らせください。
どのように報告すればいいですか?
Broker、Bridge、Agentのログを添付して、問題の詳細をご連絡ください。
Broker ログファイルは、Broker メインメニューのツール -> Broker ログファイルを表示...を選択すると表示されます。
BridgeとAgentのログファイルは、処理ビューのコンテキストメニューで選択したローカルプロセスのログファイルを表示を選択すると表示されます。