나를 위해,이 태그는 내가 할당했던 큰 UIImages와 관련이 있습니다. 나는 당신이 이것에 대해 더 많은 정보를 얻을 수있는 방법에 대한 조사를했고, 제안할만한 (아마도) 유용한 것들을 가지고있었습니다.
관심있는 태그는 OSMalloc_tagAlloc()이 아닌 vm_allocate 및 유사 플래그 인수를 통해 전달 된 태그라고 생각합니다. iOS 3.1 릴리스 노트는 VM 계측기와 관련하여 < mach/vm_statistics.h> 및 < mach/vm_map.h> 헤더를 언급합니다.
이 태그는 vm_statistics.h의 VM_FLAGS_ALIAS_MASK 및 #define에 따라 vm_allocate 플래그 매개 변수를 통해 전달됩니다. (이것들은 "별명"이라고합니다.) 이것은 vm_allocate를 검사하고 플래그 매개 변수에서 태그를 추출하는 dtrace 스크립트를 작성할 수 있어야한다는 것을 의미합니다. 예를 들어 :
sudo dtrace -n 'fbt:mach_kernel:vm_allocate:entry /pid==12345/ { printf("%d", (arg3 & 0xFF000000) >> 24); }'
당신은 "악기"메뉴에서 "... 새로운 악기를 구축"는 DTrace를 악기를 만들어를 통해 아이폰 OS 시뮬레이터에 대해 실행하는 악기를 사용하거나 명령을 사용하여 사용할 수 있습니다 -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 등을 시도해 보았습니다. 아마도 이러한 할당은 다른 방법을 통해 진행되고 있을까요? 나는 커널의 메모리 할당 시스템에 대해 많이 모른다.
그래서 이러한 태그가 커널에 전달되는 위치를 정확하게 알 수는 없지만이를 추적하는 데 도움이되기를 바랍니다.
흠 ... "메모리 태그 70"은 "Area 51"의 iOS와 동일 할 수 있습니다. –
@GrahamLee : 죄송합니다. 그것은 내 실수였다. 게시물 http://stackoverflow.com/questions/10025724/nsfilemanager-cant-create-file. 그 일에 대해 미안합니다. 개인적이지 않은 일 :) –