前回は、独自に定義したプロバイダのプローブをプログラム中に埋め込むことで、関数呼び出しの境界以外における情報採取の方法を説明しました。 今回は、プローブに指定された値を元に、より詳細な情報を採取するための手法について説明します。 なお、本稿で説明する手法は、必ずしも独自プロバイダを使用する場合に限定したものではありませんので、pidプロバイダを使用する場合にも利用可能です。 可変長領域ダンプの採取 まずは、第2回では固定長で行っていたメモリ領域の内容表示を、可変長領域に対応させる方法について説明します。 採取対象の準備 まずはリスト1に示す独自プロバイダuserioを定義するものと仮定します。 リスト1 プロバイダ定義(userio.d) provider userio { probe readin(void* buf, size_t len); probe writeout(void*
![第7回 独自プロバイダの定義[2] | gihyo.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/7726a1c97cf509961bf0fbba28e5f34ddcd5aa48/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2010%2F573_c_c%2B%2B.png)