富士通ソフトウェアテクノロジーズ

サイトマップ

Japan

ホーム

印刷用

元のページへ戻る

  1. ホーム >
  2. 製品 & サービス >
  3. PGRelief C/C++ >
  4. FAQ & サポート >
  5. FAQ
  • 元のページへ戻る

PGRelief C/C++
FAQ

  • PGRelief C/C++ をご使用になる前に
  • 体験版編
  • インストール編
  • 起動編
  • プロジェクト編
  • 設定編
  • 解析編
  • 表示編
  • コマンド起動編
  • ヘルプ編
  • ツール編
  • 解析時間を短縮する方法

  • 元のページへ戻る

PGRelief C/C++
FAQ

PGRelief C/C++ をご使用になる前に

  1. COReTOOL/PGReliefとPGReliefの違いを知りたい
  2. PGReliefの特徴を知りたい
  3. 解析実績のあるコンパイラには何がありますか?
  4. EYDS/PG-Relief とPGRelief との機能差を知りたい
  5. PGReliefの英語版や中国語版はありますか?
  6. 海外で使用できますか?
  7. サポートサービスの内容について知りたい
  8. 解析可能なファイル数などの限界値はありますか?
  9. フローティングライセンスの場合、ライセンス管理用のサーバは必要になりますか?
  10. フローティングライセンスの場合でも、PCをネットワークに接続せずにスタンドアローンで使用できますか?(1台のPCをライセンス管理サーバ兼クライアントとして利用できますか?)
  11. フローティングライセンスの場合、同一ネットワーク上に異なるOSのクライアントが混在している環境でも、同一ライセンスで問題ありませんか?
  12. ノードロックライセンスの場合、各PCにインストールしてUSBキーを持ち歩けば全PCで動作可能ですか?
  13. Windows Vista には対応していますか?

1. COReTOOL/PGReliefとPGReliefの違いを知りたい

COReTOOL/PGReliefは、PGReliefに名称変更いたしました。

2. PGReliefの特徴を知りたい

PGReliefは、C/C++のソースプログラムを静的に解析し、プログラムの欠陥部分を指摘するツールです。
開発工程の早い段階でのプログラム品質を高めることができますので、開発期間の短期化(コスト削減)に効果があります。

PGReliefの特徴は以下のとおりです。

  1. 高いヒット率
    PGReliefは、富士通社内でのバグ事例や、雑誌などで紹介されている事例などから問題点をルール化し、ソース記述をチェックします。
    またそのチェックを行うにあたり、プログラムのデータ構造を意識しながらプログラムの欠陥部分を指摘します。
    そのため指摘に対するヒット率(本当に修正が必要である確率)が高く、指摘に対する検証工数が少ないという特徴があります。
  2. 充実した支援機能
    指摘メッセージの絞込み表示により、各指摘メッセージについて重要なものから迅速に検証することができます。
    またエディタ連携機能により、問題箇所へタグジャンプし、スムーズに対処することができます。
  3. 充実したドキュメント
    各指摘メッセージについて、詳細な解説が用意されています。
    簡単な例を交えて、そのメッセージが指摘された理由や対処例なども記載されていますので、問題解決の糸口が掴みやすいです。
    また開発者の方がこれらを利用することにより、プログラミングに対する自己学習の効果が得られ、スキルアップにもつながります。
  4. 各種コンパイラに対応
    オプション設定でコンパイラ種別・インクルードディレクトリを適切に選択するだけで正常に解析できます。(アセンブラ部分の読み飛ばし処理など、面倒な設定はありません)
    また解析実績の無いコンパイラであっても、無償にてコンパイラドキュメントを調査し対応致します。
  5. 指摘メッセージの追加
    お客様のご要望に応じて指摘メッセージを追加することができます。お客様の過去の開発経験に基づく様々なノウハウをチェックの観点として追加することにより、ソースレビューの効率化とノウハウの共有化を図ることができます。
    費用については別途ご相談ください。
  6. メモリリークの検出
    関数に閉じた範囲に限りますが、動的にメモリを獲得しローカル変数でその領域のアドレスを保持している場合、その領域を解放することなく関数から抜けるルートを見つけると、メモリリークの可能性を指摘します。(alloc系関数のみ)
    PGReliefは全てのパスを検証しますので、特にエラー系処理におけるメモリリークの可能性について効果を発揮します。
  7. MISRA適合性チェック
    PGReliefでは、MISRAガイドラインへの適合性を確認することができます。(別途オプション製品の購入が必要です)
    MISRAガイドラインに適合したソースコード記述を行うことにより、プログラムの基本品質の底上げを図ることができます。
  8. SECコーディング作法適合性チェック
    PGReliefでは、「組込みソフトウェア開発者向けコーディング作法ガイド」への適合性を確認することができます。(基本機能)

3. 解析実績のあるコンパイラには何がありますか?

動作環境ページの「解析実績のあるコンパイラ」をご参照ください。

4. EYDS/PG-Relief と PGRelief との機能差を知りたい

資料をご用意していますので、サポート窓口にお問い合わせください。

5. PGReliefの英語版や中国語版はありますか

英語版については、PGRelief 2007で完全英語化しており、英語版Windows上でも動作可能です。

中国語版はございませんが、英語版が中国語Windows上で動作可能です。
中国語のコード(GB2312)にも対応しております。
詳しくは、サポート窓口にお問い合わせください。

6. 海外で使用できますか?

現在、ご利用可能な国は、日本、中華人民共和国(香港およびマカオを除く)、中華民国、ベトナム社会主義共和国、インド共和国、アメリカ合衆国、グレートブリテンおよび北アイルランド連合王国、オーストラリア連邦、大韓民国、フィンランド共和国、フィリピン共和国、カナダ、ドイツ連邦共和国、フランス共和国、ロシア連邦、ベルギー王国、イスラエル国、スウェーデン王国、シンガポール共和国、デンマーク王国、ノルウェー王国、チェコ共和国、インドネシア共和国、マレーシア、ニュージーランドです。
その他の国につきましては、サポート窓口にお問い合わせください。

7. サポートサービスの内容について知りたい

価格ページの「アップグレード & サポートサービス」を参照してください。

8. 解析可能なファイル数などの限界値はありますか?

PGRelief の解析限界は次のとおりです。ファイルサイズに関して特に制限はありません。

  • 1つのプロジェクトで宣言できる配列の要素数は、42億9,496万7,295 個まで。
  • 1つの字句(識別子名、文字列リテラルなど)の長さは、1万6,384 個まで。
  • 1ファイルで取り込めるインクルードファイル数は、3,000 個まで。

9. フローティングライセンスの場合、ライセンス管理用のサーバは必要になりますか?

フローティングライセンスの場合、PGRelief を起動するクライアントの他に、ライセンスを管理するサーバが必要になります。
このサーバにライセンス管理システムをインストールし、ハードウェアキーによるライセンスの管理を行います。
なお、クライアントがサーバを兼ねることも可能です。1台のPCをライセンス管理サーバ兼クライアントとして利用するには、「10. フローティングライセンスの場合でも、PCをネットワークに接続せずにスタンドアローンで使用できますか?」を参照してください。

10. フローティングライセンスの場合でも、PCをネットワークに接続せずにスタンドアローンで使用できますか?(1台のPCをライセンス管理サーバ兼クライアントとして利用できますか?)

以下の設定により可能です。

  1. インストールガイド(インストーラの初期画面上部にある『最初にお読みください』ボタンを押すと表示されます)に記載の手順に従って、同一マシンに「2.1 クライアントマシンへのインストール」および「2.2 ホストマシンへのインストール」を行ってください。
  2. 同ガイドの付録1に記載の「参照するホストマシンを固定する方法」に従って設定を行います。このとき、IPアドレスの記述部には『127.0.0.1』と記述してください。

11. フローティングライセンスの場合、同一ネットワーク上に異なるOSのクライアントが混在している環境でも、同一ライセンスで問題ありませんか?

PGRelief のフローティングライセンスは、同一ネットワーク内に属する、製品をインストールしたPCの同時起動可能ライセンス数をいいます。チェックされるのは製品の同時起動数であり、(製品が動作保証しているOSであれば)OSの種類は問いません。

12. ノードロックライセンスの場合、各PCにインストールしてUSBキーを持ち歩けば全PCで動作可能ですか?

ノードロックライセンスとは、ソフトウェアをインストールしたPC一台でのみお使いいただけるライセンスです。したがって、同時に複数台のPC にインストールすることはできません。別のPCにインストールするには、現在インストールされている製品をアンインストールしてください。

13. Windows Vista には対応していますか?

「PGRelief 2007 autumn」で対応しました。


  • 元のページへ戻る

PGRelief C/C++
FAQ

体験版編

  1. 体験版のインストール後、起動に失敗します
  2. 体験版がインストールされているマシンに製品版をインストールするにはどうすればいいですか?
  3. 体験版で作成したプロジェクトファイルを製品版で利用できますか?
  4. 体験版と製品版との機能差を知りたい

1. 体験版のインストール後、起動に失敗します

ご使用のログインアカウントが Administrator 権限を持っていないことが考えられます。
Windows XP/2000 で体験版をご試用の際には、Administrator 権限を持っているアカウントでご試用下さい。

製品版では、インストール時は Administrator 権限を持つアカウントでインストールする必要がありますが、インストール後は一般権限であっても全機能が利用できます。

2. 体験版がインストールされているマシンに製品版をインストールするにはどうすればいいですか?

Windows のコントロールパネルから通常手順で体験版をアンインストールし、製品版をインストールしなおすだけでご利用頂けます。

3. 体験版で作成したプロジェクトファイルを製品版で利用できますか?

体験版で作成したプロジェクトファイルは製品版でもそのまま継続して利用可能です。

4. 体験版と製品版との機能差を知りたい

体験版は、製品版に対して以下の制限があります。

  • 使用期限:インストール後1ヶ月
  • ヘルプ(メッセージ詳細説明)を一部割愛

その他については機能制限はありません。オプション製品である「MISRAオプション」、「品質監視オプション」も利用可能です。


  • 元のページへ戻る

PGRelief C/C++
FAQ

インストール編

  1. ノードロックライセンスを別のPCにインストールできますか?
  2. ライセンスマネージャのインストールで、Application(アプリケーション)と Service(サービス)のどちらを選べばいいですか?
  3. デバイスドライバのインストール中にエラーが発生します
  4. ノードロックライセンスのインストール時に「LICENSE_0999 PGRelief(ノードロックライセンス版)のハードウェアキーが見つかりませんでした。」というエラーメッセージが表示され、インストールできません

1. ノードロックライセンスを別のPCにインストールできますか?

現在インストールされている製品をアンインストールすれば、別のPCにインストールすることができます。

2. ライセンスマネージャのインストールで、Application(アプリケーション)と Service(サービス)のどちらを選べばいいですか?

ライセンスマネージャをアプリケーション(Application)登録した場合、ライセンスマネージャを起動しておくためにはインストールされているサーバが常にログイン状態でなければなりません。(ログオフするとライセンスマネージャも終了してしまいます)

ログオフしてもライセンスマネージャが起動している状態にするためには、ライセンスマネージャをサービス(Service)登録してください。

3. デバイスドライバのインストール中にエラーが発生します

サポート窓口にお問い合わせください。

なお、以下の情報もお知らせください。

  • 動作OS(適用サービスパック)
  • PGRelief のバージョン および ライセンス形態(ノードロック/フローティング)
  • エラーメッセージの内容

4. ノードロックライセンスのインストール時に「LICENSE_0999 PGRelief(ノードロックライセンス版)のハードウェアキーが見つかりませんでした。」というエラーメッセージが表示され、インストールできません

旧バージョンのハードウェアキーを使って、新バージョンをインストールしているのが原因です。
ハードウェアキーの情報を新バージョンに更新する「ライセンス更新プログラム」を実行後、インストールしてください。ライセンス更新プログラムは、新バージョンの申請者にお送りしています。


  • 元のページへ戻る

PGRelief C/C++
FAQ

起動編

  1. 「LICENSE_0015 アクティブなNetHASPライセンスマネージャが見つかりません。」というエラーメッセージが表示されます
  2. フローティングライセンスを起動すると、「LICENSE_0960 このバージョンの起動は許可されていません。」というエラーメッセージが表示され、起動できません

1. 「LICENSE_0015 アクティブなNetHASPライセンスマネージャが見つかりません。」というエラーメッセージが表示されます

考えられる原因は大きく以下の2つです。

  • ライセンスマネージャが起動していない。

    まず、ライセンスマネージャが起動しているか確認してください。
    エラーメッセージが表示されずに正常に利用できるクライアントPCがある場合は、ライセンスマネージャは正常に起動しています。

    ライセンスマネージャをアプリケーション登録した場合、ライセンスマネージャを起動しておくためには、インストールされているサーバが常にログイン状態でなければなりません。(ログオフするとライセンスマネージャも終了してしまいます)
    ログオフしてもライセンスマネージャが起動している状態にするためには、ライセンスマネージャをサービス登録してください。
  • ライセンスマネージャは起動しているがクライアントから見つからない。

    エラーメッセージが表示されているクライアントが以下の条件に該当する場合、ライセンスマネージャを探索できない場合があります。
    ・ クライアントがファイアーウォールソフト等を利用しており、ポートが塞がれている場合
    ・ クライアントがホストと同一サブネット上にない場合

    このような場合、参照するホストを固定することで PGRelief を起動できる可能性があります。
    pgrlicense.ini の [NH_TCPIP] セクションに以下の行を追加し、PGRelief を起動してください。

    NH_SERVER_ADDR = <ホストのIPアドレス>

参考:
詳細については、『インストールガイド』の「付録1 ライセンス管理システムの詳細設定」-「クライアントマシンでの設定」-「参照するホストマシンを固定する方法」を参照してください。

2. フローティングライセンスを起動すると、「LICENSE_0960 このバージョンの起動は許可されていません。」というエラーメッセージが表示され、起動できません

ライセンスサーバに、旧バージョンのハードウェアキーが接続されているのが原因です。
ハードウェアキーの情報を新バージョンに更新する「ライセンス更新プログラム」を実行後、起動してください。ライセンス更新プログラムは、新バージョンの申請者にお送りしています。


  • 元のページへ戻る

PGRelief C/C++
FAQ

プロジェクト編

  1. プロジェクト名に空白や . などの記号を使いたい
  2. 子プロジェクトの作り方がわかりません
  3. プロジェクトを開くとき、「処理を中止しますか?」というメッセージが表示されます

1. プロジェクト名に空白や . などの記号を使いたい

プロジェクト名には、利用できない記号があります。
プロジェクト名には一部の記号(空白や * ? . \ など)は使用することができません。
プロジェクト概要を設定することで、空白やカンマを使用することができます。

2. 子プロジェクトの作り方がわかりません

あらかじめプロジェクトを開いた状態でプロジェクトを新規作成すると、選択されたプロジェクトの下に子プロジェクトが作成できます。

3. プロジェクトを開くとき、「処理を中止しますか?」というメッセージが表示されます

以下の場合に表示されます。

  • メインウィンドウでプロジェクトが選択された場合に、指摘メッセージ表示/メトリクス表示ウィンドウを自動で表示する設定になっている。 かつ
  • 関数定義の数や指摘メッセージの数が表示可能数(デフォルトは2,000件)を超えた。

この場合には、「はい」を選択し、処理を中止してください。その後、「設定」-「システムオプションの設定」メニューの「表示オプションの設定」で、「メインウィンドウのプロジェクト選択での連携先」を「連携しない」に設定後、再度プロジェクトを開いてください。


  • 元のページへ戻る

PGRelief C/C++
FAQ

設定編

  1. インクルード設定で、相対パスによるインクルードディレクトリの設定はできますか?
  2. コンパイラ種別は何を指定すればいいですか?
  3. SuperH、H8のコンパイラ種別がHITACHIとRENESASの両方にありますが、どちらを指定すればいいですか?

1. インクルード設定で、相対パスによるインクルードディレクトリの設定はできますか?

相対パスによるインクルードディレクトリの設定はできません。絶対パスで設定してください。

2. コンパイラ種別は何を指定すればいいですか?

製品が標準対応しているコンパイラの場合
『コマンド解説書』の「付録A. 使用コンパイラ別PGRelief 利用の注意点」を参考にしてください。

製品が標準対応していないコンパイラの場合
DEFAULT でお試しください。

3.SuperH、H8のコンパイラ種別がHITACHIとRENESASの両方にありますが、どちらを指定すればいいですか?

HITACHIは削除する予定ですので、RENESAS/SuperH、H8を使用してください。


  • 元のページへ戻る

PGRelief C/C++
FAQ

解析編

  1. コンパイルエラーのあるソースプログラムを解析できますか?
  2. 解析エラーになり解析できません
  3. gccの資産を解析すると、解析エラーになってしまいます
  4. 標準インクルードファイルで解析エラーが発生しないようにできますか?
  5. ファイル間解析とは何ですか?
  6. C++で記述されたソースがファイル間解析されません

1. コンパイルエラーのあるソースプログラムを解析できますか?

解析できません。コンパイルエラーのない状態にしてからご利用ください。

2. 解析エラーになり解析できません

解析エラーの中には、設定によって回避できる場合があります。
「設定」-「プロジェクト固有オプションの設定」メニューで、以下の設定を見直してから、解析し直してください。

  • コンパイラ設定
    適切なコンパイラ種別が設定されているか確認してください。コンパイラ種別を設定すると、そのコンパイラの持つANSI 規格外の固有構文の回避設定が行われます。
    コンパイラ種別に設定する内容については、『設定編』-『2.コンパイラ種別は何を指定すればいいですか?』を参照してください。

    コンパイラ種別を設定する詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[コンパイラ種別を設定する]
  • インクルード設定
    以下のメッセージが表示される場合、インクルードパスの設定が足りないことが考えられます。
    「pgr0401 ファイル "xxxxx" が見つかりません。」 インクルードファイルが存在するパスがすべて設定されているか確認してください。また、実コンパイル環境と同じ順序でディレクトリが検索されるよう、上下ボタンを利用して検索順序を変更してください。

    参考:自作のヘッダーファイルが格納されているディレクトリを「私用インクルード」に、コンパイラ提供のものは「標準インクルード」に設定してください。
  • マクロ設定
    適切なコンパイラ種別を設定しても解析エラーが発生する場合は、処理系に依存する記述(定義済みマクロやキーワードなど)が回避しきれていないことが考えられます。コンパイラ付属のドキュメントなどをご参照のうえ、処理系に依存する記述をマクロ定義で回避し、解析を行ってください。
    1. 組み込み型の追加
      独自に追加された組み込み型(基本データ型)を、ANSI規格で定義されている 基本データ型に読み替えることにより回避します。

      例:#define XXXX yyyy の場合
        XXXX=yyyy というマクロの定義を追加します。

      例:ZZZZ キーワードを読み飛ばす場合
        ZZZZ= というマクロの定義を追加します。
    2. マクロ定義の追加
      コンパイラが自動的に付加するマクロ定義を、明に指定することにより回避できます。

      マクロ定義の詳細な手順については、下記のヘルプトピックを参照してください。
      [PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[マクロを設定する]
  • #if
    以下のようにソースプログラムを変更し、エラーとなる部分を解析対象から除外することで解析できる場合があります。

    #if !defined(__PGRELIEF__)
    ・・・解析エラーとなるコンパイラ固有の構文
    #else
    ・・・代替え構文
    #endif

    あらかじめマクロ設定で __PGRELIEF__を設定してください。

それでも解決しない場合には、サポート窓口までご連絡ください。その際には、お使いのコンパイラの名称・バージョンをお知らせください。

3. gccの資産を解析すると、解析エラーになってしまいます

まず、「設定」-「プロジェクト固有オプションの設定」メニューで、以下の設定を見直してから、解析し直してください。

  • コンパイラ設定
    GNU 配下の GCC のコンパイラ種別を選択してください。
  • インクルード設定
    コンパイラ提供のものは「標準インクルード」に、自作のヘッダファイルが格納されているディレクトリは「私用インクルード」に設定してください。
    なお、「標準インクルード」設定時には、gccのコンパイル環境にて cpp -v コマンドを実行して、インクルードパスの検索順序を確認し、同様の順序となるように設定してください。
  • マクロ設定
    gcc のコンパイル時に指定している-Dオプションがある場合に指定してください。

それでも解決しない場合には、お客様の開発環境に合わせた「コンパイラ種別ファイル」を適用することにより、解析エラーを回避することができます。
上記コンパイラ種別ファイルを作成させて頂きますので、サポート窓口にご連絡ください。

参考:コンパイラ種別ファイルの作成、提供は無償です。

4. 標準インクルードファイルで解析エラーが発生しないようにできますか?

代替インクルードファイルを作成し、その格納先を標準インクルードディレクトリに設定することで対処可能です。

参考:この方法は、インクルードの記述が #include <...> の場合に有効です。

  • 代替インクルードファイルとは

    解析エラーが発生する標準インクルードファイルのコピーに対して、解析エラーが発生しないように修正したインクルードファイルです。このファイルはお客様に作成していただく必要があります。
  • 代替インクルードファイルの格納先を追加するには

    1. 代替インクルードファイルが c:¥alt¥include ディレクトリにあり
    2. 標準インクルードファイルが c:¥std¥include ディレクトリにあるとき

    「標準インクルードディレクトリ」に上記 a., b. を登録します。
    このとき、標準インクルードディレクトリの一覧で a. が b. よりも上に登録されるように「上」「下」ボタンを使って調整してください。その後、通常の手順で解析を行ってください。

    インクルード設定の詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[インクルードを設定する]

5. ファイル間解析とは何ですか?

ソースファイル間の関係の指摘などを解析します。

例えば、以下のようなチェックを行います。

  • グローバル変数が重複定義されていないか
  • 関数呼出し時に引数の型の整合性がとれているか

6. C++で記述されたソースがファイル間解析されません

C++で記述されたソースはファイル間解析の対象になりません。


  • 元のページへ戻る

PGRelief C/C++
FAQ

表示編

  1. 指摘メッセージ・メトリクス・集計結果を表示しようとすると「処理を中止しますか?」というメッセージが表示されます
  2. 「表示用データ作成中にエラーが発生しました。メッセージが限界値を超えました」というメッセージが表示されます
  3. 不要な指摘メッセージが出力されないようにする方法はありますか?
  4. 標準インクルードファイルで指摘メッセージが表示されます
  5. 指摘メッセージ表示の指摘数の合計が違います
  6. 指摘メッセージ表示の指摘メッセージ一覧に表示されている列見出しの I とは何の意味ですか?
  7. 指摘メッセージ表示の表示方法をファイル優先にするとIDペインに同じIDの指摘が表示されます
  8. メトリクス表示で、危険・要注意域になった関数の何が警告されたのか知りたい
  9. 集計結果表示でファイル間を集計結果表示した場合、ステップ数や関数の数や複雑度情報が表示されません
  10. 集計結果表示で複雑度情報が出力されないか期待した値と異なります
  11. ビューアで、あるはずの文字列が検索できません
  12. ビューアで、検索時に Ctrl+D(Ctrl+U) を利用した場合、大量のメッセージボックスが表示されました
  13. 集計結果表示にあるフィルタリング情報とは何ですか?

1. 指摘メッセージ・メトリクス・集計結果を表示しようとすると「処理を中止しますか?」というメッセージが表示されます

関数定義の数や指摘メッセージの数が、表示可能数(デフォルトは2,000件)を超えたのが原因です。
「いいえ」を選択すると、重複したメッセージの削除などの処理を行うため、表示できる場合もありますが、表示できない場合やメモリやディスク容量不足でマシンが停止する場合もあります。

対処方法については、『2. 表示用データ作成中にエラーが発生しました。メッセージが限界値を超えました」というメッセージが表示されます』を参照してください。

2. 「表示用データ作成中にエラーが発生しました。メッセージが限界値を超えました」というメッセージが表示されます

関数定義の数や指摘メッセージの数が、表示可能数(デフォルトは2,000件)を超えたのが原因です。
「設定」-「システムオプションの設定」メニューの「表示オプション設定」で、「○○件以上のメッセージは表示しない」の値を増やして、表示可能なメッセージ数を増やしてみてください。
ただし、設定値を大きくすると、検出されたメッセージ数が多量の場合、メッセージの画面表示時間が極端に遅くなる場合があります。

表示可能なメッセージ数を変更する詳細な手順については、下記のヘルプトピックを参照してください。
[PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[表示オプションを設定する]

上記設定を実施した場合でも、2万5,000件以上のメッセージを表示することはできません。2万5,000件以上メッセージがある場合には、以下の方法で、出力されるメッセージ数が 2万5,000件以上にならないように調整してください。

  • 表示対象を少なくする
    個々のファイルまたは2万5,000件を超えない範囲でいくつかのファイルを選択してから表示(指摘メッセージ表示、メトリクス表示、集計結果表示)を行ってください。
     
  • フィルタリング設定で表示するグループを少なくする (V2以降をお使いの場合)
    「設定」-「システムオプションの設定」メニューの「フィルタリング設定」で、表示したいグループを設定してください。

    フィルタリング設定の詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[指摘メッセージを確認する]-[フィルタリングを設定する]
     
  • 検査指摘設定で出力するメッセージの数を少なくする (V3以降をお使いの場合)
    検査指摘定義ファイルに、指摘したい番号やグループだけを設定してください。

    検査指摘設定の詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[検査指摘を設定する]

3. 不要な指摘メッセージが出力されないようにする方法はありますか?

以下の方法があります。

  • 指摘メッセージのメッセージグループを変更する

    不要な指摘メッセージのグループを非表示のグループに変更することで、指摘メッセージを非表示にしてレビュー対象を絞り込むことができます。ただし、同じIDのすべての指摘メッセージのグループが変更されます。

    例えば、pgr0036 の指摘を非表示にしたい場合、初期値の a グループから通常使用しない z グループに変更すると、pgr0036 の指摘は a グループでなく z グループとして扱われます。初期設定では z グループは非表示にするグループになっているため、pgr0036 の指摘を非表示にすることができます。

    メッセージグループを非表示に設定する詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[フィルタリングを設定する]

    メッセージIDのグループを変更する詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[オプションの設定をする]-[グループを設定する]
     
  • チェック済指摘メッセージにする

    ソースファイルの変更が可能な場合には、修正する必要のない指摘メッセージをチェック済指摘メッセージにすることで、特定の指摘に対しチェックが済んでいることを示すマークを付けることができます。
    チェック済指摘メッセージにするためには、ソースファイルに抑止コメントの記述が必要です。

    抑止コメントの詳細については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[指摘メッセージを確認する]-[チェック済み指摘]-[抑止コメントを設定する]
     
  • 検査指摘設定で指摘したい番号やグループだけを設定する (V3以降をお使いの場合)

    検査指摘定義ファイルに、指摘した番号やグループだけを設定しておくと、設定した指摘だけを出力することができます。また、ヘッダーに関する指摘を抑止することもできます。

    検査指摘設定の詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[検査指摘を設定する]

4. 標準インクルードファイルで指摘メッセージが表示されます

標準インクルードファイル内の記述でも、いくつかレビューを実施した方がよいと思われる項目については指摘のチェック対象としています。
標準インクルードファイルでも指摘される項目は、『指摘詳細説明書』の「1.2 指摘一覧」 の備考欄に(出)マークが付いています。

5. 指摘メッセージ表示の指摘数の合計が違います

ヘッダーファイルなどで全く同じ指摘が複数存在すると、(指摘数と指摘された位置の数の関係から)指摘数の合計が合わない場合があります。

6. 指摘メッセージ表示の指摘メッセージ一覧に表示されている列見出しの I とは何の意味ですか?

指摘メッセージ状態をあらわす Information の略です。

7. 指摘メッセージ表示の表示方法をファイル優先にするとIDペインに同じID指摘が表示されます

指摘されているファイルが異なる場合、同じ指摘IDが複数表示されます。

8. メトリクス表示で、危険・要注意域になった関数の何が警告されたのか知りたい

危険・要注意で警告される関数は、行が警告色で表示されますが、危険・要注意の指摘対象になったフィールドも色が変わって表示されています。

9. 集計結果表示でファイル間を集計結果表示した場合、ステップ数や関数の数や複雑度情報が表示されません

ファイル間では、ステップ数や関数の数など規模や複雑度などの情報は出力されません。(ファイル間単体での集計結果は表示できません)
規模や複雑度などが必要な場合は、ソースファイルを選択して集計結果表示を実施してください。

10. 集計結果表示で複雑度情報が出力されないか期待した値と異なります

一括表示などから選択プロジェクト配下の集計結果表示を実施した場合に発生する可能性があります。
プロジェクト固有オプションで「親Prjとの関係」が「参照しない」に設定されていると、複雑度情報が出力されない場合や期待した値と異なる場合があります。
また親子関係にあるプロジェクトでは、危険要注意域の設定を変えるべきではありません。設定を統一してください。

11. ビューアで、あるはずの文字列が検索できません

「検索」ダイアログで「コメントも対象にする」や「条件付コンパイルで無効になった部分を対象にする」が選択されているか確認してください。

12. ビューアで、検索時に Ctrl+D(Ctrl+U) を利用した場合、大量のメッセージボックスが表示されました

検索のショートカットキーを押し続けて、連続検索を実施した場合に「見つかりません」のメッセージが大量に表示される場合があります。連続検索を利用しないか、可能であればシステムキーバッファのサイズを小さくしてください。

13. 集計結果表示にあるフィルタリング情報とは何ですか?

下記のヘルプトピックで、集計結果表示に表示される内容について説明していますので、参照してください。
[PGReliefを使う]-[解析結果を集計する]-[解析結果を集計する]


  • 元のページへ戻る

PGRelief C/C++
FAQ

コマンド起動編

  1. コマンド起動で指摘内容をファイルに出力できますか?
  2. コマンド起動による解析でも、抑止コメントと同等の機能は利用できますか?
  3. コマンド起動で出力された解析結果をGUIで参照できますか?

1. コマンド起動で指摘内容をファイルに出力できますか?

コマンド起動で指摘内容をファイルに出力することが可能です。
コマンド例を以下に示します。

テキスト形式で保存する場合
pgr5 xxx.c > xxx.txt

CSV形式で保存する場合
pgr5 --csv xxx.c > xxx.csv

なお、環境変数 path に以下のディレクトリを追加してください。

[PGRelief の Install ディレクトリ]¥Analyze¥EPOM

pgr5 コマンド形式の詳細は、『コマンド解説書』の「1.1.2. コマンド形式」を参照してください。
pgr5 コマンドが使用する環境変数の詳細は、『コマンド解説書』の「1.1.6. 環境変数」を参照してください。

2. コマンド起動による解析でも、抑止コメントと同等の機能は利用できますか?

コマンド起動による解析の場合は利用できません。GUIでご利用ください。

3. コマンド起動で出力された解析結果をGUIで参照できますか?

コマンド起動で出力された解析結果をGUIで参照することはできません。テキストエディタなどで参照してください。


  • 元のページへ戻る

PGRelief C/C++
FAQ

ヘルプ編

  1. ヘルプを表示すると、ウィンドウが操作できない場合があります

1. ヘルプを表示すると、ウィンドウが操作できない場合があります

オプション設定やプロジェクト新規作成(変更)、ファイルの保存などでヘルプを表示した場合、ウィンドウを操作することができません。 一度ヘルプを終了してから操作を続行してください。


  • 元のページへ戻る

PGRelief C/C++
FAQ

ツール編

  1. ライセンス更新プログラムを実行すると、終了メッセージが表示しなかったり、異常終了してしまいます
  2. ライセンス更新プログラムを実行すると、「PGRUPDATE_0021 想定外のライセンスキーが接続されています。」というエラーメッセージが表示されます

1. ライセンス更新プログラムを実行すると、終了メッセージが表示しなかったり、異常終了してしまいます

Microsoft Windows XP、Vista、Server 2003 のデータ実行防止(DEP)機能が有効になっている場合、ライセンス更新プログラムが正常に動作しなかったり、異常終了する場合があります。

以下の方法でデータ実行防止機能を無効にして、ライセンス更新プログラムを実行してください。

  1. システムの「プロパティ」を表示し、「詳細設定」タブを選択します。
  2. 「パフォーマンス」の「設定」ボタンを選択します。
    選択後、「パフォーマンスオプション」ダイアログが表示されます。
  3. 「データ実行防止」タブを選択します。
  4. 「次に選択するものを除くすべてのプログラムおよびサービスについて DEP を有効にする」で、ライセンス更新プログラム(pgrup.exe)を追加します。

2. ライセンス更新プログラムを実行すると、「PGRUPDATE_0021 想定外のライセンスキーが接続されています。」というエラーメッセージが表示されます

アップデート対象のハードウェアキーが正しく接続されているか確認してください。
正しいハードウェアキーが接続されている場合には、ライセンス更新プログラムに同梱されているライセンスキー情報取得ツール(pgrkeyinfo.exe)を実行し、生成される pgrkeyinfo.dat ファイルをサポート窓口までお送りください。


  • 元のページへ戻る

PGRelief C/C++
FAQ

解析時間を短縮する方法

  1. 解析時間を短縮する方法を教えてください。

1. 解析時間を短縮する方法を教えてください。

以下の方法で、解析時間を短縮できます。

  • 検査指摘設定で検出対象の指摘を絞る
    検査指摘定義ファイルに、指摘したい番号やグループだけを設定してください。
    例えば、障害の可能性のあるaグループの指摘(約100個)だけを検出対象にした場合、通常の解析よりも1ソースファイル当たり30%~60%解析時間を短縮できます。

    検査指摘設定の詳細な手順については、下記のヘルプトピックを参照してください。
    [PGReliefを使う]-[高度な使い方]-[検査指摘を設定する]
     
  • ファイル間解析を行わない
    「設定」-「システムオプションの設定」メニューで、「解析処理の設定」を選択し、「全体解析時にファイル間の解析を行わない」をチェックしてください。全体解析時に単ファイル解析のみ行われ、ファイル間解析は行われませんので、解析時間を短縮できます。
    通常、ファイル間解析は全体の解析時間の1/5(5分の1)の割合を占めますが、ある一定量の資産(100Kステップ程度)を超えると、ファイル間解析の占める割合が高くなります。したがって、ファイル間解析を行わない場合、資産が大きいほど解析時間を短縮できます。

    ファイル間解析は、グローバル変数の定義や関数呼出し処理に関する修正が入った場合にのみ行ってください。グローバル変数の重複定義や関数呼出し時の引数の型の整合性をチェックできます。
     
  • 検査する必要のないインクルードファイルのパスは「標準インクルード」に設定する
    「標準インクルード」として設定されたインクルードファイルは、ほとんどの指摘を検査対象にしていないため、「私用インクルード」に設定した場合よりも解析時間を短縮できます。
    コンパイラ提供のインクルードファイルやライブラリのインクルードファイルなど、検査する必要のないインクルードファイルのパスは、「私用インクルード」ではなく「標準インクルード」として設定してください。インクルードファイルのパスの設定は、「設定」-「プロジェクト固有オプションの設定」メニューの「インクルード設定」で行います。
     
  • プロジェクトを格納するディレクトリをローカルディスクに配置する
    解析結果はプロジェクトディレクトリに作成されます。プロジェクトディレクトリをローカルディスクに配置すると、解析結果がローカルディスクに作成されるため、解析時間を短縮できます。