wolfTips: ヒープ使用量の計測オプション

メモリ使用状況が気になりますか?

wolfSSLには、多くのオプションスイッチがあります。その中には、事前に知っておくとその後のデバック効率が向上するものがあります。
今回はデバック時に有効なメモリ使用状況に関するオプションを紹介します。

使用方法は、configure にオプション “–enable-trackmemory” を指定し wolfSSL をビルドします。
$./configure --enable-trackmemory

マクロ定義を使用する場合は、WOLFSSL_TRACK_MEMORY を定義します。

計測したいソースコードの先頭あたりに”wolfssl/wolfcrypt/mem_track.h”をインクルードしておきます。

後は、計測開始箇所で
InitMemoryTracker()
を呼び出し、メモリ使用状況を確認したい箇所で
ShowMemoryTracker()
を呼び出します。ShowMemoryTracker()は複数個所で呼び出しを行って構いません。メモリ使用状況を逐次確認するということも可能です。追加情報とし、これらの関数の呼び出しは、wolSSL_Init()及びwolfSSL_Cleanup()でそれぞれ自動的に行われます。ただし、これらのAPI呼び出しはmem_track.hをインクルードした一つのソースファイル内で行ってください。

出力例は下記の通りです。

current Bytes に注目することでメモリリークの検出にも使用できます。

例として wolfSSL に同封されるtestwolfcrypt プログラムを “–enable-trackmemory” を指定しビルド・実行してみて下さい。

$ ./wolfcrypt/test/testwolfcrypt
error test passed!
base64 test passed!
asn test passed!
MD5 test passed!
……………
mutex test passed!
memcb test passed!
Test complete
total Allocs = 1445
total Deallocs = 1445
total Bytes = 4321945
peak Bytes = 71296
current Bytes = 0

“current Bytes = 0”。もちろんメモリリークしていません。

今回紹介したように wolfSSL ではアプリケーションのデバック作業効率を向上できるオプションがあります。個別環境でのデバック方法、特定の問題に対するデバックなどご質問ありましたらお気軽にsupport@wolfssl.com までお知らせください。