私にとって、このタグは私が割り当てた大きなUIImagesに関連していました。私はあなたがこれについてより多くの情報を得る方法と、示唆すべき(おそらく)有用なものをいくつか持っています。
あなたが興味を持っているタグは、OSMalloc_tagAlloc()ではなく、vm_allocateなどのflags引数で渡されたものだと思います。 iOS 3.1のリリースノートには、VM計測器に関連して< mach/vm_statistics.h>と< mach/vm_map.h>ヘッダーが記載されています。
このタグは、vm_statistics.hのVM_FLAGS_ALIAS_MASKに続いて#defineのように、vm_allocateフラグパラメータを介して渡されると思います。 (これは、ここでは「エイリアス」と呼ばれています。)つまり、vm_allocateなどを調べてflagsパラメータからタグを抽出するdtraceスクリプトを作成できるはずです。たとえば:
sudo dtrace -n 'fbt:mach_kernel:vm_allocate:entry /pid==12345/ { printf("%d", (arg3 & 0xFF000000) >> 24); }'
あなたが「インストゥルメント」メニューの「...新しいインストゥルメントを構築する」DTraceの楽器を作るとビアのiOSシミュレータに対して実行するために楽器を使用するか、コマンドを使用する使用することができますline dtraceスクリプトを実行し、実行中のアプリケーションに/ pid == 123456/predicateを追加します。
残念ながら、私はこれらの割り当てを見つける正しいプローブを見つけることができませんでした。適切なargN変数を調べると、フラグは常にタグ/ alia部分に0を持つように見えます。例えば、上記のようにfbt:mach_kernel:vm_allocateを試しました。fbt:mach_kernel:mach_vm_allocate、fbt:mach_kernel:vm_map_enterなどおそらくこれらの割り当ては他の手段を使っていますか?私は、カーネルのメモリ割り当てシステムについてあまり知らない。
私はこれらのタグがどこにカーネルに渡されているのか正確にはわかりませんが、これがあなたの追跡に役立つことを願っています。
Hmmm ...「メモリタグ70」は、「エリア51」のiOSに相当します。 –
@GrahamLee:申し訳ありませんが悪いです。それは私の間違いでした。投稿時にはhttp://stackoverflow.com/questions/10025724/nsfilemanager-cant-create-file。ごめんなさい。何も個人:) –