コール・グラフ パネル


関数間の呼び出し関係をツリー構造の図(コール・グラフ)で表示します。

このパネルで表示対象となる関数/変数の種類は次のとおりです。

-

グローバル関数

-

スタティック関数

-

メンバ関数(C++ソース・ファイルを対象とする場合)【CC-RX】

-

グローバル変数

-

ファイル内スタティック変数

-

関数内スタティック変数

-

クラス変数(C++ソース・ファイルを対象とする場合)【CC-RX】

 

ただし,解析対象外に指定されているファイル内の関数情報/変数情報は表示されません(「1.1.1 解析対象」参照)。

なお,コール・グラフを表示するための操作手順は,「2.4 関数間の呼び出し関係(コール・グラフ)を表示する」を参照してください。

注意 1.

デバッグ・ツールがトレース機能をサポートしていない場合,またはデバッグ・ツールのトレース機能を有効化していない場合,コール・グラフにおいて,動的解析情報(実行回数/リード回数/ライト回数)を表示することはできません。
また,動的解析情報については,「(a) トレース機能」の注意を参照してください。

注意 2.

【CC-RX】
C++ソース・ファイルを対象とする場合は,「3.6 CC-RX(C++ソース・ファイル)を使用する場合について」を参照してください。

備考 1.

プロパティ パネル[設定]タブ上の[全般]カテゴリ内[定義箇所がない関数/変数をコール・グラフの表示対象とする]プロパティの指定を[はい]に変更した場合,ソース・ファイルが存在しない関数/変数をコール・グラフに含めることができます。

備考 2.

パネル・コントロール・エリア ,または[Ctrl]キーを押下しながらマウス・ホイールを前後方に動かすことにより,本パネルの表示を拡大/縮小(10〜109 %)することができます。

図 A.18

コール・グラフ パネル(全体表示)

 

ここでは,次の項目について説明します。

[オープン方法]

-

メイン・ウインドウのツールバーの ボタンのクリック

-

[表示]メニュー→[プログラム解析]→[コール・グラフ]の選択

[各エリアの説明]

(1)

パネル・コントロール・エリア

 

パネルを直接ドラッグすることにより,表示内容のスクロールを許可するか否かを設定します(トグル)。デフォルトではスクロールを許可しません。

なお,スクロールを許可した場合,マウス・カーソルの形状が変化し,コール・グラフ内の関数ボックス変数ボックスをクリックしても,その関数/変数を強調表示(選択状態)することはできません([対象関数名]コンボ・ボックスにも反映されません)。また,関数/変数の情報をポップアップ表示することもできません。

 

コール・グラフのズーム率を変更します。

10〜109 %の範囲の数値を選択することができます(デフォルトでは100 %が指定されます)。

なお,[Ctrl]キーを押下しながらマウス・ホイールを前後方に動かすことによってもズーム率を変更することができます。

 

コール・グラフのズーム率を変更します。

各ボタンを1回クリックすると,ズーム・スライダの値が1つ減少/増加します。

 

コール・グラフのズーム率を自動で変更します。

パネルのサイズに合わせて,コール・グラフの全体サイズを縮小/拡大します。

 

コール・グラフのズーム率をデフォルトの100 %にリセットします。

 

[親関数名]コンボ・ボックス

(コンボ・ボックス左)

コール・グラフの表示対象とする(コール・グラフの先頭となる)親関数をドロップダウン・リストにより選択します注1

デフォルトでは,“main”/“reset”注2,またはそれを含む関数名のうち最初に出現した関数が指定されます(該当しない場合は“空欄”)。

 

[対象関数名]コンボ・ボックス

(コンボ・ボックス右)

コール・グラフ上で強調表示(選択状態)する関数を次のドロップダウン・リストより選択します。

全体表示 :プログラム中に存在するすべての関数名

詳細表示 :現在表示対象となっているすべての関数名

-

[親関数名]コンボ・ボックスで親関数を指定している場合

全体表示 :対象親関数から呼び出されている関数名(子関数/孫関数〜を含む)

詳細表示 :現在表示対象となっているすべての関数名

 

なお,コール・グラフ内の任意の関数ボックスをクリックすることでも該当関数が強調表示(選択状態)され,該当関数名がこのコンボ・ボックスに反映されます( ボタンによりマウスのドラッグによるスクロールを許可している場合を除く)。

 

 

現在選択している関数([対象関数名]コンボ・ボックスで指定している関数)に対する親関数と子関数を表示する詳細表示にコール・グラフを切り替えます(トグル)。

ただし,プログラム実行中は無効となります。

注 1.

【RH850】
選択しているマイクロコントローラがマルチコア対応版の場合では,“PMn”を指定することができます。この場合,該当PMn/PEnで実行される関数のみを対象としてコール・グラフを表示します。

注 2.

選択しているマイクロコントローラにより関数名は異なります。

-

【RH850】【RL78】 :main

-

【RX】 :reset

(2)

コール・グラフ表示エリア

クロスリファレンス情報から取得した関数間の呼び出し関係を示すコール・グラフを表示します。

なお,コール・グラフは, ボタンのクリック(トグル)により,次の2つの表示モードに切り替わります。

 

-

全体表示(デフォルト)

デフォルトでは,“main”/“reset”注1またはそれを含む関数名のうち最初に出現した関数を親関数とみなし,その関数をコール・グラフ内の最左端に配置します([親関数名]コンボ・ボックスに該当親関数名を表示します)。相当する関数名が存在しない場合は,プログラム中どの関数からも呼び出されていない関数(参照回数=0)を親関数とみなし,それらの関数すべてを最左端に配置します([親関数名]コンボ・ボックスは空欄となります)。

続いて,子関数→孫関数→ …,それぞれに相当する関数を左から右方向へ配置することでコール・グラフを表示します(上下の位置関係は,上から下方向へ関数の出現順を意味します)。

なお,[親関数名]コンボ・ボックスで任意の親関数を指定注2した場合では,その関数から呼び出されている関数のみを対象としたコール・グラフを表示します。また,同コンボ・ボックスが空欄の場合は,プログラム中に存在するすべての関数を対象としてコール・グラフを表示します。

注 1.

選択しているマイクロコントローラにより関数名は異なります。

-

【RH850】【RL78】 :main

-

【RX】 :reset

注 2.

【RH850】
選択しているマイクロコントローラがマルチコア対応版で,[親関数名]コンボ・ボックスにおいて“PMn”を指定した場合では,該当PMn/PEnで実行される関数のみを対象としたコール・グラフを表示します。

 

-

詳細表示

現在,[対象関数名]コンボ・ボックスで指定している関数の親関数と子関数についてのコール・ペアを表示します。

対象関数を中心に,左側に親関数を,右側に子関数を配置することでコール・グラフを表示します(上下の位置関係は,上から下方向へ関数の出現順を意味します)。

また,対象関数からアクセスしているグローバル変数/ファイル内スタティック変数/関数内スタティック変数が存在する場合,その変数を対象関数の直下に配置します(変数が複数存在する場合,上下の位置関係は,上から下方向へ変数の出現順を意味します)。

備考

次のいずれかの場合,コール・グラフは全体表示に切り替わります。

-

[親関数名]コンボ・ボックスの指定が変更された場合(ビルド・ツールにおけるビルド/リビルドの実行による結果を含む)

-

ビルド・ツールにおいて,クリーンを実行した場合

図 A.19

コール・グラフ パネル(詳細表示)

 

コール・グラフの構成要素の詳細は次のとおりです。

図 A.20

コール・グラフの構成要素

(a)

関数ボックス

関数をボックス形式で表示します。

各関数ボックスに表示する情報は次のとおりです。

図 A.21

関数ボックスの情報

関数名

対象関数名を示します

定義箇所

対象関数が定義されている箇所を“ファイル名(行数)”で示します。

ただし,定義箇所情報が存在しない場合は,“(定義箇所なし)”を表示します。

属性

対象関数の属性を示します。

-

スタティック関数 : <static>

-

テンプレート関数 : <template>【CC-RX】

-

仮想関数 : <virtual>【CC-RX】

-

純粋仮想関数 : <abstract>【CC-RX】

 

上記以外の場合は空欄となります。

状態

対象関数の現在の実行状態を次の背景色で示します。

-

水色:未実行

-

紫色:実行済

PM情報【RH850】

選択しているマイクロコントローラがマルチコア対応版の場合,対象関数が割り付いているPEを次の影色で示します。

-

灰色 :共通

-

橙色 :PM0/PE0,PM4/PE4

-

赤色 :PM1/PE1

-

緑色 :PM2/PE2

-

青色 :PM3/PE3

【CC-RX】
対象関数がオーバーロードされている場合,またはテンプレート関数の場合は,“()”内に引数の型を列挙します。
また,対象関数がconstメンバ関数,またはvolatileメンバ関数の場合は,関数名の直後に“const”,または“volatile”を表示します。

備考

関数ボックスをダブルクリックすることにより,該当関数が定義されているソース・テキスト箇所へジャンプすることができます(「2.7 定義箇所へジャンプする」参照)。
ただし, ボタンの設定により,マウスのドラッグによるスクロールを許可している場合はこの機能を使用することはできません。この場合は,[対象関数名]コンボ・ボックスにより対象関数を選択したのち,コンテキスト・メニューの[ソースへジャンプ]を選択してください。

(b)

変数ボックス

詳細表示の際に,対象関数からアクセスしているグローバル変数/ファイル内スタティック変数/関数内スタティック変数をボックス形式で表示します。

各変数ボックスに表示する情報は次のとおりです。

図 A.22

変数ボックスの情報

変数名

対象変数名を示します。

なお,対象変数が関数内スタティック変数の場合は,“変数名#関数名”の形式で表示します。

定義箇所

対象変数が定義されている箇所を“ファイル名(行数)”で示します。

ただし,定義箇所情報が存在しない場合は,“(定義箇所なし)”を表示します。

属性

対象変数の属性を示します。

-

スタティック変数 : <static>

-

関数内スタティック変数 : <static local>

上記以外の場合は空欄となります。

参照回数

対象変数を静的に参照している回数を示します。

リード回数, ライト回数

対象変数を動的に参照(R:リード, W:ライト)している回数を示します。

ただし,トレース・データが存在する場合のみ表示します。

なお,プロパティ パネル[設定]タブ上の[全般]カテゴリ内[解析結果を累積する]プロパティにおいて[はい]を選択している場合,プログラム実行ごとの累積による数値を表示します。

状態

対象変数の現在の使用状態を次の背景色で示します。

-

緑色:未使用

-

赤紫:使用済

PM情報【RH850】

 

選択しているマイクロコントローラがマルチコア対応版の場合,対象変数が割り付いているPEを次の影色で示します。

-

灰色 :共通

-

橙色 :PM0/PE0,PM4/PE4

-

赤色 :PM1/PE1

-

緑色 :PM2/PE2

-

青色 :PM3/PE3

備考

変数ボックスをダブルクリックすることにより,該当変数が定義されているソース・テキスト箇所へジャンプすることができます(「2.7 定義箇所へジャンプする」参照)。
ただし, ボタンの設定により,マウスのドラッグによるスクロールを許可している場合はこの機能を使用することはできません。この場合は,スクロールの許可をいったん解除してから操作を行ってください。

(c)

接続線

ある関数から別の関数を静的に呼び出している場合,双方の関数ボックス間に接続線を表示します。

なお,接続線の表示は,静的な関数呼び出しのみを対象とします。動的な関数呼び出しに対応する接続線は表示しません。

各接続線に表示する情報は次のとおりです。

図 A.23

接続線の情報

参照回数

対象関数を静的に呼び出している回数を示します。

実行回数

対象関数を動的に呼び出している回数を“()”内に示します。

ただし,トレース・データが存在する場合のみ表示します。

なお,プロパティ パネル[設定]タブ上の[全般]カテゴリ内[解析結果を累積する]プロパティにおいて[はい]を選択している場合,プログラム実行ごとの累積による数値を表示します。

再帰呼び出し

自分自身を呼び出している関数の場合,それを示す次の接続線と参照回数を表示します。

 

循環呼び出し

たとえば,3つの関数としてA,B,Cがあり,A→B→C→Aと呼び出している場合では,“A→B”と“B→C”についての接続線は表示しますが,“C→A”についての接続線は表示せず,循環していることを示す次の線分のみを表示します。

なお,循環呼び出しとなった関数についての情報は,ポップアップ表示で確認することができます。

 

備考

静的な関数呼び出しがなく動的な関数呼び出しがあった場合では(たとえば,関数ポインタを用いてしか関数呼び出しを行っていない場合など),その情報をポップアップ表示で確認することができます。

(d)

ポップアップ表示

関数ボックス/変数ボックスにマウス・カーソルを重ねることにより,対象関数/変数の情報をポップアップ表示します。

表示形式は次のとおりです。

注意

ボタンの設定により,マウスのドラッグによるスクロールを許可している場合はこの機能を使用することはできません。

-

関数ボックス

関数名: 関数名

場所: ファイル名(行番号)

@ファイルの絶対パス

再帰呼び出し: 参照回数(実行: 実行回数)

循環呼び出し

関数名: 参照回数(実行: 実行回数)

関数名: 参照回数(実行: 実行回数)

動的呼び出し

関数名: 回数

関数名: 回数

関数名

対象関数名を示します

場所

対象関数が定義されている箇所を示します。

ただし,定義箇所情報が存在しない場合は,“(定義箇所なし)”を表示します。

再帰呼び出し

対象関数が再帰呼び出しの場合に表示します。

参照回数 : 再帰呼び出しとなる呼び出し回数

実行回数 : 実行した回数(トレース・データが存在する場合のみ)

循環呼び出し

対象関数から循環呼び出ししている関数が存在する場合に表示します。

該当関数が複数存在する場合は,最大4個まで列挙します。

関数名 : 対象関数から循環呼び出ししている関数名

参照回数 : 循環呼び出しとなる呼び出し回数

実行回数 : 実行した回数(トレース・データが存在する場合のみ)

動的呼び出し

対象関数から静的な関数呼び出しが一度もなく,かつ動的な関数呼び出しが存在する場合に表示します。

該当関数が複数存在する場合は,最大4個まで列挙します。

関数名 : 対象関数から動的呼び出ししている関数名

回数 : 実行した回数

【CC-RX】

-

グローバル関数/スタティック関数の場合
名前空間(グローバル名前空間/無名名前空間を除く)に属する場合は,“名前空間名::関数名”の形式で関数名を表示します。また,対象関数がオーバーロードされている場合,またはテンプレート関数の場合は,関数名に続き“()”内に引数の型を列挙します。

-

メンバ関数の場合
名前空間(グローバル名前空間/無名名前空間を除く)に属する場合は,“名前空間名::クラス名::関数名”の形式で,属さない場合は“クラス名::関数名”の形式で関数名を表示します。
また,対象関数がオーバーロードされている場合,またはテンプレート関数の場合は,関数名に続き“()”内に引数の型を列挙します。
constメンバ関数,またはvolatileメンバ関数の場合は,関数名の直後に“const”,または“volatile”を表示します。


備考

実行回数は,プロパティ パネル[設定]タブ上の[全般]カテゴリ内[解析結果を累積する]プロパティにおいて[はい]を選択している場合,プログラム実行ごとの累積による数値を表示します。

-

変数ボックス

変数名: 変数名

場所: ファイル名(行番号)

@ファイルの絶対パス

変数名

対象変数名を示します

なお,対象変数が関数内スタティック変数の場合は,“関数名#変数名”の形式で表示します。

場所

対象変数が定義されている箇所を示します。

ただし,定義箇所情報が存在しない場合は,“(定義箇所なし)”を表示します。

【CC-RX】

-

グローバル変数/ファイル内スタティック変数の場合
名前空間(グローバル名前空間/無名名前空間を除く)に属する場合は,“名前空間名::変数名”の形式で変数名を表示します。

-

クラス変数の場合
名前空間(グローバル名前空間/無名名前空間を除く)に属する場合は,“名前空間名::クラス名::変数名”の形式で,属さない場合は“クラス名::変数名”の形式で変数名を表示します。

-

関数内スタティック変数の場合
名前空間(グローバル名前空間/無名名前空間を除く)に属する場合は,“名前空間名::関数名#変数名”の形式で,属さない場合は“関数名#変数名”の形式で変数名を表示します。
また,クラス変数の場合は,“クラス名::関数名#変数名”の形式で表示します。

[ツールバー]

ツールバー上の各ボタン,および機能は次のとおりです。

 

最新情報を取得し,表示内容を更新します。

ただし,プログラム実行中は無効となります。

 

プログラムの実行が停止するごとに最新情報を取得し,表示内容を更新します。

ただし,プロパティ パネル[設定]タブ上の[全般]カテゴリ内[プログラム停止時に更新を行う]プロパティにおいて[個別に指定する]以外を指定している場合は無効となります(プロパティ パネルでの設定を反映した状態で固定されます)。

 

コール・グラフ検索 ダイアログをオープンし,現在このパネルに存在する関数/変数を検索します。

[[ファイル]メニュー(コール・グラフ パネル専用部分)]

コール・グラフ パネル専用の[ファイル]メニューの各項目,および機能は次のとおりです。

コール・グラフ・データ を保存

このパネルの内容を前回保存したファイルに保存します(「2.14 解析情報をファイルに保存する」参照)。

なお,起動後に初めてこの項目を選択した場合は,[名前を付けて コール・グラフ・データ を保存...]の選択と同等の動作となります。

名前を付けて コール・グラフ・データ を保存...

このパネルの内容を指定したファイルに保存するために,名前を付けて保存 ダイアログをオープンします(「2.14 解析情報をファイルに保存する」参照)。

[[編集]メニュー(コール・グラフ パネル専用部分)]

コール・グラフ パネル専用の[編集]メニューの各項目,および機能は次のとおりです。

検索...

コール・グラフ検索 ダイアログをオープンし,現在このパネルに存在する関数/変数を検索します。

[コンテキスト・メニュー]

このパネル上において,マウスを右クリックすることにより表示されるコンテキスト・メニューの各項目,および機能は次のとおりです。

ソースへジャンプ

選択している関数/変数が定義されているソース・ファイルをエディタ パネル上にオープンします(「2.7 定義箇所へジャンプする」参照)。

逆アセンブルへジャンプ

選択している関数/変数の開始アドレスに対応する逆アセンブル・データを逆アセンブル パネル(逆アセンブル1)上にオープンします(「2.7 定義箇所へジャンプする」参照)。

ただし,デバッグ・ツールと切断時は無効となります。

メモリへジャンプ

選択している関数/変数関数の開始アドレスに対応するメモリ・リストをメモリ パネル(メモリ1)上にオープンします(「2.7 定義箇所へジャンプする」参照)。

ただし,デバッグ・ツールと切断時は無効となります。

関数/変数一覧へジャンプ

関数一覧 パネル 変数一覧 パネルをオープンし,このパネルで選択している関数/変数を選択状態にします。

詳細表示

選択している関数([対象関数名]コンボ・ボックスで指定している関数)に対する親関数と子関数を表示する詳細表示にコール・グラフを切り替えます。

ただし,プログラム実行中は無効となります。