‹ 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を活用する

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

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