xref: /xnu-8020.140.41/bsd/dev/dtrace/scripts/vm_object_ownership.d (revision 27b03b360a988dfd3dfdf34262bb0042026747cc)
1 #!/usr/sbin/dtrace -s
2 
3 vminfo:::object_ownership_change
4 {
5 	old_owner = (task_t)arg1;
6 	if (old_owner == 0) {
7 		old_pid = -1;
8 		old_name = "(nil)";
9 	} else {
10 		old_proc = xlate <psinfo_t *>((proc_t)old_owner->bsd_info);
11 		old_pid = old_proc->pr_pid;
12 		old_name = old_proc->pr_fname;
13 	}
14 	new_owner = (task_t)arg4;
15 	if (new_owner == 0) {
16 		new_pid = -1;
17 		new_name = "(nil)";
18 	} else {
19 		new_proc = xlate <psinfo_t *>((proc_t)new_owner->bsd_info);
20 		new_pid = new_proc->pr_pid;
21 		new_name = new_proc->pr_fname;
22 	}
23 
24 	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",
25 	       pid, execname, arg0, arg7, ((vm_object_t)arg0)->purgable,
26 	       old_owner, old_pid, old_name,
27 	       arg2, arg3,
28 	       new_owner, new_pid, new_name,
29 	       arg5, arg6);
30 	stack();
31 	ustack();
32 }
33