FAQ検索結果

検索キーワード:

QWindows版QAC/QAC++でメトリックス情報をCSVファイルへ保存するには? QA C8.1.1J以下/QA C++3.0J以下

A

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

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

回答を閉じる

QGUIで作成したQAC/QAC++プロジェクトをコマンドラインで使うには?(Windows版) QA C8.1.1J以下/QA C++3.0J以下

A

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

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

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

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

回答を閉じる

QGUIで作成したパーソナリティをコマンドラインで使うには? QA C8.1.1J以下/QA C++3.0J以下

A

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

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

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

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

回答を閉じる

Qバージョン化ファイル(ディポファイル)を格納するディポとデータベース(メタデータ)の違いはなにですか。

A
ディポ(すなわち、Perforce Helix バージョニングエンジンが管理するファイル共有場所)には、Perforce Helix の管理下にある全ファイルのあらゆるリビジョン情報が含まれています。Peforce Helixはディポ内にあるファイルを大型ハードドライブのようにディレクトリ・ツリー(図1)として編成しています。 このディポ内のファイルをディポファイル、またはバージョン化ファイルと呼びます。
一方、Perforce Helix サーバではデータベースを保守し、チェンジログ、ユーザ権限、どの時点でどのユーザがどのファイルをチェックアウトしているかを追跡します。このPerforce Helix データベースに保存される情報をメタデータと呼びます。図1 メタデータとバージョン化ファイル

回答を閉じる

QImagix4Dソフトウェア(評価版含む)とライセンスサーバは1台のコンピューターにインストールしても問題ありませんか。

A
問題ありません。Imagix4Dとライセンスサーバを1台のコンピューターにインストールしていただけます。

回答を閉じる

QコマンドラインからQACを実行した場合と、 GUIで実行した場合と結果的になにが違うのですか?

A

解析の出力に関しては何も違いはありません。

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

また、GUIのQACを起動せずに、統計図等を見ることができません。 グラフィカルな図を表示するには、必ず QACのメインウィンドウ(GUI)を表示しておく必要があります。 GUIからの操作とコマンドラインでの実行は、解析の表示に関しては何も違いはありません。GUIの解析メニューを選択(クリック)するということは、イコール、コマンド qacを起動することです。

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

回答を閉じる

Qプロジェクトマクロやシステムマクロに文字列を渡すことはできますか?

A

QAC Version4.5.3J以降やQAC++1.5J以降の場合、次のように設定することで、文字列を渡すことができます。

_PRL_STRINGFY(x)=#x
MACRO=_PRL_STRINGFY(string)
(注:_PRL_STRINGFYは任意の文字列が使用できます)

この設定で、ソースコードの中に書かれたMACROは"string"に置換されます。


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

Versionに関係なく使用できるのは、「追加インクルード(あるいは強制インクルード)」で指定する方法です。
次の定義をした解析用のヘッダファイルを作成し、-FIオプションで指定します。

#define MACRO "string"

「追加インクルード(あるいは強制インクルード)」をGUIで設定するには、コンパイラパーソナリティ(以前のバージョンはアナライザパーソナリティ)で行います。

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

回答を閉じる

QQA C/QA C++のGUIプロジェクトに設定されているパーソナリティ・ファイルの内容を参照・編集する方法と参照先パスを変更する方法を教えてください。(Windows版) QA C8.1.1J以下/QA C++3.0J以下

A

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

  • QA C/QA C++のGUIプロジェクトを開きます。
  • 画面左部の「プロジェクト・フォルダ」ツリー内で、フォルダ名をダブルクリックします。
  • 表示された「フォルダ・パラメータ」内に、フォルダに設定されている3種類のパーソナリティの絶対パスが表示されます。
  • 各パーソナリティの右側に表示されているアイコンをクリックすると、パーソナリティ・ファイルの内容を参照・編集することができます。
  • 各パーソナリティの右側に表示されている[ブラウズ...]ボタンをクリックすると、パーソナリティファイルの参照先パスを変更することができます。(入力フィールドの値を直接変更することもできます。)
  • 注意:
      QA C/QA C++では「プロジェクト・フォルダ」ツリー内のフォルダ ごとに異なるパーソナリティ・ファイルの参照先パスを設定でき るようになっています。 このため、あるフォルダのパーソナリティ・ファイルの参照先パスを 変更したとしても、他のフォルダは変更の影響を受けません。
    すべてのフォルダに同じパーソナリティ・ファイルを参照させる 場合は、次の手順で操作してください。

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

    Q静的解析を掛けた後のメトリックスの結果でSTM29(他の関数から呼び出された回数)という項目がありますが、他の関数からコールされているにもかかわらず" 0 "となっている結果があります。なぜですか?

    A
    QAC の解析は、大きくは個々のファイルについての解析と、プロジェクト全体についての解析に分けられます。プロジェクト全体についての解析は、クロスモジュール解析(CMA)と呼びます。STM29(他の関数から呼び出された回数) を計測するにはプロジェクト全体を確認する必要がありますので、STM29 は CMA で計測されます。他の関数からコールされているにもかかわらずSTM29 の項目が" 0 "となっている結果がある場合、以下の2つの原因が考えられます。

    - 想定される原因
    1.クロスモジュール解析(CMA)が実行されていない
    ※CMA は [解析] > [クロスモジュール解析] > [実行] で実施します。
    ※[解析] > [クロスモジュール解析] > [プロジェクトの解析時にCMAを実行] を選択すると、 [解析] > [プロジェクトの解析(CMA付き)] から、個々のファイルから CMA までの解析を一度に実施することができます。

    2.クロスモジュール解析(CMA) の前に個々のファイルについての解析でエラーが発生している

    ※クロスモジュール解析(CMA)については、こちらをご覧ください

    回答を閉じる

    Qチケットベース認証のチケット(MD5ハッシュ値)が更新されるのはいつですか?

    A
    チケットベース認証に利用される、すべてのチケットの有効期間は有限(※1)であり、この有効期間が終了した後はチケットが無効となります。チケットの有効期間が終了後、再度ログインする際にチケット(MD5ハッシュ値)は更新されます。 " p4 logout -a "でログアウトした場合も、再ログイン時にはチケット(MD5ハッシュ値)が更新されます。 Perforce はチケットを環境変数" P4TICKETS "で指定されたファイルに保存します。この環境変数が設定されていない場合、Windowsでは%USERPROFILE%\p4tickets.txt、UNIXとその他のオペレーティングシステムでは$HOME/.p4ticketsにチケットが保存されています。

    ※1 デフォルトでは、チケットは12時間(43200秒)有効です。
    ※2 チケットの延長はこちらをご覧ください。
    ※3 チケットの有効期間の設定はこちらをご覧ください。

    回答を閉じる

    Qチケットの延長はできますか?

    A
    ログイン中にp4 loginを実行すれば、チケットの有効期間を延長できます。ログイン中にp4 loginを実行すると、チケットの有効期間は初期タイムアウト設定値の1/3だけ延長されます。そのため、延長時間は初期タイムアウト設定の最大値に依存します。 

    回答を閉じる

    QEclipseとPerforceを連携することはできますか?

    A
    Perforce Software社はEclipse連携用プラグイン(P4Eclipse)を提供しております。
    お使いのEclipseにP4Eclipseをインストールしていただくことで、EclipseとPerforceを連携することができます。
    P4Eclipseは、Perforceの構成管理システムをEclipseのIDEと密に連携させます。P4Eclipseの詳細な機能につきましては、下記URLをご覧ください。

    - P4Eclipse (Eclipse Plug-in) -
     https://www.perforce.com/product/components/eclipse-plugin

    ※注意事項※
    最新のP4EclipseがサポートするPerforceの対応環境と対応プラットフォームにつきましては、リリースノートをご覧ください。
    - Release Notes for P4Eclipse -
     http://www.perforce.com/perforce/doc.current/user/p4eclipsenotes.txt

    回答を閉じる

    Q"「排他オープン」状態のファイルはチェックアウトできません。"とエラーが出力されました。チェックアウトするためにはどうすればいいですか?

    A
    【原因】
    チェックアウト対象のファイル中に、次の状態のファイルが一つ以上あります。
    上記理由により、排他オープンによるエラーが出力されています。

    - 状態 -
     ファイルタイプ修飾子 "+l" が設定されている、かつ、 別のユーザがチェックアウトしている、もしくは、当該ユーザが別のワークスペースでチェックアウトしている


    【確認方法】
    チェックアウトされているファイルを漏れなく確認するには、" p4 opened "コマンドを用いたコマンドラインによる確認が適しています。 以下にコマンド例を示します。

    - ユーザ(例)
     hela

    - チェックアウト対象(例)
      //depot/dir1/aaa.c
      //depot/dir1/bbb.c
      //depot/dir1/ccc.c
      //depot/dir1/ddd.c

    - コマンド(例)
     p4 opened -a //depot/dir1/....c

    - コマンド結果(例)
    //depot/dir1/aaa.c#8 - edit change 734 (unicode+lS) by bruno@bruno_ws *exclusive*
    //depot/dir1/bbb.c#6 - edit change 734 (unicode+S)  by bruno@bruno_ws
    ※ユーザ "bruno" が、ワークスペース "bruno_ws" で利用しているチェンジリスト "734" において、" aaa.c " の " リビジョン8 "を排他チェックアウトしていることが確認できます。
    ※" bbb.c " の " リビジョン6 "は排他チェックアウトされていないため、今回のエラーには関係しません。


    【対応策】
    コマンド結果の例をもとに、以下に対応策を示します。

    ユーザ "bruno" により、"aaa.c" の "リビジョン8"をサブミットする、もしくは、"aaa.c" の "リビジョン8"を元に戻すことで、ユーザ "hela" による当該ファイルのチェックアウトが可能となります。
     

    回答を閉じる

    Q管理用のレポート(リリース表、現在チェックアウト中のファイル一覧、ユーザOkanoが行ったチェンジの一覧 等)は作成できますか?

    A
    できます。チェンジをサブミットすることによって、「誰が」「いつ」「何を」「どこで」「どのような目的で」という情報をほとんど自動的に記録することができます。また、登録したジョブ、チェンジ、および実際に変更したファイル(リビジョン)はリンク情報を持っていますので、お互いに参照し、検索することができるようになっています。
    具体的に、例えば次のようなレポートを作成することができます。

    ユーザTanakaがサブミットしたチェンジの一覧
    リリース3.00において変更したファイルの一覧と各ファイルにおける変更差分
    ヘッダファイルfoo.hに対して8月1日以降にサブミットされたチェンジの一覧 等
     

    回答を閉じる

    QPerforceユーザはどのように削除できますか?また、どのような情報が一緒に削除されますか?

    A
    Perforceユーザ削除の方法は、コマンドラインによる削除とP4V [管理]ウィンドウ(P4Admin)による削除の2つの方法があります。

    - Perforceユーザ削除の方法 -
    1.コマンドラインによるユーザ削除方法
    2.P4V [管理]ウィンドウ(P4Admin)による削除方法


    1.コマンドラインによるユーザ削除方法
     例:削除ユーザ(mei)
      - コマンド
       p4 user -d mei
      - コマンド結果
       User mei deleted.

    コマンドラインで p4 user -d [-f] xxxx を実行した場合、ユーザと一緒に、自動的に削除される情報はありません。
    ※スーパー権限を持ったユーザで [-f] オプションを指定すると強制的にユーザを削除することができます。


    2.P4V [管理]ウィンドウ(P4Admin)による削除方法

    ① P4Vメニューバー[ツール(T)] - [管理(A)] (図1)を選択します。もしくは、P4Adminプログラム(図2)を直接起動します。





    図1 P4Vメニューバー[ツール(T)] - [管理(A)]




    図2 P4Adminアイコン

    ② [ユーザとグループ]タブ(図3)を選択します。





    図3 管理ウィンドウ[ユーザとグループ]タブ

    ③ 削除対象のユーザを選択し右クリックからコンテキストメニュー(図4)を開き、[ユーザ 'mei' を削除(D)... ] を押下します。












    ④ [ユーザを削除] ウィンドウから、ユーザ削除と一緒に削除される情報を確認します。
    P4V の[管理]ウィンドウ(P4Admin)からユーザを削除する場合は、図5の枠内の情報が一緒に削除されます。それらの情報はすべて、[ユーザを削除]ウィンドウ上に表示されています。(隠れて削除される情報はありません。)











    - 赤枠:当該ユーザが所有するチェンジリスト
     (そのチェンジリストにおいてチェックアウトされているファイルは、元に戻されます)
    - 青枠:当該ユーザが所有するワークスペース
    - 緑枠:当該ユーザに関するパーミッションの情報(オプション)
    ※削除ユーザの作業中チェンジリストにある保留中ファイルを削除する場合は、[ユーザの作業中チェンジリストにある保留中ファイルを削除する(S)] のチェックボックスにチェックを入れてください。

    ⑤ ユーザ削除と一緒に削除される情報が削除しても問題がない場合、[ユーザを削除(D)] ボタンを押下しユーザを削除します。

    - 補足情報 -
    ユーザ削除と同時に、履歴情報などが削除されることはありません。
    しかし、ユーザを削除されると、後々に履歴を確認する際、該当ユーザの実担当者を特定することが困難になる場合があります。また別の実担当者に旧ユーザと同名のユーザを割り当てた場合、履歴情報の追跡が困難になってしまう状況も想定されます。Perforce には、この状況を補助する機能として、スペック・ディポという機能が用意されております。
     

    回答を閉じる

    Q使用しているマシンを変更しました。以前のマシンで作成したワークスペースを新しいマシンに移行する方法はありますか。

    A
    マシンを変更する場合は、以前のマシンのワークスペース配下に同期している ファイルを新しいマシンに移動することで、Perforce Helixサーバからファイルを 再取得することなくワークスペースを移行することができます。 以下に手順を示します。 1. 以前のマシンのワークスペースルート配下に同期しているすべてのファイルを 新しいマシンのワークスペースルートにする予定のディレクトリにコピーします。 2. P4VにてPerforce Helixのワークスペース(オブジェクト)を表示し、 移行対象のワークスペースを右クリックして[ワークスペースを編集]を選択します。 3. ワークスペースの編集画面の[基本]タブにて次の箇所を変更します。 変更対象: [ワークスペース・ルート] 変更後の値: 新しいマシンのワークスペースルートにする予定のディレクトリ 4.ワークスペースの編集画面の[詳細]タブに切り替えて次の箇所を変更します。 変更対象: [ホスト] 変更後の値: 新しいマシンのホスト名 注意事項: 通常は上記の手順でワークスペースを移行することができますが、ファイルシステム レベルで"以前のマシン上のファイル"と"新しいマシン上のファイル"に差異が生じる 可能性もございます。 このため、Perforce Helixは、所有リビジョンの情報が正確にコピーされていること を保証できないという点をご了承下さい。

    回答を閉じる

    Qプリプロセス済みソース・コードを生成するには?

    A
    プリプロセス済みソース・コードを生成するには、以下の操作を行います。
     
    • プリプロセス済みソースを生成したいソース・ファイルを含む、プロジェクト内のフォルダを右クリックし、[フォルダ・パラメータ]を選択します。
    • アナライザ・パーソナリティの[編集]ボタンをクリックします。
    • [解析処理]タブを選択し、[プリプロセス済み出力]オプションと[プリプロセス済みリストにファイル名と行番号を含める]オプションをチェックします。
    • [OK]をクリックして保存し、ダイアログを閉じます。
    • ソース・ファイルを選択し、解析します。
    • 解析したソース・ファイルを右クリックし、[プリプロセス済みソースを表示]を選択します。

    - 補足 -
    アナライザパーソナリティは、テキストエディタから編集することもできます。
    この場合は、アナライザパーソナリティへ以下2行を追記します。

    -ppl+ : [プリプロセス済み出力オプション]
    -ppf+ : [プリプロセス済みリストにファイル名と行番号を含める]

    回答を閉じる

    QQAC/QAC++のパーソナリティ構成ファイルはバージョン間での上位互換性および下位互換性がありますか? QA・C 8.1.1J 以下、QA・C++ 3.0J以下

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

    回答を閉じる

    Qconst enum { ... };という形式の構文は解析できないのでしょうか? QA・C++ の全バージョン

    A
    ISO C++違反の構文であるため解析することができません。理由は次の通りです。

    クラス型、構造体型、共用体型、列挙体型は次の3種類の形式で定義することができます。1. タグのみを定義する形式 enum ENUM_TAG { enumerator1, enumerator2 };2. タグとオブジェクトを同時に定義する形式 enum ENUM_TAG { enumerator1, enumerator2 } enum_object;なお、2番目の形式は次と同等です。 enum ENUM_TAG { enumerator1, enumerator2 }; ENUM_TAG enum_object;3. タグとtypedef識別子を同時に定義する形式 typedef enum ENUM_TAG { enumerator1, enumerator2 } TYPEDEF_ENUM;なお、3番目の形式は次と同等です。 enum ENUM_TAG { enumerator1, enumerator2 }; typedef ENUM_TAG TYPEDEF_ENUM;1番目の形式は、タグを定義しているだけでオブジェクトやtypedef識別子を定義しているわけでは ありません。このため、ISO C++に準拠しているコンパイラでは、クラス型、 構造体型、共用体型、列挙型を表すそれぞれの キーワード class、struct、union、enum の前にオブジェクトを修飾するための キーワードを記述することはできません。
    しかし、ISO C++に準拠していないコンパイラは、1番目の形式と1番目以外の形式を 適切に区別しないので次のような構文を記述できてしまいます。ISO C++違反の構文例1: const enum ENUM_TAG { enumerator1, enumerator2 };ISO C++違反の構文例2: virtual enum ENUM_TAG { enumerator1, enumerator2 };ISO C++違反の構文例3: static enum ENUM_TAG { enumerator1, enumerator2 };QA C++はISO C++に従ってこれらの構文をエラーとして扱います(該当箇所には14番の警告が出力されます)。
    ISO C++に準拠していないコンパイラであっても1番目の形式では、キーワード class、struct、union、enum の前にオブジェクトを修飾するためのキーワードを記述した場合としなかった場合とで文法的な意味は変わらないはずなので、恐れ入りますが、ソースコード側を修正して解析できるようにしてください。

    回答を閉じる

    Qsizeof intという形式の構文は解析できないのでしょうか? QA・C++ の全バージョン

    A
    ISO C++違反の構文であるため解析することができません。理由は次の通りです。

    sizeof演算子は次の3種類の形式で使用することができます。1. 括弧'()'を使ってオペランドに型名を与える形式 size_t size; size = sizeof(int);2. 括弧'()'を使ってオペランドにオブジェクト名を与える形式 int obj; size_t size; size = sizeof(obj);3. 括弧'()'を使わずにオペランドにオブジェクト名を与える形式 int obj; size_t size; size = sizeof obj;しかし、3番目の形式と似ていますが、次の形式は使用することができません。4. 括弧'()'を使わずにオペランドに型名を与える形式 int obj; size_t size; size = sizeof int;しかし、ISO C++に準拠していないコンパイラは、3番目の形式と4番目の形式を 適切に区別しないので4番目の形式の構文を記述できてしまいます。
    QA C++はISO C++に従ってこの構文をエラーとして扱います(該当箇所には14番の警告が出力されます)。
    ISO C++に準拠していないコンパイラであっても4番目の形式では、括弧'()'を記述しなかった場合と記述しなかった場合とで文法的な意味は変わらないので、恐れ入りますが、ソースコード側を修正して解析できるようにしてください。

    回答を閉じる

    FAQ一覧へ戻る