C.1. dvm_probe_test.d #!/usr/sbin/dtrace -s /* #pragma D option quiet */ dvm$1:::vm-init { printf(" vm-init"); } dvm$1:::vm-death { printf(" vm-death"); } dvm$1:::thread-start { printf(" tid=%d, thread-start: %s ", tid, copyinstr(arg0)); } dvm$1:::thread-end { printf(" tid=%d, thread-end ", tid); } dvm$1:::class-load { printf(" tid=%d, class-load: %s ", tid, copyinstr(arg0)); } dvm$1:::class-unload { printf(" tid=%d, class-unload: %s ", tid, copyinstr(arg0)); } dvm$1:::gc-start { printf(" tid=%d, gc-start ", tid); } dvm$1:::gc-finish { printf(" tid=%d, gc-finish ", tid); } dvm$1:::gc-stats { printf(" tid=%d, gc-stats: used objects: %ld, used object space: %ld ", tid, arg0, arg1); } dvm$1:::object-alloc { printf(" tid=%d, object-alloc: class name: %s, size: %ld ", tid, copyinstr(arg0), arg1); } dvm$1:::object-free { printf(" tid=%d, object-free: class name: %s ", tid, copyinstr(arg0)); } dvm$1:::monitor-contended-enter { printf(" tid=%d, monitor-contended-enter: thread name: %s ", tid, copyinstr(arg0)); } dvm$1:::monitor-contended-entered { printf(" tid=%d, monitor-contended-entered: thread name: %s ", tid, copyinstr(arg0)); } dvm$1:::monitor-wait { printf(" tid=%d, monitor-wait: thread name: %s, time-out: %ld ", tid, copyinstr(arg0), arg1); } dvm$1:::monitor-waited { printf(" tid=%d, monitor-waited: thread name: %s, time-out: %ld ", tid, copyinstr(arg0), arg1); } dvm$1:::method-entry { printf(" tid=%d, method-entry: %s:%s %s ", tid, copyinstr(arg0), copyinstr(arg1), copyinstr(arg2)); } dvm$1:::method-return { printf(" tid=%d, method-return: %s:%s %s ", tid, copyinstr(arg0), copyinstr(arg1), copyinstr(arg2)); } pid$1::exit:entry /execname == "java"/ { printf(" tid=%d, D-script exited: pid=%d \n", tid, pid); exit(0); } |