解析機能

メモリリーク発生個所を特定

メモリ消費状況を確認

長時間動作させていると、メモリ不足が原因で動作が遅くなったり動作が不安定になったりすることがあります。
「メモリチャート」でメモリの消費状況を確認した時、メモリ使用量が増加していく傾向が見られる場合、メモリリークが発生している可能性があります。

メモリ消費状況を確認

メモリ解析を実行

メモリ解析機能を実行すると、「確保して解放されていない」など、メモリリークが疑われるメモリ確保処理に関する情報を取得することができます。(例では57カ所が検出されています)
[メモリリークリスト]をクリックすると、検出された情報が一覧表示されます。

補足:
検出数には、次のような正常ケースも含まれます。
・計測開始前に確保され、計測中に解放された
・計測中に確保され、計測終了後に解放された

メモリ解析を実行

メモリリークを検証

メモリリークリストには、発生時刻、命令種別、サイズ、アドレス、プログラム位置、プロセス名称、スレッド名称などの情報が表示され、任意の行を選択することで該当するソースコードを表示させることができます。
メモリ解析サマリのメモリ確保サイズランキングや、プロセス/スレッド名称のフィルタリング機能を利用して、メモリリークの発生個所を特定することができます。

メモリリークを検証

メモリ多重解放発生個所を特定

メモリ消費状況を確認

メモリの多重解放(すでに解放されている領域を再度解放しようとする)が原因で突然システムがダウンしたり動作が不安定になったりすることがあります。
「メモリチャート」でメモリの消費状況を確認してもメモリ使用量が増加していく傾向が見られず、メモリリークが原因ではなさそうな場合、メモリの多重解放が発生している可能性があります。

メモリ消費状況を確認

メモリ解析を実行

メモリ解析機能を実行すると、多重解放が発生した回数を取得することができます。(例では2回検出されています)
[多重解放リスト]をクリックすると、検出された情報が一覧表示されます。

メモリ解析を実行

多重解放を検証

多重解放リストには、メモリ確保/解放に関する関数名、サイズ、プログラム位置、アドレスなどの情報が表示され、任意の行を選択することで該当するソースコードを表示させることができます。

多重解放を検証

システムの可視化

関数実行履歴をグラフィカルにチャート表示

関数実行履歴から関数遷移状態をグラフィカルなチャートで 表示し、各関数の出入口状態を一目で把握できます。

関数実行履歴をグラフィカルにチャート表示

長時間トレース

実行時間を数値化し、大容量のプログラム履歴を記録

プログラムの各関数の出入り口をプログラムカウンターが通過したときに、タイムスタンプを付加しながら 関数実行履歴データとして、大容量データを記録できます。

(1)サンプリング(記録)した時刻とひとつ前からの経過時間
(2)サンプリング(記録)したサンプルの属性
(3)記録データ(メッセージ内容)を表示

実行時間を数値化し、大容量のプログラム履歴を記録

追跡、絞り込み

豊富な検索機能により、素早く不具合箇所を “追跡” “絞り込み”

チャート・ログリストの注目したいスレッド/コア情報を「テーマ」として設定することで、簡単にフィルタ/強調表示することができます。

豊富な検索機能により、素早く不具合箇所を “追跡” “絞り込み”

コア毎に動作を見ることができるマルチコア環境対応

複数コア上で動作するプログラムの実行履歴を表示します。コア毎に動作するプログラムの並列処理を検証することが可能です。

コア毎に動作を見ることができるマルチコア環境対応

特定ファイル内の関数だけを見るグループ別表示機能

「ファイル」、「クラス」、「プロジェクト」単位で関数チャートをグルーピングすることが可能です。複数のモジュール毎の連動が可視化され、解析が容易になります。

特定ファイル内の関数だけを見るグループ別表示機能