解析機能

ファイル、クラス、関数、変数、パッケージなどに関連する情報を詳細に表示
Understandは、エンティティ(ソースコードやファイルで宣言または使用されているファイルクラス関数変数パッケージなどの要素)に関連する情報を、情報ブラウザーに表示します。

情報ブラウザー

エンティティフィルターのリストやグラフィカルビューのダイアグラムなどで、エンティティをクリックすると、変数、呼び出し、呼び出し元、グローバル変数といったエンティティに関連する情報が情報ブラウザーに表示されます。
情報ブラウザー内のファイル名や関数名をクリックすれば、ソースコードを表示したり、Calls / Called By (関数の呼び出し / 被呼び出しグラフ)Butterfly (バタフライグラフ)といったダイアグラムで表示することも可能です。

  • エンティティの詳細情報を表示
    たとえば、C/C++の関数の場合、定義場所、フルパス名、関数パラメーター、変数、呼び出し/呼び出し元、使用しているグローバル変数/マクロなどの情報を一覧表示します。
  • 階層化されたリファレンス情報はツリー表示
    呼び出し/呼び出し元しなどの階層構造を持つリファレンス情報は、階層がツリー表示されます。ツリーを展開することで、さらにその先の呼び出し関係などを簡単に確認できます。
  • 関連エンティティやソースコードへワンクリックでジャンプ
    情報ブラウザーに表示されているエンティティ名やリファレンス情報は、ワンクリックで関連エンティティやソースコードにジャンプできます。
  • 戻る・進むボタンでブラウジング
    Webブラウザーのように、戻る/進むボタンで、表示内容の履歴を簡単に追うことができます。
  • 情報ブラウザー内検索
    情報ブラウザー内で文字列の検索が可能です。折りたたまれて表示されていない情報も含めて検索されます。

情報ブラウザー

関数ポインターの解析

C/C++(Strict)モードで、関数ポインターによる関数の呼び出しやポインター変数のアドレス操作など、ポインター経由の依存関係の解析がサポートされました。
これらの依存関係は、Callsグラフなどのグラフィカルビューでも表示できます。

【解析対象のポインター経由の操作(抜粋)】
    • 関数ポインターによる関数の呼び出し
    • 関数ポインターによる関数の呼び出し

    • 関数テーブル(ジャンプテーブル)
    • 関数テーブル(ジャンプテーブル)

    • ポインター変数のアドレス操作
    • ポインター変数のアドレス操作

    • コールバック関数
    • コールバック関数

    • ダブルポインタ
    • ダブルポインター

クラス・構造体のメンバーオブジェクトの解析

C/C++(Strict)モード解析機能では、クラスや構造体のメンバーオブジェクトの解析が可能です。 メンバーオブジェクトの参照情報からメンバーオブジェクトが属している変数を特定し、インスタンスごとに、構造体変数とメンバー変数を関連付けたリファレンス情報が取得できます。 C++オプション [メンバ変数にユニークなエンティティを割り当てる]をオンに指定されている場合に、"構造体変数.構造体のメンバー変数"として連結した情報で解析が可能です。 下図の例では、ソースコード4行目の参照されている構造体のメンバー変数が属している変数f1.b1を辿れることがわかります。

クラス・構造体のメンバーオブジェクトの解析

解析対象言語

  • Ada
  • Objective-C/C++
  • FORTRAN
  • Python

  • Assembly
  • C#
  • Java
  • VHDL

  • C/C++
  • VB.NET
  • Pascal
  • Web (PHP, HTML, CSS, JavaScript, TypeScript)

※ 対象言語によって、利用できる機能が異なります。体験版でお試しください。
※ C/C++、Objective-C/C++、C#、VB.NET、Java、Python、Webが弊社テクニカルサポートの対象です。

ソースコード解析ツール Understandに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
scitools-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。