]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/dtrace/scripts/vm_object_ownership.d
xnu-7195.50.7.100.1.tar.gz
[apple/xnu.git] / bsd / dev / dtrace / scripts / vm_object_ownership.d
diff --git a/bsd/dev/dtrace/scripts/vm_object_ownership.d b/bsd/dev/dtrace/scripts/vm_object_ownership.d
new file mode 100644 (file)
index 0000000..93b217a
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/sbin/dtrace -s
+
+vminfo:::object_ownership_change
+{
+       old_owner = (task_t)arg1;
+       if (old_owner == 0) {
+               old_pid = -1;
+               old_name = "(nil)";
+       } else {
+               old_proc = (proc_t)old_owner->bsd_info;
+               old_pid = old_proc->p_pid;
+               old_name = old_proc->p_comm;
+       }
+       new_owner = (task_t)arg4;
+       if (new_owner == 0) {
+               new_pid = -1;
+               new_name = "(nil)";
+       } else {
+               new_proc = (proc_t)new_owner->bsd_info;
+               new_pid = new_proc->p_pid;
+               new_name = new_proc->p_comm;
+       }
+
+       printf("%d[%s] object 0x%p id 0x%x purgeable:%d owner:0x%p (%d[%s]) tag:%d nofootprint:%d -> owner:0x%p (%d[%s]) tag:%d nofootprint:%d",
+              pid, execname, arg0, arg7, ((vm_object_t)arg0)->purgable,
+              old_owner, old_pid, old_name,
+              arg2, arg3,
+              new_owner, new_pid, new_name,
+              arg5, arg6);
+       stack();
+       ustack();
+}