‹ Atlas の力を引き出す

Atlas の力を引き出す(2):Smart Views による対話的なソフトウェア解析

Smart Views は、インデックス済みのコードベースにある制御フロー、データフロー、呼び出し連鎖を、視覚的に調べる方法です。

前回の記事では、Atlas への探求を始め、Atlas でコードベースをインポートしてインデックスを作成する方法を学びました。ここからは、Smart Views を出発点に、Atlas の機能を見ていきます。制御フローを詳しく見る場合も、データの依存関係を解析する場合も、呼び出し階層を調査する場合も、Smart Views は複雑なソフトウェアシステムを直感的かつ視覚的にたどる方法です。

Smart Views とは

Smart Views は、視覚による探索とコードに基づく探索を組み合わせた、Atlas 内の対話的なツールです。これらのビューでは、開発者は次のことができます。

  • コード断片と、その視覚的な表現を直接操作できます。
  • 解析器を実行し、結果をリアルタイムで視覚的に観察できます。
  • コード要素をクリックして関連するフローや関係を調べるなど、対話的な解析を行えます。

Smart Views は、次の解析に最適です。

  • 制御フロー:関数の中で実行がどのように流れるかを理解できます。
  • データフロー:データがシステム内をどのように移動するかを調べられます。
  • 呼び出し連鎖:どの関数が他の関数を呼び出し、どの関数が他の関数から呼び出されるかを調べられます。
  • 型階層とその他:さまざまなプログラムの意味論を調べられます。

既定のビューでは十分でない場合はどうでしょうか。特定のアプリケーションに合わせた解析を実行する、カスタマイズした Smart Views を自分で作成できます。

Smart Views の使い方

Smart Views を使い始める手順は簡単です。

Smart View ウィンドウを開く:

  • 上部のバーにカーソルを合わせ、Atlas メニューから「Open Smart View」を選択します。
  • Eclipse 内に新しい Atlas Smart View ウィンドウが開き、通常は下部にドッキングされます。必要に応じてドラッグして、位置を変えられます。

制御フローを例に、Smart Views の使い方を示します。

Xinu の dskenq.c を開いた Eclipse 上で、関数名 dskenq をクリックする位置を矢印が示し、Control Flow Smart View がその関数の制御フローグラフを表示しています。

Smart View の使用例

  • Smart View ウィンドウで Control Flow Smart View を選択し、選択した関数の制御フローグラフ(CFG)を可視化します。
  • 関数名をクリックすると、選択した関数の CFG が表示されます。

ビューをパイプライン化する:

解析を深めるために、複数の Smart Views をつなげられます。たとえば、次のとおりです。

  • Call Smart View を使って、呼び出し関係を可視化します。
  • コールグラフをピン留めし、個々のノードを選択して、特定の関数の CFG を生成します。
  • ビューをスムーズに切り替えて、全体像を組み立てます。

Smart Views のパイプライン化を詳しく見る

Smart Views の真の力は、複数のビューが連携して動ける点にあります。処理を図で可視化するパイプライン化の例は、次のとおりです。

Atlas のウィンドウが 3 つあり、dskenq を選択した Call Smart View、同じコールグラフを Graph 2 としてピン留めした画面、dskenq の Control Flow Smart View が並んでいます。

Smart Views のパイプライン化

Call Smart View:まず Call Smart View を選択し、関数が他の関数とどのように関わるかを解析します。

コールグラフをピン留めする:コールグラフが生成されたら、別のビューに切り替えても結果が残るように、その結果をピン留めします。

Control Flow Smart View:ピン留めしたコールグラフからノード(例:dswrite)を選択し、その特定の関数の CFG を生成します。

他の関数でも繰り返す:同様に、ピン留めしたビューでそれぞれのノードをクリックして、dskqopt や dskenq などの他の関数を調べます。

各手順は前の手順の上に積み上がり、ソフトウェア解析を層状に、かつ対話的に進める方法になります。

Smart Views が重要な理由

Smart Views によって、開発者は大規模で複雑なコードベースを対話的に解析できます。主な利点は次のとおりです。

  • 効率:コードを手作業で探し回らなくても、関係や依存をすばやく特定できます。
  • 明瞭さ:視覚的な表現によって、入り組んだソフトウェアの振る舞いを理解しやすくなります。

柔軟性:一般的なデバッグから専門的なサイバーセキュリティの作業まで、プロジェクトの具体的な必要に合わせてビューを調整できます。

Atlas Smart Views はソフトウェア解析を一新し、より対話的で、視覚的で、効率的にします。デバッグする場合も、最適化する場合も、セキュリティを確保する場合も、これらのツールは作業の流れを整え、コードへの理解を深めます。

解析を次の段階へ進める準備はできましたか。Smart View を開いて、何を発見できるか見てください。

次:ソフトウェア解析に Atlas Shell を活用する

ご質問、または修正のご希望はありますか?

どのようなご用件ですか?