プロファイラー内を指す変数を介して、malloc された領域の使用状況を追跡しようとしています。たとえば、関数 func() 内の次の代入の場合。
uint64_t * dictionary = (uint64_t *) malloc(sizeof(uint64_t)*128);
malloc されたメモリ領域を指す変数名 (上記の例では「辞書」) を把握する必要があります。malloc() を実装して、割り当ての開始アドレスとサイズを記録しました。ただし、変数「辞書」の知識はまだありません。私が考えているのは、関数 func() のスタック フレームを調べて、malloc された型と一致するデータ型を指すローカル ポインター変数を見つけることです。このアプローチでは、malloc() をインストルメント化し、1 フレーム戻って func() に戻り、可能なローカル変数を見つけてから、型によるファジー マッチを行う必要があります。これを実装する他のきちんとした方法があるかどうか疑問に思っています。