静的解析,構成管理,MISRA-C,コードレビュー,バグトラッキング,リバースエンジニアリング
ソフトウエア開発支援ツール
  SOFTWARE SOLUTIONS
 ソフトウェア開発における品質の向上、および生産性の向上を目指して、最適な開発支援ツールを提供します。
ソフトウエア開発支援ツール > 製品紹介 > 静的解析ツール QAC++ > 技術情報 > よくある質問 (FAQ) > 警告メッセージに関するFAQ
警告メッセージに関するFAQ
質問1. どの警告メッセージから使い始めるのがよいのでしょうか? QAC6.2J以上/QAC++2.1J以上 戻る
回答1. QA C/QA C++には、それぞれVersion 7.0J/Version 2.3.1Jから critical.p_s と いう名称のメッセージ・パーソナリティ(メッセージ・フィルタ)が付属する ようになっています。
このメッセージ・パーソナリティを使用すると、QA C/QA C++の開発元が選定 した重要な警告メッセージのみが結果に現れるようになりますので、まずは こちらでONになっている警告メッセージをご利用になることをお勧めします。

なお、保守ユーザ様向け情報 のページでは、QA C Version 7.0J/QA C++ Version 2.3.1J付属の critical.p_s を QA C Version 6.2J/QA C++ Version 2.1J向けにした critical.p_s を公開しています。 過去バージョンからの移行がお済みでない場合は、移行準備の一環として これらのメッセージ・パーソナリティをご利用ください。

また、同ページには警告メッセージをお選びいただくための参考資料も 公開しています。是非そちらもご参照ください。

質問2. 警告メッセージのレベルは何を意味しているのでしょうか? QA C6.2J以上/QA C++全般 戻る
回答2. QA C/QA C++の各警告メッセージを最も粗く分類したものが、レベルになります。
QA C/QA C++には欠番も含めて 0番 から 9番 までの10種類のレベルが定義 されています。 レベルにはそれぞれ名前が付いていますが、QA C/QA C++の結果にはレベル の番号だけが記録されるようになっています。

レベルの番号に特に意味はありません。例えば、レベルの番号が大きいほど 重要な警告メッセージが分類されているというわけではありません。
ただし、0番 には他の警告メッセージを補足する警告メッセージ、9番 には解析エラー に関する警告メッセージが分類されます。このため、通常は 0番 と 9番 に属する 警告メッセージをすべてONにしてQA C/QA C++を使用することになります。

QA Cでは、同一の警告メッセージを2つのレベルに登録することができます。 この場合、[最も高い警告レベルを表示]オプション(-stオプション)を 使用することで、低いレベルと高いレベルのどちらを採用するのかを 決めることができます。

質問3. 警告メッセージに警告箇所の情報を含めることはできますか? QA C6.2J以上/QA C++全般 戻る
回答3. 警告メッセージには次の情報を含めることができます。
  1. 警告箇所を含むファイルの名称
  2. 警告箇所の行番号(ファイル内の縦位置)
  3. 警告箇所の桁番号(ファイル内の横位置)
  4. 警告メッセージが属するレベル
  5. 警告メッセージの番号
  6. 警告メッセージの本文
  7. 警告メッセージの補足文
上記のうち、1 ~ 3が警告箇所の情報になります。
QA C Version 6.2J/QA C++ Version 1.5Jより前の QA C/QA C++では、標準状態で警告箇所の情報が 警告メッセージに含まれるようになっています。
QA C Version 6.2J/QA C++ Version 1.5J以降の QA C/QA C++では、警告メッセージに含めたい 情報を上記の中から自由に選択できるようになり ました。標準状態では警告箇所の情報が警告 メッセージに含まれないので、メッセージ・フォーマット を適宜調整してご利用ください。
お使いのエディタがタグジャンプ機能をもって いる場合、メッセージ・フォーマットを調整する ことで、QA C/QA C++の結果から問題の発生箇所 に即座にジャンプできるようになり、利便性が 向上します。

なお、メッセージ・フォーマットの設定方法は次の通りです。
(専用の構文については、ユーザーズガイドをご参照ください)

GUIから設定する場合:
  [メッセージ・パーソナリティ][表示] タブの
  [メッセージフォーマット] に専用の構文を用いた値を記述します。

設定ファイルを直接編集する場合:
  -format オプション に専用の構文を用いた値を記述します。

質問4. 9番のレベルに属する警告メッセージを非表示にすることができません。なぜでしょうか? QA C6.2J以上/QA C++全般 戻る
回答4. QA C/QA C++の9番のレベルには、解析エラーに関する警告メッセージが 分類されています。
これらの警告メッセージが表示されなかったとすると、解析が正常 に終了していないという事実に気づくことなく、QA C/QA C++の結果を レビューしてしまう可能性があります。
レビュー時間が空費されるだけでなく、間違ったレビュー結果を 導き出してしまう可能性があるため、9番のレベルに属する警告 メッセージは非表示にすることができなくなっています。

質問5. QA Cの一部のメッセージの先頭に付与されている記号([U]や[C])は何を意味しているのでしょうか? 戻る
回答5. QA Cの一部のメッセージの先頭に付与されている記号は、QA Cの次のグループ の略称を示しています。

記号グループ(英名)グループ(和名)
[U]ISO Explicit Undefined behavior
Undefined behavior identified by CMA
明記された未定義の動作
CMA 未定義
[S]Syntax errorシンタックスエラー
[C]Constraint error標準制約違反
[E]Language Extension言語拡張
[I]ISO Implementation Defined behavior処理系定義
[u]ISO Implicit Undefined behavior明記されていない未定義の動作
[L]ISO Limits最小限界値を超過

これらのグループは、ISO C言語規格の未規定の動作、未定義の動作、処理系定義の 動作、翻訳限界、文法違反、言語拡張に関わるメッセージになるため、 他のメッセージと区別するために記号が付与されています。
質問6. 注釈付きソースを表示すると、レベル99の'Unknown error'が表示されるのはなぜですか? 戻る
回答6. errファイルに生成されたメッセージ番号がメッセージ・ファイル(qac.msgなど)に存在しない場合に、この状況が発生します。MISRAモジュール、またはユーザ・メッセージ・ファイルを使用するその他の2次解析を使用している場合、メッセージ・パーソナリティが正しく設定されており、ユーザ・メッセージ・ファイルへのパスが正しいことを確認してください。
2次解析の設定に関して詳しくは、ユーザ・ガイドを参照してください。
製品をコマンドライン上で実行する場合は、ビューア、errdspなどの第一パラメータに正しくQACまたはQACPPを指定するようにしてください。