LabVIEW内部エラー(Failure in XXX.c / XXX.cpp at line YYY)



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
LabVIEWで、「Failure in XXX.c / XXX.cpp at line YYY」というメッセージが表示されました。
何が起こり、どのようにしたら直せるのでしょうか?

解決策:
LabVIEW内部エラーとは何か?

LabVIEW内部エラーとは、LabVIEWの実行を妨げる何かがあることを示しています。LabVIEWには、ある一定の条件が満たされているかを確認する内部コードが存在します。LabVIEWが正常に動作している時は、これらの条件は満たされ、また、これらに対処するようプログラムされています。もし、これらの条件が満たされてなければ、内部エラーが表示されます。LabVIEWは内部エラーを表示するとともに、終了します。これは、メモリ内のVIを壊してしまう危険性があるためです。内部エラーには様々な要因が存在します。これらの問題に対応できるようLabVIEWを今後のリリースで改善していくので、内部エラーの起こった手順をお知らせください。


一般的なLabVIEW内部エラーのトラブルシューティング方法
  1. KnowledgeBase、もしくは、Developer Exchange discussion forumsで、表示されているエラーメッセージをお探しください。(下記のリンクを参照してください)
  2. LabVIEW用の最新のアップデートをインストールしてください。(下記のリンクを参照してください)
  3. ビデオハードウェア、もしくは、プリンタの製造業者に取り合わせ、最新のドライバをインストールしてください。たとえ他のアプリケーションが正常に動作していたとしても、LabVIEWは画像処理能力に大きく依存するため、他のプログラムでは直面しなかった問題に遭遇する可能性があります。
  4. 一時ディレクトリ内にあるすべてのファイルを削除してください。一時ディレクトリは、Windows 95/98/XPでは、C:\Windows\Temp; Windows NT/2000では、C:\WINNT\Tempです。
  5. VIを「一括コンパイル」してください(LabVIEWのバージョンにより、ファイル>一括コンパイル、もしくは、ツール>上級>一括コンパイル)。もし、LabVIEWをアップデートされた場合、アップデートされなかった古いバージョンのVIが残っているかもしれません。「一括コンパイル」は、古いVIを現在のLabVIEW用にアップデートします。
  6. アプリケーションを他のオペレーティングシステムで動くか試してください。トラブルシューティングにおいて、問題がプラットホーム固有の問題なのかを知ることは重要なことです。すなわち、問題は、Windows 95、98、 NT、2000、他のみで起こるものかもしれません。




LabVIEW内部エラーの特殊なトラブルシューティング方法

  1. image.cpp、 image.c、 window.cpp、 drawmgr.c、 color.c、 panel.c、 panelsup.c、 textmgr.c、もしくは、fontmgr.cを含むエラーは、一般に、編集中に起こりますが、印刷中に起こる可能性もあります。
  2. memory.cpp, allocate.cppを含むエラーは、外部のコードモジュールを不正確に呼び出したことに起因する可能性があります。(例えば、不正確にメモリを割り当てるDLLやCINを呼び出すなど)
  3. thread.cppを含むエラーは、マルチスレッドの状況下でDLL(Dynamic Link Library)を呼び出した際に最も起こりやすくなっています。
    解決法
    1. マルチスレッド機能を無効にしてください。編集>Preferences>パフォーマンス&ディスク、もしくは、ツール>オプション>パフォーマンス&ディスクの中にある「マルチスレッド実行」からチェックボックスをはずしてください。
    2. DLLが「再入可能」であるように設定してください。ライブラリ関数呼び出しノード上で右クリックし、構成を選んでください。「UIスレッドの実行」と「再入可能」の二つからなるプルダウンメニューから「再入可能」を選んでください。

  4. 解決策




これらの解決策を実行してもなおLabVIEW内部エラーに直面する場合は、National Instruments Technical Supportまでご連絡ください。その際、アプリケーションエンジニアがより早く問題を解決できるよう、問題のVIを添付してください。

  1. これらのLabVIEW内部エラーは、最新のドライバで解決することがあります。ハードウェアの製造業者に取り合わせ、最新のドライバをインストールしてください。LabVIEW内部エラーが、ハードウェア関連の問題かどうかを判断するには、コードを他のコンピュータ(できれば、違うドライバの組み合わせ)で試し、エラーがまだ存在するか見てください。もし、問題がプリンタ関連の問題でしたら、違うプリンタでお試しください。
  2. 一部のビデオドライバは、アクセラレータモードに対応しています。アクセラレータモードを無効にすることによってエラーが無くなることもあります。Windows 95/98/MEでは、マイコンピュータアイコン上で右クリックし、ポップアップメニューからプロパティを選んでください。パフォーマンスタブを選び、グラフィックスのボタンをクリックしてください。ハードウェアアクセラレータを変更してください。最大に設定してある場合、一、二段階下げてみてください。Windows 2000/NT/XPでは、デスクトップ上で右クリックし、プロパティをポップアップメニューから選んでください。設定タブをクリックして、詳細設定ボタンをクリックしてください。トラブルシューティングタブをクリックし、ハードウェアアクセラレータを変更してください。
  3. Windowsで、オペレーティングシステムに標準掲載されているVGAドライバは大変安定しています。特定のハードウェア用に作られたドライバの変わりにこのオペレーティングシステムに掲載されているドライバを使ってみてください。この操作によってエラーが無くなったのであれば、製造供給元からのビデオドライバに問題があった可能性があります。
  4. ドライバが使用するカラーパレット(256色、high color、true color等)を調整してみてください。エラーは、これらのひとつのモードでのみ起こる場合があります。また、画面の解像度を変更してみてください。例えば、1024×768から800×600に変えてみてください。
  5. エラーが、印刷中に起こった場合、LabVIEW Edit > Preferences > Printingメニューの印刷オプションを調節してみてください。



解決策
  1. Using External Code in LabVIEW Manual(下記のリンクを参照してください)の第4章で、Memory Manager(外部のコードモジュールからメモリを割り当て、取り消し、操作するプラットホームとは無関係のルーチン)の説明と正しい使用方法を確認してください。
  2. 下記の情報を参照してください
    1. Developer Zone Tutorial: Step-by-Step Interface Interface Node (CIN)
    2. Developer Zone Tutorial: An Overview of Accessing DLLs or Shared Libraries from LabVIEW



関連リンク:
LabVIEW Support: Internal Error Support Page(英語)
Search the KnowledgeBase(日本語)
Search the Developer Exchange Discussion Forums(英語)
Drivers and Updates: Download the Latest LabVIEW Update(日本語)
Product Manuals: Using External Code in LabVIEW(英語)
Developer Zone Tutorial: Step-by-Step Interface Interface Node (CIN)(英語)
Developer Zone Tutorial: An Overview of Accessing DLLs or Shared Libraries from LabVIEW(英語)
サポートリクエスト(日本語)

添付:





報告日時: 01/16/2004
最終更新日: 03/04/2011
ドキュメントID: 35FGL9OM