診断
ここでは、診断メッセージのフォーマットと診断メッセージの重要度について説明します。
コンパイラのメッセージフォーマット
診断メッセージはすべて、説明を要しない完結型のメッセージとして出力されます。コンパイラの診断メッセージは、次のフォーマットで生成されます。
filename, linenumberlevel[tag]:message
各要素の意味は以下のとおりです。
| 問題が発生したソースファイルの名前 |
| コンパイラが問題を検出した行の番号 |
| 問題の重要度のレベル |
| 診断メッセージを示す固有のタグ |
| 説明(場合によっては複数行) |
診断メッセージは、オプションのリストファイルに出力されるとともに、画面に表示されます。
オプション--diagnostics_tablesを使用すると、すべてのコンパイラ診断メッセージが一覧表示されます。
リンカのメッセージフォーマット
診断メッセージはすべて、説明を要しない完結型のメッセージとして出力されます。ILINKからの通常の診断メッセージは、次のような形式です。
level[tag]:message
各要素の意味は以下のとおりです。
| 問題の重要度のレベル |
| 診断メッセージを示す固有のタグ |
| 説明(場合によっては複数行) |
診断メッセージは、オプションのmapファイルに出力されるとともに画面に表示されます。
オプション--diagnostics_tablesを使用すると、すべてのリンカ診断メッセージが一覧表示されます。
重要度
リマーク
コンパイラまたはリンカが、生成したコードで誤った動作を引き起こす可能性がある構造を検出した場合に生成される診断メッセージ。リマークはデフォルトでは出力されません。リマークはデフォルトでは出力されません。有効にする方法については、‑‑remarksを参照してください。
ワーニング
コンパイラまたはリンカによるコードの生成に支障のあるような潜在的な問題はあるが、コンパイルやリンクの途中終了の原因にはならないものを示します。警告は、--no_warningsコマンドラインオプションを使用して無効にできます。
エラー
コンパイラまたはリンカで重大なエラーが見つかったときに生成される診断メッセージ。エラーが発生した場合は、ゼロ以外の終了コードが生成されます。
致命的なエラー
コードが生成できなくなるだけでなく、それ以降の処理が無意味となるような状態をコンパイラまたはリンカが検出した場合に生成される診断メッセージ。このメッセージが出力された後、コンパイルまたはリンク処理が終了します。致命的なエラーが発生した場合は、ゼロ以外の終了コードが生成されます。
重要度の設定
致命的なエラーや一部の通常エラーを除くすべての診断メッセージに対し、診断メッセージの出力抑制や重要度の変更ができます。
重要度レベルの設定に使用可能なコンパイラオプションについては、コンパイラオプションのを参照してください。
コンパイラの重要度レベルの設定に使用可能なプラグマディレクティブについては、プラグマディレクティブのを参照してください。
内部エラー
内部エラーは、コンパイラまたはリンカでの問題が原因で、重大かつ予期しない障害が発生したことを示す診断メッセージです。このメッセージは、以下の形式で生成されます。
Internal error: messageここで、messageはエラーの説明を示します。内部エラーが発生した場合は、ソフトウェアの配布元かIAR技術サポートまでご報告ください。 その際、問題を再現できるように、以下の情報をお知らせください。
製品名
コンパイラまたはリンカのバージョン番号(コンパイラまたはリンカが生成するリストまたはマップファイルのヘッダ部分にあります)
ライセンス番号
内部エラーメッセージ本文
インターナルエラーの原因となったアプリケーションの関連ファイル
内部エラー発生時に指定していたオプションの一覧
エラーリターンコード
コンパイラおよびリンカは、バッチファイル内で評価可能なステータス情報をオペレーティングシステムに返します。
コード | 説明 |
|---|---|
0 | コンパイルまたはlリンク処理は成功していますが、ワーニングが発生した可能性があります。 |
1 | |
2 | エラーが発生しました。 |
3 | 致命的なエラーが発生したためツールが停止しました。 |
4 | 内部エラーが発生したためツールが停止しました。 |