機械制御/振動騒音
IR情報 会社情報

ツール(操作)に関するFAQ

image_toyo_ss_img_qac_title_qac.gif.gif
ツール(操作)に関するFAQ  
image_toyo_ss_img_all_line_red.gif.gif
質問1. 「拡張クラスのC++(-ex C++)」オプションはどのようなことを行うためのオプションなのでしょうか? QAC全般 戻る
回答1. Cコンパイラの中には、C++言語の機能の1つである「参照演算子 &」の使用を許しているものがあります。お使いのCコンパイラが「参照演算子 &」の使用を許している場合は、-ex C++オプションを設定する必要があります。
ただし、「参照演算子 &」がその意味も含めて正式に解釈される ようになるわけではないので注意してください。
image_toyo_common_spacer.gif.gif
また、お使いのCコンパイラが、「//コメント」の使用を許している場合にも、-ex C++オプションを設定する必要があります。
こちらは、「//コメント」がその意味も含めて正式に解釈される ようになります。
image_toyo_common_spacer.gif.gif
なお、このオプションを使ったとしても、C++言語で記述されたコード が解析できるようになるわけではありません。QACでC++言語で記述されたコードを解析すると、C++言語のキーワードや文法(例えば class など)が記述されている箇所で文法エラーになります
QACとQAC++が対象とするコードについては、「CとC++のコードが混在している場合、QACとQAC++のどちらで解析すればよいのでしょうか?」をご参照ください。
image_toyo_common_spacer.gif.gif
質問2. QA Cは#machineという記述が認識できないようです。認識させる方法はありませんか? QAC全般
image_toyo_common_spacer.gif.gif

下記のコードで、#machineを使用している行に対して、メッセージ899やレベル9のエラ ーが出力されます。
また、#ifの結果が「偽」になっているようです。
#machineを認識させ、#ifの結果を「真」になるようにすることはできませんか?

#machine i386
image_toyo_common_spacer.gif.gif
#if #machine(i386)
  ・・・
#else
  ・・・
#endif

image_toyo_common_spacer.gif.gif
戻る
回答2. 解析オプション"-EX ANSIPC"または"-EX PC"を使用してください。

解析オプション"-EX ANSIPC"または"-EX PC"を指定することで、"#machine "が認識され、"#if #machine(i386)"の結果を「真」として扱うことができます。(Version 4.2 では -EX SRV4 でも可)

しかし、#machineは、ISO Cで認められていない記述方法であることを指摘する メッセージは出力されてしまいます。この警告は、QAC4.5.3J以降、レベル9の警告になりました。そのため、QAC4.5.3J以降は、#machineを使用するとき、レベル9のエラーを抑止することはできません。


image_toyo_common_spacer.gif.gif
質問3. QACで解析を行うとき、大文字小文字の違いを認識しないように設定することはできますか? QAC全般
image_toyo_common_spacer.gif.gif
Windows環境で開発を行っており、そのソースを UNIX(またはLinux)版の QAC で解析しようとしています。
グローバルな変数や関数について、大文字小文字の違いを区別しないという設定がありますが、インクルードファイルの参照において、同様の設定はできないのでしょうか?
image_toyo_common_spacer.gif.gif
戻る
回答3. #includeで指定したファイル名とパス名をすべて小文字として扱うことは可能です。

コンパイラパーソナリティの拡張で、PCまたはANSIPCをチェックしてください。
すべて小文字として扱うことができます。


image_toyo_common_spacer.gif.gif
質問4. QAC++で解析を行うとき、大文字小文字の違いを認識しないように設定することはできますか? QAC++全般
image_toyo_common_spacer.gif.gif
Windows上ソフト開発を行っており、そのソースを UNIX(またはLinux)版の QA C++ で解析しようとしています。
そこで以下の質問があります。

☆ QA C++にソースを通す際に、大文字・小文字のチェックをしない ようにするオプションはありませんか。


image_toyo_common_spacer.gif.gif
戻る
回答4.

QAC++ ではサポートしていません。

申し訳ございませんが、QAC++ ではサポートしていません。


image_toyo_common_spacer.gif.gif
質問5. Windows版QAC/QAC++でメトリックス情報をCSVファイルへ保存するには?
image_toyo_common_spacer.gif.gif
Windows版 QA C/QA C++ では解析で得られたメトリックス情報を GUIから CSVへ保存できますか?
image_toyo_common_spacer.gif.gif
戻る
回答5.

メトリックスブラウザからCSV形式で保存することができます。

QACやQAC++ のバージョンによって、若干操作方法が異なりますが、QAC7.0JやQAC++2.3.1Jの場合、ブラウザ上の[ファイル]メニューから[データのエクスポート]を選択し、表示されたダイアログ上で保存する ファイル名とパスを指定します。


image_toyo_common_spacer.gif.gif
質問6. シンタックスエラーが一定数を超えたとき、それ以上の解析をしないような設定は可能でしょうか? QAC全般
image_toyo_common_spacer.gif.gif
シンタックスエラーのメッセージは、ほとんどの場合オプション設定の不足であるということを聞きましたが、設定不足のまま解析してもしかたがないので、一定の量が出力されたところで解析をやめるような設定は可能でしょうか?
image_toyo_common_spacer.gif.gif
戻る
回答6.

解析オプションの -maxerr を使用してください。

例えば -maxerr=10 というオプションを指定して解析を行うと、シンタックスエラーが10回出力されたところで解析を中断します。
シンタックスエラーに相当するメッセージは、Version4.xJまでは、HARD ERRORと表示されるメッセージの出力数ですが、Version6.xJ以降では、レベル9のエラーの出力数になります。

 

UNIX版 GUI
4.2Jでは GUIで「解析パーソナリティ」->「詳細オプション」の「最大エラー回数」のフィールドで設定することができます。
この設定によって途中で解析を中止すると、解析中に表示される「ステータスウィンドウ」の「ステータス」に「失敗」と表示されます。
4.5.3J以降のGUIでは、アナライザ・パーソナリティの「解析処理」にある「中止するまでのハードエラー最大出現回数」で設定することができます。
この設定によって途中で解析を中止すると、解析中に表示される「ステータスウィンドウ」の「ステータス」に「解析失敗」と表示されます。

PC版 GUI
4.2Jでは GUIで「アナライザ・パーソナリティ」の設定ダイアログボックスの「スタイルと構成」のタブをクリックして「メッセージの構成」部分の「中止するまでの最大ハードエラー出現回数」のフィールドで設定することができます。
この設定によって途中で解析を中止すると、解析中に表示される「解析状態画面」の「状態」に「解析ワーニング」と表示されます。
4.5.3J以降のGUIでは、アナライザ・パーソナリティの「解析処理」にある「中止するまでのハードエラー最大出現回数」で設定することができます。
この設定のために途中で解析を中止すると、解析中に表示される「解析状態画面」の「状態」に「解析警告」と表示されます。


image_toyo_common_spacer.gif.gif
質問7. GUIで作成したパーソナリティをコマンドラインで使うには?
image_toyo_common_spacer.gif.gif
GUIで作ったそれぞれのパーソナリティファイルをコマンドラインで再利用する方法を教えてください。
image_toyo_common_spacer.gif.gif
戻る
回答7.

-viaオプションを使用してください。

GUIで設定したオプションは、パーソナリティファイルと呼ばれるテキスト形式の ファイルに保存されます。
-viaオプションで、パーソナリティファイルを指定することで、GUIで設定したオプションを使用することができます。

パーソナリティファイルには、メッセージ(あるいはサブセット)、アナライザ、コンパイラの3種類があり、それぞれ、p_s、p_a および p_c という拡張子がついています。(QAC4.2Jでは、この他にメトリックス・パーソナリティ(p_m)があります。)

GUIで解析した場合、インクルードパスの検索は、コンパイラ・パーソナリティより、アナライザ・パーソナリティで設定したインクルードパスを先に検索します。
検索順を同じにするには、コンパイラ・パーソナリティより先にアナライザ・パーソナリティを -via する必要があります。


image_toyo_common_spacer.gif.gif
質問8. GUIで作成したQAC/QAC++プロジェクトをコマンドラインで使うには?(Windows版) QA C7.0J/QA C++2.3.1J以降
image_toyo_common_spacer.gif.gif
GUIで作ったプロジェクトファイルをコマンドラインで再利用する方法を教えてください。
image_toyo_common_spacer.gif.gif
戻る
回答8.

QAWツールを使用してください。

「保守ユーザ様向け情報」ページより、次の2つのファイルをダウンロードしてください。

  • QAW (Windows用)
  • QAW用参考バッチファイル (Windows用)
「QAW用参考バッチファイル」内のReadme.pdf にインストール方法 並びに使用方法が記述されています。

バッチファイルのご提供は Windows 用のみとなっておりますのでご了承ください。


image_toyo_common_spacer.gif.gif
質問9. コマンドラインからQACを実行した場合と、GUIで実行した場合と結果的になにが違うのですか?
image_toyo_common_spacer.gif.gif
コマンドラインで実行した結果に対して、

Q1:GUIでプロジェクトを開いて、統計図等を表示させることはできますか?
image_toyo_common_spacer.gif.gif
Q2:またはGUIのQACを起動せずに、統計図等を見ることができますか?


image_toyo_common_spacer.gif.gif
戻る
回答9.

解析、注釈付きソースコードの出力に関しては何も違いはありません。

コマンドラインで解析後、GUIメニューでソースコードがあるディレクトリに プロジェクトを作成し、プロジェクトのパラメータ QACOUTPATH(出力パス)をコマンドラインで設定した QACOUTPATHと同じディレクトリにしますと、プロジェクトに登録されたソースコードは既に解析済みファイルとなってます。

改めて GUIメニューから解析しなくても、統計図等グラフを表示することができます。

また、GUIのQACを起動せずに、統計図等を見ることができません。グラフィカルな図を表示するには、必ず QACのメインウィンドウ(GUI)を表示しておく必要があります。

GUIからの操作とコマンドラインでの実行は、解析、注釈付きソースコードの表示に関しては何も違いはありません。

GUIの解析メニューを選択(クリック)するということは、イコール、コマンド qacを起動することで、GUIの(グラフィカル表示以外の)表示メニューを選択することは、イコール、コマンド errdspを起動することです。

違う点は、図の表示に関しては、GUIだけで利用することができるということです。


image_toyo_common_spacer.gif.gif
質問10. makefileの -I/-DをどうやってQACやQAC++に反映させるのですか? 戻る
回答10.

makefileの -I/-D と同等のオプションがあります。

-I/-Dは、アナライザ、およびコンパイラパーソナリティで設定可能です。 目的別に設定ファイルを分類しておくと再利用しやすくなります。

(1) -I について

「アナライザパーソナリティ」の「プロジェクト・ヘッダ(バージョンによって表現が異なります)」では、プロジェクト毎に必要なインクルードパス(御自分で作成したヘッダファイルのパス)を設定します。

例:#include "header.h" の header.hがあるフォルダのパス

「コンパイラパーソナリティ」の「システム・ヘッダ(バージョンによって表現が異なります)」では、システムに依存するヘッダファイルを検索するパスを設定します。

例:#include <header.h> の header.hがあるフォルダのパス

(2) -D について

「アナライザパーソナリティ」「「プロジェクト・マクロ(バージョンによって表現が異なります)」項目では、プロジェクト毎、個人毎の設定(いわゆるコンパイル・スイッチと称される設定など)を登録します。

例えばmakefileで -DDEBUGとしている場合、DEBUGを登録します。

「コンパイラパーソナリティ」「システム・マクロ(バージョンによって表現が異なります)」項目では、コンパイラ独自の拡張に対処する設定を登録します。

例)コンパイラ独自の型(例INT64)を、ISO Cの型(long long)に置き換える場合
INT64=long long

コンパイラ特有の予約語(__far)を除去する場合
_far=

-D オプションの設定は、この他にもいくつかの便利な設定方法が準備されています。詳しくは、ユーザーズガイドの -D オプションの説明を見てください。


image_toyo_common_spacer.gif.gif
質問11. プロジェクトマクロやシステムマクロに文字列を渡すことはできますか?
image_toyo_common_spacer.gif.gif
次のようなコードで、#includeのファイル名は、コンパイルするときに-Dオプションを使用して指定しています。
image_toyo_common_spacer.gif.gif
#include HEADER1
image_toyo_common_spacer.gif.gif
コンパイラ・パーソナリティやアナライザパーソナリティのマクロ設定で、"header.h"と指定しても、header.h だけになってしまいます。
"header.h" を設定することはできないのでしょうか?
image_toyo_common_spacer.gif.gif
戻る
回答11.

QAC Version4.5.3J以降やQAC++1.5J以降の場合、次のように設定することで、文字列を渡すことができます。
image_toyo_common_spacer.gif.gif
QAC_STRING_MAC(x)=#x
MACRO=QAC_STRING_MAC(string)
(注:QAC_STRING_MACは任意の文字列が使用できます)
image_toyo_common_spacer.gif.gif
この設定で、ソースコードの中に書かれたMACROは"string"に置換されます。
image_toyo_common_spacer.gif.gif

#include MACRO → #include "string"
char *p = MACRO ; → char *p = "string" ;

Versionに関係なく使用できるのは、「追加インクルード(あるいは強制インクルード)」で指定する方法です。
次の定義をした解析用のヘッダファイルを作成し、-FIオプションで指定します。
image_toyo_common_spacer.gif.gif
#define MACRO "string"
image_toyo_common_spacer.gif.gif
「追加インクルード(あるいは強制インクルード)」をGUIで設定するには、コンパイラパーソナリティ(以前のバージョンはアナライザパーソナリティ)で行います。

解析用のヘッダファイルの中には、文法的に許されるすべてのコードを記述することができます。
ビルトイン関数、ビルトインマクロ、あるいは、特殊なキーワード(レジスタ名など)を宣言しておけば、より正確な解析結果を得ることができます。


image_toyo_common_spacer.gif.gif
質問12. QA C/QA C++のGUIプロジェクトに設定されているパーソナリティ・ファイルの内容を参照・編集する方法と参照先パスを変更する方法を教えてください。(Windows版) QA C4.5.3J以上/QA C++1.5J以上 戻る
回答12.

パーソナリティ・ファイルを参照する場合は次の手順で操作します。

  1. QA C/QA C++のGUIプロジェクトを開きます。
  2. 画面左部の「プロジェクト・フォルダ」ツリー内で、フォルダ名をダブルクリックします。
  3. 表示された「フォルダ・パラメータ」内に、フォルダに設定されている3種類のパーソナリティの絶対パスが表示されます。
  4. 各パーソナリティの右側に表示されているアイコンをクリックすると、パーソナリティ・ファイルの内容を参照・編集することができます。
  5. 各パーソナリティの右側に表示されている[ブラウズ...]ボタンをクリックすると、パーソナリティファイルの参照先パスを変更することができます。(入力フィールドの値を直接変更することもできます。)

注意:
QA C/QA C++では「プロジェクト・フォルダ」ツリー内のフォルダ ごとに異なるパーソナリティ・ファイルの参照先パスを設定でき るようになっています。このため、あるフォルダのパーソナリティ・ファイルの参照先パスを変更したとしても、他のフォルダは変更の影響を受けません。
すべてのフォルダに同じパーソナリティ・ファイルを参照させる場合は、次の手順で操作してください。

  1. 上記の手順に従って最上位のフォルダのパーソナリティ・ファイルの参照先を変更します。
  2. 最上位のフォルダ上で右クリックし、ポップアップメニューを開きます。
  3. [変更をサブフォルダへ反映]を選択し、参照先パスを揃えたいパーソナリティ名、もしくは「全パーソナリティ」を選択します。

image_toyo_common_spacer.gif.gif
質問13. メニューバーの「構成」>「メッセージ・パーソナリティ...」(アナライザ・パーソナリティ/コンパイラ・パーソナリティ)にプロジェクトで使用しているパーソナリティ・ファイルが表示されません。(Windows版) QA C4.5.3J-7.0J/QA C++1.5J-2.3.1J 戻る
回答13.

「構成」>「メッセージ・パーソナリティ...」(アナライザ・ パーソナリティ/コンパイラ・パーソナリティ) で表示される ダイアログ上には、<QACインストールディレクトリ>\personalities (QAC4.5.3Jは <QACインストールディレクトリ>\person) 内のパーソナリティ・ファイルの一覧が表示されます。

プロジェクトで使用しているパーソナリティを表示・編集する方法は、「QA C/QA C++のGUIプロジェクトに設定されているパーソナリティ・ファイルの内容を参照・編集する方法と参照先パスを変更する方法を教えてください。(Windows版)」を参照してください。
image_toyo_common_spacer.gif.gif

質問14. QAC/QAC++でユーザ定義のルールを作成する方法はありますか? image_toyo_ss_img_all_point_new.gif.gif 戻る
回答14. QAC/QAC++は以下のユーザ定義可能なルールをサポートしています。
  • アナライザ・パーソナリティにおいて警告対象関数(warncall)機能を使用することによる、使用禁止の関数呼び出しに対する警告
  • 関数、ファイル、または(QAC++の)クラス・メトリックスに関するしきい値の超過に対する警告
  • 2次解析アドオン・モジュールによる命名規則の一連のチェック
  • 詳細なコード・レイアウトの一連のチェック(QAC++のみ)
MISRA-Cおよびその他のコーディング規格については、ルールのうち最大で約10%がQAC/QAC++の標準機能では生成されないため、2次解析モジュールを提供しています。ユーザ自身が構文解析結果を使用して2次解析を行うことも可能ですが、要望していただければ、2次解析機能として検討させていただきます。まず 技術サポート宛にお問い合わせください。
image_toyo_common_spacer.gif.gif
質問15. QACは潜在的なメモリリークを検出できますか? image_toyo_ss_img_all_point_new.gif.gif 戻る
回答15. QACは静的解析チェックのライブラリを広範に備えているため、ポインタによりアクセスされたデータ、ポインタ間接参照、ポインタ演算、およびポインタへの危険な操作(const/volatileの破棄、安全でない変換/比較)などを含むメモリリークの問題の様々なカテゴリについて警告します。
image_toyo_common_spacer.gif.gif
質問16. Windows上でローカル管理者権限を持たずにQAC/QAC++を使用するには? image_toyo_ss_img_all_point_new.gif.gif 戻る
回答16. インストールの際、読み取り/書き込みアクセス権のある、Program Filesフォルダ以外の場所(ユーザのホーム・ディレクトリなど)を選択することが可能です。こうすることで、管理者権限がなくても製品をインストールすることができます。
image_toyo_common_spacer.gif.gif
質問17. プリプロセス済みソース・コードを生成するには? image_toyo_ss_img_all_point_new.gif.gif 戻る
回答17. プリプロセス済みソース・コードを生成するには、以下の操作を行います。
  1. プリプロセス済みソースを生成したいソース・ファイルを含む、プロジェクト内のフォルダを右クリックし、[フォルダ・パラメータ]を選択します。
  2. アナライザ・パーソナリティの[編集]ボタンをクリックします。
  3. [解析処理]タブを選択し、[プリプロセス済み出力]オプションをチェックします。詳細なソース・ファイルの位置情報をこのプリプロセス済み出力ファイルに取得するには、[プリプロセス済みリストにファイル名と行番号を含める]オプションをチェックします。
  4. [OK]をクリックして保存し、ダイアログを閉じます。
  5. ソース・ファイルを選択し、解析します。
  6. 解析したソース・ファイルを右クリックし、[プリプロセス済みソースを表示]を選択します。

image_toyo_common_spacer.gif.gif
質問18. QAC/QAC++のパーソナリティ構成ファイルはバージョン間での上位互換性および下位互換性がありますか? image_toyo_ss_img_all_point_new.gif.gif 戻る
回答18. 製品のバージョン間で構成の互換性を維持させることに努めています。コンパイラ・パーソナリティおよびアナライザ・パーソナリティのオプションについては、通常は上位互換性および下位互換性が保証されますが、例外として、新規追加された構成エントリにはデフォルト値が想定され、そのエントリはGUIでの保存時にのみパーソナリティ・ファイルに記録されます。構成オプションが削除されることは滅多になく、パーソナリティの読み取りまたは使用の際に、無関係な設定はすべて無視されます。
メッセージ・パーソナリティについては、後のリリースで新しいメッセージが追加される点がさらに複雑です。既存のパーソナリティに選択したメッセージを手動でレビューすると共に、後の製品バージョンで追加される新しいメッセージもレビューするのが最も良い方法です。
image_toyo_common_spacer.gif.gif

PAGE TOP