Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」

Parallel Inspectorによるメモリエラーとスレッド化エラーの検知

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/09/10 19:20
目次

メモリーエラーの検出

 まずは[ツール]-[Parallel Inspector]-[Inspector Memory Errors]を選択してください。

メニューの選択
メニューの選択

 ダイアログが表示されますので、このダイアログで最後までつまみを下げてから[Run Analyze]ボタンをクリックしてください。

つまみを一番下まで下げ、すべてのメモリエラーを検出
つまみを一番下まで下げ、すべてのメモリエラーを検出

 クリック後、解析処理が始まりますのでしばらくお待ちください。解析が終了したらメモリエラーのイベントログが表示されるので[Interpret Result]をクリックします。

メモリーエラーのイベントログ
メモリーエラーのイベントログ

 するとメモリエラーに関するコードが詳細に表示されます。この詳細なレポートを見ればエラー解決の糸口になります。さらに、Overview画面でソースへ直接移動できるので大変効率よくデバッグを行えます。このサンプルプログラムでも問題箇所が分かれば解決は簡単です。

この問題の場合、Problem列にメモリリークが表示されていますのでメモリの確保と解放が正しく行われていない事が分かります。その事からfreeのプログラムが足りない事が分かりますし、文字の表示がおかしいという論理エラーも移動先のコードをよく読めば 文字数にNull文字の分が考慮されていない(1文字少ない)ことが原因だと直ぐに分かります。

メモリーエラーの詳細画面
メモリーエラーの詳細画面
[Overview]をクリックすると表示される、メモリーエラーのOverview画面
[Overview]をクリックすると表示される、メモリーエラーのOverview画面

  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2009/09/23 06:59 コメント欄にてのご指摘により不備が見つかりましたので、メモリエラーの修正に関する事柄を修正しました。

  • 2009/09/14 20:28 コメント欄にて関数名が間違っているとのご指摘を受けましたのでProducerに訂正しました。

著者プロフィール

  • インドリ(インドリ)

    分析・設計・実装なんでもありのフリーエンジニア。 ブログ「無差別に技術をついばむ鳥(http://indori.blog32.fc2.com/)」の作者です。 アドバイザーをしたり、システム開発したり、情報処理技術を研究したりと色々しています。 座右の銘は温故知新で、新旧関係なく必要だと考えた...

バックナンバー

連載:インテルソフトウェア開発製品による並列化プログラミング
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5