インストールやシステム構成に関する質問  
質問1. 出力されたドキュメントにおいて、変数名や関数名が長い場合に27文字しか表示されません。 戻る
回答1. 次の手順で調整することができます。
../imagix/user/sample.4Ddefaults を ../imagix/user/user.4Ddefaults にコピーして、user.4Ddefaultsの中の設定を変更してください。
初期値は次のようになっています。

# dcgIndentSpace(D3) 4 27 45 62 70 78 86 94 MAX
# dcgIndentSpace(D3a) 4 27 45 62 70 78 86 94 MAX
# dcgIndentSpace(D3b) 4 27 45 62 70 78 86 94 MAX
# dcgIndentSpace(D3bn) 4 27 45 53 61 69 77 MAX
# dcgIndentSpace(D3n) 4 27 45 53 61 69 77 MAX

先頭の"#"を取り、15文字 桁数を増やす場合、次のようになります。
(第2フィールド以降、全て15増やします。)

dcgIndentSpace(D3) 4 42 60 77 85 93 101 119 MAX
dcgIndentSpace(D3a) 4 42 60 77 85 93 101 119 MAX
dcgIndentSpace(D3b) 4 42 60 77 85 93 101 119 MAX
dcgIndentSpace(D3bn) 4 42 60 68 76 84 92 MAX
dcgIndentSpace(D3n) 4 42 60 68 76 84 92 MAX

文字数は、ご希望にあわせて、適宜調整してください。
設定は、起動時に読み込まれるため、修正毎に、Imagixを起動しなおす必要があります。
質問2. FlowChecksレポートにおいて、変数名や関数名が途中で切れてしまい、名前全体が表示されません。 戻る
回答2. user.4Ddefaultsの最後に、次の行を追加してください。

Cソースを解析する場合(Ver 5.x) :
uigLayout(rpt.symbol_width.c) XX

Cソースを解析する場合(Ver 6.x以降) :
uigLayout(rpt.symbol_width.noclass) XX


C++のソースを解析する場合(Ver 5.x) :
uigLayout(rpt.symbol_width.cpp) XX

C++のソースを解析する場合(Ver 6.x以降) :
uigLayout(rpt.symbol_width.class) XX

XXは、文字数を指定します。関数名や変数名の表示に必要な文字数を指定してください。
質問3. HTML形式、RTF形式で出力したフローチャートを印刷した場合に、ソースコード内のコメントに含まれる日本語が文字化けします。 戻る
回答3. バージョン6.2.0以降で、フローチャートの日本語出力をサポートします。
バージョン6.2.0以降をインストールしたあとで、
C:\Program Files\Imagix\user\user.4Ddefaults を作成し、以下の行を追加してください。
vtgPrint(png_ttf_font.lang_16bit) XXXXX.TTF
(XXXXX.TTFには、日本語TrueTypeフォント名を指定してください。TTCファイルには対応しておりません。)
質問4. Imagix を起動しようとすると、次のようなメッセージが表示され、起動することができません。
>[All licenses on (IPアドレス) are currently used. XXX on YYY]
戻る
回答4. YYY というコンピュータ上で XXX というユーザが使用中と表示されております。
YYY での使用を終了すると、クライアントでも利用可能になります。

YYY で使用していないにも関わらず、クライアントで利用できない場合は、YYY で再度、Imagixを実行して、何もしないですぐ終了してみてください。ライセンスが開放されると思います。

開放されない場合は、ライセンスを誤ってチェックアウトしていないか、ご確認ください。チェックアウトされている場合、使用中のマシンのHelp→LicneseメニューにCheck-in Free Floating Licenseと表示されます。そのときは、メニューを選択して、チェックアウトされたライセンスを開放してください。
質問5. どのコンパイラ定義ファイルを使用すればよいかわかりません。 戻る
回答5. C:\Program Files\Imagix\user\cc_cfg の下にあるxxxx_cross.inc がサポートしているクロスコンパイラになります。お使いのコンパイラに合ったものを選んでください。
ご使用中のクロスコンパイラがリストにない場合は、"generic_cross"(一般的なクロスコンパイラ用)を選んでください。
質問6. 解析時にエラーが表示されます。 戻る
回答6. [Project]→[Data Sources]→[Source Files]において、次の点をご確認ください。

ソースファイルのフォルダ情報以外に、PP Flagsにコンパイル時に指定する-Dオプションや-Iオプションを指定するようにしてください。ヘッダファイルのインクルードミスを改善できます。

Comp/Trgtには、ご使用中のクロスコンパイラがリストに見つからないときはgeneric_crossを利用されるのがよいでしょう。
質問7. 試用版でレポートを出力した際、関数名等が5文字置きに"_"に文字化けして表示されます。 戻る
回答7. この現象は、評価用ライセンスをご利用の場合の制限事項です。
各種レポートを、 Imagix で画面に表示する場合は問題なく表示されますが、txt や csv に出力すると、一定間隔で、文字が '_' に置き換わったものになります。
なお、これ以外の機能は、全て製品版と同じ動作をいたします。
質問8. 大規模なプロジェクトを作成した場合に、解析に非常に時間が掛かります。解析ソースプログラムの規模に制約はありますか。また、解析速度を上げることはできますか。 戻る
回答8. 物理的な制約はありませんが、規模が大きくなると画面の切り替えに時間がかかったり、フローチェックレポートが実行できない場合があります。

まず、プロジェクトの分割からご紹介します。

プロジェクトを分割することにより、1つのプロジェクトで管理されるオブジェクトの量が減りますし、ロードされるオブジェクトが減少します。
プロジェクトは、論理的な結合により、再解析無しで結合できるので、必要に応じて、見たいプロジェクトを選択してロードできます。

通常、アプリケーション全体を見たいという状況はあまり多くありません。そこで、サブシステムやディレクトリ単位でプロジェクトを作成し、必要に応じて、プロジェクト連結し、アプリケーション全体のスーパープロジェクトを作成して利用します。

サブプロジェクトを連結し、スーパープロジェクトを作成するには、File→Commandから次のようなコマンドを実行します。

imagix-project スーパープロジェクト プロジェクト1 プロジェクト2....

例)imagix-project c:/temp/super.4D c:/temp/proj1.4D c:/temp/proj2.4D ....


続いて、データ量の削減についてです。

主に、ヘッダファイル内のオブジェクトに関連する操作です。システムのヘッダファイルや、ライブラリのヘッダファイルなど、大規模なコードを見るときは、必要でない場合があります。

これらの中に含まれるオブジェクトのデータを結果ファイルに出力しないようにすることで、データ量を削減することができ、パフォーマンスの向上に寄与する場合があります。

これを利用するには、コンパイラの設定ファイルやAdd Data SourceダイアログのPP Flagでヘッダファイルのパスを指定するときに、"-I"の代わりに"-S"を使って指定します。
質問9. 解析を実行した後、ソースを表示すると、ファイルエディタにおいて左側が赤く表示されている箇所があります。これは何を意味しているのでしょうか。 戻る
回答9. Imagixは、解析エラーが発生しても、リカバリ機能により、解析可能な場所まで、スキップして、解析を再開します。
左側に赤く表示されている箇所は、解析時に解析エラーが発生し、そのブロックがスキップされていることを示します。
エラーが無くなる様に調整してください。
質問10. ソースコードの表示の際に外部エディタを使用するには? 戻る
回答10. 使用するエディタのパス名と行ジャンプのためのコマンドライン・オプションを以下のファイルに登録する必要があります。

C:\Program Files\Imagix\user\user_ed.tcl

定義済みのnotepadのエントリを秀丸エディタに書き換える方法を紹介します。

ファイル名は"$file"、行番号は"$line_num"によって、エディタに引き渡されます。 使用するエディタのコマンドライン・オプションについては、エディタのヘルプをご覧ください。エディタのパス名を指定するときは、"\"の代わりに"/(スラッシュ)"を使用してください。また、パス名に空白文字が含まれる場合は、パス名を二重引用符("")で囲む必要があります。
<修正前>
36 set notepad notepad.exe
  (途中省略)
87 } elseif {[ string equal notepad $editor_name]} {
88 exec "C:\Program Files\K2Editor\K2Editor.exe" $file /j$line_num &
89 return
 
<修正後>
36 set hidemaru "C:/Program Files/Hidemaru/Hidemaru.exe"
  (途中省略)
87 } elseif {[ string equal hidemaru $editor_name]} {
88 exec $hidemaru /j$line_num $file &
89 return

ファイルの修正が終わったら、Imagix4Dを再起動してください。[Tools]→[Options]→[Editor]タブを選択します。 続いて、"Other"を選択して、入力欄に"hidemaru"と入力してください
質問11. 未使用関数、未使用変数を表示させるには? 戻る
回答11. [Reports]→[Variable Flow Checks]→[Unused Variables]を選択することにより、未使用変数を出力することができます。

また、メトリックスツールを使用して未使用関数、未使用変数を確認することができます。

<未使用関数>
[Reports]→[Metrics]→[Function Metrics]を選択します。
[Data]→[Insert]→[Fun In]を選択します。
Fun Inは、呼び出し関数の数で"0"のものが、解析結果から、明示的にソースコード上で呼び出す親がいないことを確認できます。

<未使用変数>
[Reports]→[Metrics]→[Variable Metrics]を選択します。
Functions Usingが"0"のものが明示的にメソッドから代入や参照されていない変数になります。
質問12. Writeのみの変数、Readのみの変数を表示させるには? 戻る
回答12. まず、[Reports]→[Variable Flow Checks]→[Unused Variables]を選択します。
[Display]メニューより、[Show Read Only Variables] または[Show Set Only Variables] を選択してください。
質問13. 複数のタスクから書き込まれている変数を表示させるには? 戻る
回答13. [Reports]→[Task Flow Checks]→[Variables Set in Multiple Tasks]を選択してください。
[Display]メニューで、表示オプションを選択できます。
質問14. File DiagramモードのGraphウインドウにおいて、各シンボルの先頭に表示される、「+」「-」「*」「=」等の記号は何を意味していますか。 戻る
回答14. 表記に使用されている記号は、次の通りです。

* -- global
= -- static
. -- local

+ -- public
- -- private
# -- protected
質問15. ソースコードの数え方について教えてください。
Lines of Source Code と Number of Statements の違い等がわかりません。
戻る
回答15. サンプルコードの数え方を以下に示します。

A Lines in File (File) 14
B Lines of Source Code (File) 10
C Number of Statements (File) 8
D Lines in Function (Function) 13
E Statements in Function (Function) 9
A B C D E
1 1 - - 1 1: int
2 2 2 1 2 2: XXX_YYYY_GetData(void)
3 3 - 2 3 3: {
4 4 3 3 4 4: YYYY_RETURN ercd;
5 5 4 4 5 5 int data;
6 - - 5 - 6:
7 - - 6 - 7: /* comment */
8 6 5 7 6 8: ercd = YYYY_get_data(&data);
9 7 6 8 - 9: #ifdef ENA_ASSERT
10 - - 9 - 10: XXX_ASSERT(ercd == 0);
11 - - 10 - 11: #endif
12 8 7 11 7 12: XXX_DEBUG(1, (" [XXX] data = %d\n", data));
13 9 8 12 8 13: return data;
14 10 - 13 9 14: }

Aは、一般的なファイルの行数、Bは、Aからコメントと空行を抜いたもの、Cは、Bから括弧のみの行({}()[])を削除したものになります。
質問16. "Variable Flow Between Tasks"レポートに、Fn と出力されますが、このnという数字は何を意味していますか。 戻る
回答16. F はフィードバックループを表し、 1 つのタスクでセット (S) し、別のタスクでリード (R) していることを意味します。

xx は単なる追い番で、同じ番号同士が関係していることを示しています。

例えば、次の見方になります。
  Task1 Task2 Task3
var1 S F1 R F1  
var1 が Task1 で S (セット)され、 Task2 で R( リード)されていることを示しています。
  Task1 Task2 Task3
var2   S,R F2 R F2
vat2 が Task2 で S (セット)され、 Task2 と Task3 で R( リード)されていることを示しています。
  Task1 Task2 Task3
var3 S F1.. R F1 R F2
var3 が Task1 で S (セット)され、 Task2 と Task3 で R( リード)されていることを示しています。

ここで、 Fn となっている場合は、同じオブジェクトを使用しているタスクが自分以外にもう 1 つあることを示し、 Fn.. となっている場合は、自分以外に2 つ以上のタスクが関係していることを示しています。
質問17. 解析を実行した後、[Tools]→[Calucration Tree] がグレー表示になっており、選択できません。 戻る
回答17. [Project]→[Data Sources]を選択してください。
ご使用中のデータソースを選択し、Optionタブを選択してください。
[apply all advanced flow check reports option] をチェックしてください。
[Modify Data Source]ボタンを押して、再度、解析をし直します。