現在、[DLLImport]を使用して多数の配列をFortranサブルーチンに渡しています。私が次のプロセスを実行するたびに、次のような例外が出ることを除いて、すべて外向きに正しいように見えます。C#でアドレスを持つ変数を追跡する方法
これは、私が管理されていないコードのどこかでメモリを壊してしまったということです。
どのような変数がC#でエラーメッセージのアドレスにあるのかわかりますので、メモリを破壊する場所を絞り込むことができますか?つまり、どのC#オブジェクトが@ 0x739c1263にありますか?
0x739c1263にはC#オブジェクトがありません。そのメッセージは、FortranオブジェクトにFortranコードにエラーがあったことを意味します。 –
Fortranコードは完了まで実行され、ほとんどのオブジェクトはc#でインスタンス化され、fortranに渡されます。 – PlTaylor
P/Invoke宣言が正しくない可能性があり、値がFortranライブラリとの間でマーシャリングされたときにスタック上に壊れている可能性があります。 –