読者です 読者をやめる 読者になる 読者になる

ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化

CodeDynamics 2016.04 リリース

ローグウェーブの高機能デバッガ(動的解析ツール)CodeDynamicsの新バージョンがリリースされました。

CodeDynamics の新機能 | ローグウェーブ

紹介動画も更新され、この新しいGUIによるデバッグ体験の一端をご覧いただくことができます。その他各種ドキュメントはこちらからご覧いただけます。 新機能ドキュメント一覧リリースノートサポート環境表

CodeDynamicsとは

C/C++対応でGUIベースのソースコード&メモリデバッガです。マルチスレッドのLinuxアプリケーションを完全にコントロールし、プログラムの状態を可視化します。

CodeDynamics は C/C++で書かれた複雑なアプリケーションを実行時に調べ、開発者がバグやメモリ問題、クラッシュの原因を発見し修正することを助けます。CodeDynamics は エンタープライズ規模でのマルチスレッドアプリケーションを念頭に開発されており、実行中のプログラムに対する高い可視性、スレッドの状態に対する高度なコントロールなど、ユニークな見方を提供し分析を助けます。 f:id:RWSJapan:20160513130532p:plain

主な更新内容

Evaluation Pointとバリアポイント

TotalViewとCodeDynamicsでは、通常のデバッガに搭載されているブレークポイント機能の他に、ユニークな機能であるEvaluation Point(評価ブレークポイント)とバリアポイント、ウォッチポイントをまとめてアクションポイントと総称しています。アクションポイントについてスタートガイドに日本語の説明がありますように、コードの修正やコンパイルなしに実行コードを指定してデバッグ対象のアプリケーションの動作を変えることができるものです。今回のリリースではCodeDynamicsのユーザインタフェースでこれらの機能を使用したり表示できるようになりました。

f:id:RWSJapan:20160513131431p:plain

ブレークポイント以外のアクションポイントの設定は、GUIからはオンオフのみ可能で、作成や編集はCLI(コマンドライン)から行ってください。例えば、設定例にありますように、

dbreak 597 -e { printf("The value of result is %d\n", result) };

と設定しますと、597行目に到達したときにresultという整数の値を標準出力します。write/printfデバッグに比べた効率性や柔軟性にご注目ください。コードの値を変えたり条件式を追加したり、様々な使い方が可能ですので、ぜひデバッグの効率化やプログラムの動作の可視化にご活用ください。アクションポイントについての詳細はTotalViewの説明もご覧ください。

CUDAコードのデバッグ

従来CodeDynamicsやTotalViewの新しいGUIではデバッグできなかったCUDAコードが今回のリリースから部分的にデバッグ可能になりました。CPUコードとGPUコードを同時に実行できる、というTotalViewのCUDA関連の便利な機能が一部使用できることになります。具体的にはCUDA用のアプリケーションをロードしてコードを表示し、ブレークポイントの設置やステップ実行、GPUスレッドを負号で表すといった機能が可能になりました。

ReplayEngineでセッション再生時の関数呼び出し

ReplayEngineを使うと、プログラムの実行状態や順序をメモリやファイルに保存し、後からセッションを再生することができます。一方Evaluating Expressionsは、Evaluation PointsやExpression Windowといった機能の総称で、デバッグ時に関数を実行したり変数の状態を変えることができます。この2つの便利な機能はメモリの使い方について互いに衝突します。そのため、たとえば従来はEvaluating Expressionsにおける関数呼び出しに制限がありましたが、これが今回から可能になりました。volatileモード等メモリの使い方にどのような工夫がなされているか、リリースノートTotalViewのドキュメントに詳細な説明がありますので興味のある方はご一読ください。

ソースコード検索アルゴリズムの強化

関数とファイルの検索ビューでの検索アルゴリズムが強化されました。

  • Tips 1: 動画内で紹介があるように、Lookup 検索結果のリストから候補のファイル名や関数名を開く際、シングルクリックで既存のタブを再利用し、ダブルクリックで新しいタブを開きます。目的に応じて使い分けてください。
  • Tips 2: Lookup検索結果一覧の下部にあるチェックボックスをオンにすると、ファイルの絶対パスを表示することができます。

現在CodeDynamicsやTotalViewにはファイルツリーのようなウィンドウがありませんが、こうしたソースコード検索システムをうまく使うことによって開きたいソースファイルにいつでもアクセスすることができます。

プラットフォームの追加

最後に

以上、最新のデバッグ機能にご興味のある方はお気軽にご連絡ください。

また、TotalViewの新バージョンも同時リリースされました。

blog.roguewave.jp

お問い合わせ | ローグウェーブ ローグウェーブ セールスエンジニア 柄澤(からさわ)