hana_shinのLinux技術ブログ読者になるhana_shinのLinux技術ブログLinuxの技術情報を掲載しています。ネットワークをメインに掲載していきます。Valgrindとは?メモリリーク等のバグを検出するツールです。検証環境CentOS版数は以下のとおりです。仮想マシンは最小構成で作成しました。(Core)カーネル版数は以下のとおりです。インストール方法valgrindパッケージをインストールします。valgrindvalgrindの版数を確認します。テストプログラムの作成メモリリークが発生するテストプログラムを作成します。2秒毎にメモリ領域(10byte)を獲得しますが、解放はしません。0;}テストプログラムコンパイルします。コンパイルすると警告が出力されますが、宣言した変数を使用していないだけなので、無視してください。test.c作成したテストプログラムを確認します。実行結果の確認テストプログラムを引数に指定してvalgrindを実行します。./test==1771==適当な時間(sleep関数で指定した2秒以上)が経過したら、Ctrl+Cを押下してvalgrindを終了します。メモリ解放漏れが発生している旨(*)が出力されています。解放したメモリ領域に書き込みをすると、メモリ破壊を引き起こします。free問題と言われています。以下のテストプログラムでは、解放した領域の先頭1バイトに1を書き込んでいます。実行結果の確認テストプログラムを引数に指定してvalgrindを実行します。(test.c:27)==1797==適当な時間(最低2秒以上)が経過したら、Ctrl+Cを押下してvalgrindを終了します。possible"が表示されています。確保したメモリ領域外への書き込みをすると、隣接するメモリ領域を破壊してしまいます。ここでは、このような問題の検出方法を説明します。//確保した領域外への書き込みを行う。実行結果の確認テストプログラムを引数に指定してvalgrindを実行します。(test.c:28)==2100==||適当な時間(最低2秒以上)が経過したら、Ctrl+Cを押下してvalgrindを終了します。possible"が表示されています。私が業務や記事執筆で参考にした書籍を以下のページに記載します。)はてなブログをはじめよう!hana_shinさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。