• ベストアンサー

フォートランのエラーについて(forrtl)

こんにちは. Fortranのプログラムなのですが,Visial Fortranを使いましてビルドをしまして,実行したところ,計算の途中で,以下の表示がでました. forttl:severe(157) Program Exception-access violation 「何だろう?」と思いましてネットで検索をかけてみたら,以下のエラー一覧にぶち当たりました. http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/em/em01_04.htm 「参照権限を持っていない仮想アドレスに書き込み,読み込みを行おうとした」との記述がありますが,「仮想アドレス」とはいったいどのようなものなのかよくわかりません.Fortranの入門書を紐解いてみたのですが,実際の文法のみで,アドレスについて知ることはできませんでした. お教えいただきたく,よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.3

こんにちは。  >オプションを設定して再コンパイルというのは,どうすればよいのでしょうか.また,それをすると何が明らかになるのでしょうか.  実際のコンパイラ製品の使い方に関しては、付属するマニュアルやヘルプを参照するのが一番良いと思います。  もし、手元に無いのであれば、下記のサイトを参照してみてください。   http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/cvf_toc.htm   この、「4.1 コンパイラ・オプション」に意味が載っています。これは、お手持ちの製品のメーカーやバージョンと合致するとは限りませんので、確認してから利用してください。   「/check:bounds」は実行時に配列の添え字が宣言の範囲を超えたらエラーを出すようにするようです。   「/warn:argument_checking」関数やサブルーチンの呼び出し側と呼び出される側の引数の不一致を警告するようにするものです。 では。

asa_hikawa
質問者

お礼

ありがとうございました. このエラーが,境界外の配列要素を参照したことによるものであることがわかりました.早速,修正していきたいと思います. それでは,失礼いたします.

その他の回答 (2)

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  検索されたエラー一覧の説明にある、「問題が領域外のメモリー参照かアドレスとして取り扱われるデータが引き起こす引数の不一致かを確認するために,/check:bounds と /warn:argument_checking オプションを設定して,再コンパイルしてください。」というのは、やってみましたか。  多くの場合、サブルーチンやファンクションの引数の整合が、呼び出し元と先で取れていない場合だと思います。 では。

asa_hikawa
質問者

補足

ありがとうございます. すみません. 「/check:bounds と /warn:argument_checking オプションを設定して,再コンパイルしてください。」というのがよくわかりませんでした. オプションを設定して再コンパイルというのは,どうすればよいのでしょうか.また,それをすると何が明らかになるのでしょうか. よろしくお願いいたします.

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

プログラムにバグがあります。 Visual Fortranがどのような拡張機能を持っているか知らないので、どう言ったバグかはわかりませんが。 ありがちなのは、配列の添え字オーバーとかでしょうか。 デバッグオプションを付けてコンパイルできればもうすこしわかりやすいエラーメッセージが出ると思います、

asa_hikawa
質問者

お礼

参考になるヒントをいただきまして,ありがとうございました. デバッグオプションなどは,当然なことですが,プログラミングの授業などで習うことではないので,頭の中にはありませんでした. 今後は,コンパイラの各種機能も,しっかりと把握していきたいと思います.

関連するQ&A

  • フォートランプログラムのエラーについて

    自作のフォートランのプログラムをvisual fortranでコンパイル後,走らせたところ,以下のようなエラーがでました. forrtl: severe(161): Program Exception-array bounds exceeded Image   PC     Routine  Line   Source hoge.exe  ********  Unknown  Unknown Unknown 注)********:アルファベット交じりの数字.たぶん,16進数. LineやSourceなどは,Unknownと書いてありますので,トラブル解決のカギは,PCのところに表示されている,数字だと思われます.しかし,その数字が何の手がかりなのかがよくわかりません. どなたかご教示いただけませんでしょうか? よろしくお願いいたします.

  • Fortranのサブルーチン引数について

    他人が作ったFortran(恐らくFortran77)のプログラムで計算をしようとしています。 コンパイルはできるのですが,実行するとエラーが出てしまい困っています。 エラーメッセージは 「forrtl:severe(157):Program Exception - access violation」 となっていて,実行時エラー番号で調べると 「プログラムが適切な参照権を持っていない仮想アドレスに書き込み,または読み取り を行おうとした」と出ていました。 Fortran初心者の自分にはイマイチ意味が判らないのですが,エラーが出た後に サブルーチンのある決まった場所に黄色い矢印が示されます。 そこで今,その部分のサブルーチンを確認しているところです。 前置きが長くなってしまいましたが サブルーチンの中を確認している途中で疑問に思った所が一つあります。 問題のサブルーチンは --------------------------------------- call dbesl(EN,0,BX0,BY0,BI0,BK0)     subroutine dbesl(X,NOR,BX,BY,BI,BK) FN = NOR  ・  ・  ・ 11 NOR = FN               <---この行に黄色い矢印が出る return end --------------------------------------- となっているのですが,サブルーチンを呼び出すcall文の所で 2つ目の引数が『0』となっているのは正しい使い方なのでしょうか? どうもサブルーチン内の計算をしてメインプログラムに引数を返す所が おかしいような気がしています。 因みにメインプログラムに戻る際の"FN"の値は『0』となっていました。 コンパイラはCompaq Visual Fortranを使用しています。 足りない情報は出来るだけ追記していきますので,ご教示宜しくお願いします。

  • PCが勝手にシャットダウン

    サーバー:Windows2000Server、SQL2000(SP3a) クライアント:Windows2000、VB6.0(SP5)、ADO2.6 の環境でデータベースを使用しています。 クライアントからSQLServerのデータの読み書きをADOで行っているのですが、サーバーPCが勝手にシャットダウンしてしまい困っています。 クライアントPCとサーバーPCを両方再起動すると、またしばらくは正常に使用できます。(1週間くらい?) インターネットで調べてみたのですが、サービスパックをあてるくらいしか解決策がなく、困っています。 わかりにくい説明で申し訳ありませんが、何かヒントでも構いませんのでよろしくお願いします。 <SQLServerのエラーログ> 2005-02-04 09:07:44.07 spid53 Using 'dbghelp.dll' version '4.0.5' *Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL\log\SQLDump0001.txt 2005-02-04 09:07:44.10 spid53 エラー : 0、レベル : 19、状態 : 0 2005-02-04 09:07:44.10 spid53 SqlDumpExceptionHandler: プロセス 53 で重大な例外 c0000005 EXCEPTION_ACCESS_VIOLATION が発生しました。 * BEGIN STACK DUMP: * 02/04/05 09:07:44 spid 53 * * Exception Address = 0040AE00 (SDES::AcquireLatch + 0000006C Line 0+00000000) * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION * Access Violation occurred writing address 9D6930FC * Input Buffer 246 bytes - ・・・以下省略

  • foratran error -Can't open indirect file -

    計算のための2台目を購入しました。それにvisual studio,visual fortranをインストールして、1台目で作成したプログラムすべてを移し、2台目で走らそうとしたら・・ 以下のエラーがでます。 --------------------Configuration: loginova - Win32 Debug-------------------- Compiling Fortran... df: severe: Can't open indirect file C:\DOCUME~1\ Error executing df.exe. loginova.exe - 1 error(s), 0 warning(s) ネット調べても、同じ悩みを抱えている者は見つけられますが、有効的な解決法を見つけることができませんでした。 どなたかお願いします。 dfは、ユーザーズガイドに載っていましたが・・意味がわからず、役に立つのか立たないのかすらわかりません。

  • Ad-Aware2007ソフトのセーフモードエラー

    Ad-Aware2007をセーフモードで立ち上げると エラーになりますがどうすれば正常に出来ますか? 何度となくインストールのやり直しを しましたがセーフモードではエラーになります。 以下のようなメッセージが出ます英語の堪能な方お願いします。 Application Error Exception EAccess Violation in module Ad-Aware2007.exe at 001DD084.Access Violation at address 005DD084 in module Ad-Aware2007.exe. Readof addrss 00000414 検索もしましたが該当する項目はありませんでした、 皆様の回答をよろしくお願い致します。

  • DivxToDVDのエラー

    DivxToDVD(日本語版)を使って wmv 形式の動画を変換したんですが、ゲージが満タン…つまり100%になった後、 『変換時に例外が発生しました。出力結果が有効でない可能性があります。』と、いうエラーが出て変換に失敗します。。。 どうしてでしょうか?ファイル1つずつ変換してるんですが途中からこんなエラーが出て変換できません;; 容量と再生時間はあまり関係ないですよね? ちなみに ●保存先はデスクトップです。。 ●(C:)ドライブはまだまだ10GB以上も残りがあります… ●『変換時に例外が~』っていうのはたまになるエラーで、ほとんどはゲージが満タンになる前にDescription のところに下記のエラーメッセージが連続して表示されます。 Frame #5808: decoder exception [Access violation at address 10003ED4 in module 'avcodec.~ (この先は見れなかったのでわかりませんでした) ★その後、 out of system res alrces(だったかな?)まぁこんな感じのエラーが出ました…。OKを押してもまた出てきます。何回かOKを押していくと時々 Access violation at address 0042BA86 in module 'DivxToDVD.exe' Read of address 7263209A  と言うエラーが出ます。OKを押すとまた「out of~」ってエラーが出るんです。 (こんなのが出るんで他の操作ができずソフトを終了させるのに時間が掛かります^^;)

  • エラー0xc0000005について

    あるサイトをダウンロードしようとしましたが0xc0000005というエラーが出てIE6が強制的に終了してしまいます。インターネットオプションのセキュリティの項目をいろいろ変えてみたのですがそれでも駄目でした。これはどうすればいいのでしょうか? 以下にエラーメッセージの詳細の一部を添付します(長いので最初の部分だけですがこれで分かりますでしょうか); An unexpected error has been detected by HotSpot Virtual Machine: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d6c2e94, pid=2264, tid=2420 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode, sharing) # Problematic frame: # V [jvm.dll+0x82e94] # --------------- T H R E A D --------------- Current thread (0x0003daf8): JavaThread "main" [_thread_in_vm, id=2420] siginfo: ExceptionCode=0xc0000005, reading address 0x00000008

  • Win7からWin10にÜPしたらエラーメッセージ

    最近DELLののノートパソコン(Win7)からWin10にUGしたところ、3個のエラーメッセージが発生、解決方法を教えて下さい。 エラーメッセージ一覧 (1)パソコン点検サポト-ツール ×【エラーコード:R-01-001】このOSではプログラムを実行することができません。 (2)Application Error × Exception ECovertError in module ISHelper.exe at 0000D4C2.''''is not a valid intereger value. (3)Application Error × Exception EAcceceVidation in module ISHekper.exe at 000CB6AE Access violation at ataddress 004CB6AF in module 'ISHelper.Read of address 000005c

  • saiがエラーで使えません

    ペイントツールのsai(有料版)を使って絵を書いているのですが、ここ暫く作業をしているといきなりエラー報告の小ウィンドウが現れ、「保護されていないエラーが発生したのでsaiを終了します。」というウィンドウが出てsaiが強制終了されてしまいます。 特にこの動作をするとエラーが発生する、ということはなく、ほんとうにいきなりエラーが出て強制終了、という感じです。 色々と調べてみたのですが、原因がわかりません。saiに問題があるのかと思い、再インストールをしたり、ペンタブ(BambooのBAMBOO PEN CTL-470)関係のソフトを再インストールしたりしましたが、改善しません。 同時進行で実行しているプログラムはGoogle Chromeくらいです。 参考までにsaiのフォルダ内にあるerrlogのログを貼り付けておきます。 -- 2014-03-05 14:04:07 --------------------------------------- ThreadID = 000023C4 OperationCategory = 80000000 OperationType = 00000000 OperationState = 00000000 ExceptionCode = C0000005 (EXCEPTION_ACCESS_VIOLATION) ExceptionAddress = 80000000 ExceptionFlags = 00000000 NumberParameters = 00000002 ExceptionInformation: 00000000 80000000 EAX = 0018EF40 EBX = 00000000 ECX = 00000000 EDX = 00004003 ESI = 003A0870 EDI = 00000082 EBP = 0018D648 ESP = 0018D5B4 EIP = 80000000 よろしくお願いいたします。

  • SQLServer7.0 重大な例外「EXCEPTION_ACCESS_VIOLATION」について

    SQLServer7.0のストアドプロシージャにて、 あらかじめCSVからワークテーブルに格納されたデータを 取り込もうとしています。 1000件ほどのCSVなら難なく取り込めるのですが、 1300件に増やして取り込もうとすると 以下のようなエラーが出ます。 「SqlDumpExceptionHandler: プロセス9で重大な例外 c0000005 EXCEPTION_ACCESS_VIOLATION が発生しました。 SQL Server はこのプロセスを終了します。」 自分なりにネットで検索をかけて調べたところ、 SQLServer7.0のサービスパックで回避出来るとのことだったのですが、 既に今出ているサービスパック4までは当てています。 他になにか原因があるのでしょうか? もしご存知の方がいらっしゃれば助けてください!

専門家に質問してみよう