welcomeによるPixabayからの画像2021.02.12プログラミングでメモリリークを作りこむと検出するのが厄介です。C++における、動的解析でのCRT系とWin32API系のメモリリークの検知方法について紹介します。Toolによる解析結果まとめサンプルコード以下のサンプルコードを使用します。CRT系のmallocとWin32APIでのHeapAllocを、後始末なく終了しています。Sleepはデータ採取用に仕掛けたもので、結果に影響はしません。実行ファイル名は、test_leak.exeとしています。_CrtDumpMemoryLeaks();}テストコードCRT系の検出コードについてまず、CRT系のリークを検出します。コードの下記部分がポイントです。これらの命令は、Debug版のみ作用します。_CrtDumpMemoryLeaks();}シンボルファイルのダウンロード後々のために、シンボルファイルをダウンロードするように設定しておきます。シンボルサーバーにチェックし、格納フォルダを指定します。C++でデバッガ実行した時の結果を示します。プロセス終了後に下記レポートが出力されており、malloc文でメモリリークしていることを教えてくれます。complete.ただし、HeapAllocの方は教えてくれません。Toolを導入して、HeapAllocのリークを検出してみます。Windows”をインストールします。Kits\10\Debuggers\x64\gflags.exeを、管理者権限で起動します。”image”欄にファイル名(test_leak.exe)を入力して、TABキーをクリックすると、下の項目が選択可能になります。database”他必要そうな項目にチェックを入れて、[適用]ボタンをクリックします。gflags設定gflagsの設定を解除する場合は、すべてのチェックをOFFにした後、[適用]ボタンをクリックしてください。gflagは設定により、アプリ及びOSのパフォーマンスに大きな影響を与える場合があるので注意して使用してください。Detailsを参照してください。Toolをインストールします。Collection”ツールを起動します。Path”をテストモジュールpdbファイル格納フォルダ(%USERPROFILE%\source\repos\test_leak\x64\Debug)を設定しておきます。Leak”を選択し、プロセスを選択します。他の項目はそのまま進みます。Rule”が表示されます。Dump]をクリックします。Analysis”ツールを起動します。path]欄に下記フォルダを登録します。Files\DebugDiag\Logs\フォルダから登録します。Analysis]をクリックします。解析が終了すると、ブラウザが起動し結果が表示されます。中から、自分が作成したファイル名を探すと、HeapAllocの場所を指摘されています。解析結果まとめこういったデバッグ系のツールには得手不得手があるので、複数のツールを組み合わせて使用すると効果的です。DiagはIIS等のメモリリーク以外の調査に活躍します。多段チェックでバグの少ないプログラムに改善していきましょう。C++のメモリリーク検出方法手順の紹介でした。Testの使用方法について、簡単に説明します。20.10にインストールします。AWXがあれば、ビジュアル的にAnsibleの利用が可能になり、大変便利です。開発ConoHaのWordPressで初めての投稿、あるある?6選WordPressに記事をはじめて投稿しましたが、その際に迷ったことをまとめてみました。WordPressのルールだったり、選択したテーマの仕様だったりと、初めての場合は戸惑う場面が多かったですが、多くの先人の情報提供によりやりた...開発Hyper-VでWindbg!Windowsのカーネルデバッグ環境構築アプリケーション開発時にデバッグは必要不可欠ですが、ユーザーモードデバッグでは対処が難しい場合があります。今回は、KDNETモジュールを用いたHyper-V仮想マシンとホストとのカーネルデバッグ環境構築方法を紹介します。5.0が2020/11/10に正式リリースされました。3.0の後継バージョンです。5.0について、簡単に紹介します。....開発Dockerで構築!メールサーバーを5分で何かの調査でちょっとメール送受信を確認したい、ということがあるかと思います。今回は、そんな時に役立つさっとメールサーバーを構築する手順を紹介します。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Studio系2021.02.122021.02.12プロフィールこの記事を書いた人fmtech中学時代からプログラミングしているコンピューター好きです。CISSP「Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。Studio系2021.02.122021.02.12プロフィールこの記事を書いた人fmtech中学時代からプログラミングしているコンピューター好きです。CISSP「Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。defined.")}))})();。