第11章 memstomp
memstomp は、このような重複がさまざまな標準で許可されていない場合に、重複するメモリー領域で関数呼び出しを特定するために使用できます。表11.1「memstomp によって検査された関数呼び出し」 に一覧表示されているライブラリー関数への呼び出しをインターセプトし、それぞれのメモリーの重複に対して詳細なバックトレースが表示され、問題のデバッグに役立つ詳細なバックトレースが表示されます。
Valgrind と同様に、memstomp
ユーティリティーはアプリケーションを再コンパイルせずに検査します。ただし、このツールよりも高速であるため、便利な代替手段となります。
Red Hat Developer Toolset には、memstomp 0.1.5 が同梱されています。
機能 | 説明 |
---|---|
| n バイトをメモリー領域から別のメモリー領域にコピーし、2 番目のメモリー領域にポインターを返します。 |
| 最大 n バイトを 1 つのメモリー領域から別のメモリー領域にコピーし、特定の文字が見つかったときに停止します。最後に書き込まれたバイトの後にポインターを返すか、指定の文字が見つからない場合は NULL を返します。 |
| n バイトを 1 つのメモリー領域から別のメモリー領域にコピーし、最後に書き込まれたバイトの後にポインターをバイトに戻します。 |
| あるメモリー領域から別のメモリー領域に文字列をコピーし、2 番目の文字列にポインターを返します。 |
| あるメモリー領域から別のメモリー領域に文字列をコピーし、2 番目の文字列の null 終端文字にポインターを返します。 |
| 最大 n 文字を 1 つの文字列から別の文字列にコピーし、2 番目の文字列にポインターを返します。 |
| 最大 n 文字を 1 つの文字列から別の文字列にコピーします。2 番目の文字列の終端 null バイトへのポインターを返します。または、文字列が null 終端ではない場合、最後に書き込まれたバイトの後にバイトへのポインターを返します。 |
| 1 つの文字列を別の文字列に追加し、2 番目の文字列の終了点を上書きし、その最後に新しい文字列を追加します。新しい文字列へのポインターを返します。 |
| 1 つの文字列から別の文字列に最大 n 文字を追加し、2 番目の文字列の終了点を上書きして、その最後に新しい文字列を追加します。新しい文字列へのポインターを返します。 |
|
n ワイド文字を、あるアレイから別のアレイにコピーし、2 番目のアレイにポインターを返す |
|
n ワイド文字を、あるアレイから別のアレイにコピーし、書き込まれたワイド文字にのアレイに続くバイトにポインターを返す |
|
ワイド文字の文字列を、あるアレイから別のアレイにコピーし、2 番目のアレイにポインターを返す |
|
最大 n ワイド文字を、あるアレイから別のアレイにコピーし、2 番目の文字列にポインターを返す |
|
1 つのワイド文字の文字列を別の文字列に追加し、2 番目の文字列の null 終端文字を上書きして、その最後に新しい文字列を追加する、 |
|
最大 n のワイド文字を、あるアレイから別のアレイに追加し、2 つ目のワイド文字の文字列の null 終端文字を上書きして、新しいものを最後に追加する |
11.1. memstomp のインストール
Red Hat Developer Toolset では、memstomp
ユーティリティーは devtoolset-10-memstomp パッケージで提供され、「Red Hat Developer Toolset のインストール」 で説明されているように devtoolset-10-toolchain を使用して自動的にインストールされます。