-1

私は最近、Windows XP と Visual Studio 2005 から Windows 7 と Visual Studio 2012 に更新し、大量の Fortran コードを持ってきました (Intel コンパイラで VS に組み込まれています)。関連する場合と関連しない場合があるいくつかのエラーが発生しています。

  1. foo(char1,real1,real2) 形式のサブルーチンが呼び出され、char1 が呼び出し側サブルーチンと foo の両方で長さ 200 の場合、「forrtl: 深刻な (408): fort: (18): Dummy character variable 'char1 ' has length 200 で、実際の変数の長さよりも大きい -858993460 Image PC Routine Line Source libifcoremdd.dll 02AED3FE Unknown Unknown Unknown スタック トレースが異常終了 しました" 長さの代わりに無意味なアドレスを渡すのはなぜですか?

  2. 問題をデバッグしようとすると、サブルーチン呼び出しにブレークポイントを設定してステップインしようとすると、「No Source Available No Symbol are loaded for any call stack frame. The source code cannot be displayed.」というエラーが表示されます。

  3. また、「PDB ファイルが見つからないか、開けません」というメッセージが数十件表示されることにも気付きました。ソース コードに直接関係していないように見えるエラー。

残念ながら、エラーは何千行もの独自のコードに埋め込まれているため、すべてを投稿することはできず、簡単な例でエラーを再現することもできません.

試してみるべきことの提案はありますか?ありがとう!

4

1 に答える 1

0

シンボルなし...ソース コードはすべて .pdb ファイルに関連しています。コードをビルドすると、pdb ファイルが生成されます。これは、誰がどこに住んでいて、コードのすべての行がどこにあるかを示す地図のようなものです。ブレークポイントを設定しようとして、塗りつぶされた赤い円が表示された場合、pdb を見つけることができます。空の灰色の円だけが表示される場合は、pdb ファイルが見つかりません。コードをビルドした場所から実行可能ファイルがある場所に pdb ファイルをコピーすると、問題が解決するはずです。残念ながら、ファイルをコピーした後、Visual Studio から出て戻る必要があります。そこに置いた直後に pdb を読み取るわけではありません。

初期化されていない変数エラー (すべてが c で埋められる) については、クリーン ビルドを行いましたか? XP から W7 に移行した場合、XP32 から W764 ですか? ソースまたはオブジェクトも移動しましたか。もしそうなら、実行可能ファイルは x86/win32 か x64 か、それとも両方ですか? 最初にすべてを x86/win32 としてビルドしてみてください。それが機能しないかどうかを確認してから、コード生成オプションを見てください。それらはすべて MT、MTD、MD、または MDD ですか? それらはすべて同じでなければなりません。それらを混合することは、起こるのを待っている災害です(通常、高位の将校にデモを行っているとき).

于 2013-04-13T20:59:30.570 に答える