ランタイムライブラリ
エラーの種類と取得方法
ランタイムライブラリを使用中、不正アクセス、ハングアップ、音声の異常、動作不良等の問題が発生した場合は、まずはランタイムライブラリで何らかのエラーが発生していないかを確認してください。
ランタイムライブラリでのエラーは、大きく分けて以下の2つがあります。
- 致命的なエラー(起きてはいけないエラー)
- 起こり得るエラー(正常な運用方法でも起こり得るエラー)
「致命的なエラー」は、エラーコールバック関数を登録することで検知することができます。
「起こり得るエラー」は、各種ハンドルのステータスをチェックすることで検知することができます。
エラー検知方法の詳細については、
エラーハンドリングについて や
エラーコールバック を参照してください。
なお、デバッグ版ライブラリ(ライブラリファイル名の最後に「D」が付きます)では、リリース版ライブラリよりもエラーチェックが強化されています。 もしリリース版ライブラリでエラーが発生していない場合は、デバッグ版ライブラリに切り替えて確認してください。
致命的なエラー(エラーコールバック)発生時の対処
致命的なエラーによりエラーコールバックが発生している場合、エラーコールバックの発生タイミングと、エラーコールバックに渡ってくるエラーメッセージの内容を確認してください。
- デバッガー経由でプログラムをデバッグ実行している場合
- 登録したエラーコールバック関数にブレークポイントを設定するのが簡単です。
- ブレークポイントは設定できないが、ログ出力ができる場合
- エラーコールバックに渡ってきたエラーメッセージをログ出力します。
- エラーが発生するタイミング前後でログ出力し、発生タイミングを絞り込みます。
- 実機上でのROM実行等、ログ出力もできない場合
- エラーコールバックに渡ってきたエラーメッセージを画面に表示します。
- エラーコールバック発生回数も表示しておくとなお良いです。
エラーメッセージを取得できたら、エラーメッセージの内容に従って、エラーが発生した近辺でのAPIの使い方に間違いがないかどうかを確認してください。
よくあるエラーメッセージを以下に示します。
- "EXXXXXXXX:Invalid parameter."
- "EXXXXXXXX:Failed to allocate memory."
- メモリが確保できないか、渡したワーク領域が不足しています。
- "EXXXXXXXX:Thread-unsafe function has been executed in parallel."
- スレッドセーフでない関数が複数のスレッドから呼び出されています。
- "EXXXXXXXX:Function not implemented."
ランタイムライブラリの定期処理や、内部モジュールからエラーコールバックが発生する場合もあります。
エラーメッセージの意味がわからない、または対処方法がわからない場合、エラーコールバックの発生タイミングとエラーメッセージを添えて、弊社テクニカルサポートまでお知らせください。
問い合わせ方法については、 usr_support_site_contents_inqform を参照してください。
起こり得るエラー(ステータスがエラー状態)
各種ハンドルのステータスがエラー状態になった場合、APIリファレンスの各種ハンドルの説明や、GetStatus関数の説明を参照してください。
ファイルのリードエラーやディスク取り出しでエラー状態になった場合、プラットフォーム毎に固有の対応が必要な場合があります。プラットフォーム固有の追加情報も確認してください。
ランタイムライブラリのエラーが確認できないとき
問題の発生状況や発生頻度等を添えて、弊社テクニカルサポートまでお知らせください。
問い合わせ方法については、 usr_support_site_contents_inqform を参照してください。
この際、以下のような情報があると、問題の調査に役立ちます。
- 不正アクセス/ハングアップ発生時
- デバッガー情報
- 停止位置付近のディスアセンブリ
- レジスタ情報
- スレッド動作状況
- コアダンプ等、ダンプ情報
- 音声の異常
大きなファイルの送付の際には、弊社FTPサーバーをご利用ください。(FTPアカウントをお持ちでない場合はご連絡ください)
ツール
ツールでエラーが発生した場合、コンソールツールならコンソールに、GUIツールならログウィンドウまたはエラーダイアログにより、エラーメッセージが出力されます。 エラーメッセージが出力された場合、その内容に従って対応してください。
本マニュアルと同じフォルダーにエラーマニュアル(CRI_Error_Manual_xxx_j.chm)があります。
エラーの詳細な解説と対処法が記載されておりますので、こちらも併せてご参照ください。
エラーメッセージの意味がわからない、または対処方法がわからない場合、エラーが発生する状況とエラーメッセージを添えて、弊社テクニカルサポートまでお知らせください。
問い合わせ方法については、usr_support_site_contents_inqform を参照してください。