1Following are examples of j_classflow.d. 2 3This watches Java method entries and returns from all Java processes on the 4system with hotspot provider support (1.6.0) and the flag 5"+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile 6 7Here we can see it run on Code/Java/Func_abc. 8 9# j_classflow.d Func_abc 10 C PID TIME(us) -- CLASS.METHOD 11 0 311425 4789778117827 -> Func_abc.main 12 0 311425 4789778117844 -> Func_abc.func_a 13 0 311425 4789779120071 -> Func_abc.func_b 14 0 311425 4789780130070 -> Func_abc.func_c 15 0 311425 4789781140067 <- Func_abc.func_c 16 0 311425 4789781140079 <- Func_abc.func_b 17 0 311425 4789781140087 <- Func_abc.func_a 18 0 311425 4789781140095 <- Func_abc.main 19^C 20 21The first column, C gives us the CPU ID. 22 23The second column, TIME(us), gives us the time since boot in microseconds. 24 25The third column, PID gives us the Process ID. 26 27The fourth column, CLASS.METHOD gives us the Java class and method name. 28 29We can see that Func_abc.main called Func.abc.func_a, which in turn 30called Func_abc.funcb etc. 31 32Here we can see an example of running it on java/io/BufferedOutputStream 33 34# j_classflow.d java/io/BufferedOutputStream 35 C PID TIME(us) -- CLASS.METHOD 36 0 311461 4790094765413 -> java/io/BufferedOutputStream.<init> 37 0 311461 4790094765459 <- java/io/BufferedOutputStream.<init> 38 0 311461 4790094779559 -> java/io/BufferedOutputStream.<init> 39 0 311461 4790094779595 <- java/io/BufferedOutputStream.<init> 40 0 311461 4790094965883 -> java/io/BufferedOutputStream.write 41 0 311461 4790094965913 <- java/io/BufferedOutputStream.write 42 0 311461 4790094965926 -> java/io/BufferedOutputStream.flush 43 0 311461 4790094965936 -> java/io/BufferedOutputStream.flushBuffer 44 0 311461 4790094966279 <- java/io/BufferedOutputStream.flushBuffer 45 0 311461 4790094966293 <- java/io/BufferedOutputStream.flush 46 0 311461 4790094966588 -> java/io/BufferedOutputStream.write 47 0 311461 4790094966602 <- java/io/BufferedOutputStream.write 48 0 311461 4790094966610 -> java/io/BufferedOutputStream.flush 49 0 311461 4790094966618 -> java/io/BufferedOutputStream.flushBuffer 50 0 311461 4790094966778 <- java/io/BufferedOutputStream.flushBuffer 51 0 311461 4790094966787 <- java/io/BufferedOutputStream.flush 52 0 311461 4790094966811 -> java/io/BufferedOutputStream.flush 53 0 311461 4790094966819 -> java/io/BufferedOutputStream.flushBuffer 54 0 311461 4790094966828 <- java/io/BufferedOutputStream.flushBuffer 55 0 311461 4790094966836 <- java/io/BufferedOutputStream.flush 56 0 311461 4790095970345 -> java/io/BufferedOutputStream.write 57 0 311461 4790095970372 <- java/io/BufferedOutputStream.write 58 0 311461 4790095970382 -> java/io/BufferedOutputStream.flush 59 0 311461 4790095970390 -> java/io/BufferedOutputStream.flushBuffer 60 0 311461 4790095970453 <- java/io/BufferedOutputStream.flushBuffer 61 0 311461 4790095970462 <- java/io/BufferedOutputStream.flush 62 0 311461 4790095970737 -> java/io/BufferedOutputStream.write 63 0 311461 4790095970751 <- java/io/BufferedOutputStream.write 64 0 311461 4790095970759 -> java/io/BufferedOutputStream.flush 65 0 311461 4790095970766 -> java/io/BufferedOutputStream.flushBuffer 66 0 311461 4790095970795 <- java/io/BufferedOutputStream.flushBuffer 67 0 311461 4790095970804 <- java/io/BufferedOutputStream.flush 68 0 311461 4790095970828 -> java/io/BufferedOutputStream.flush 69 0 311461 4790095970836 -> java/io/BufferedOutputStream.flushBuffer 70 0 311461 4790095970844 <- java/io/BufferedOutputStream.flushBuffer 71 0 311461 4790095970853 <- java/io/BufferedOutputStream.flush 72 0 311461 4790096980348 -> java/io/BufferedOutputStream.write 73 0 311461 4790096980373 <- java/io/BufferedOutputStream.write 74 0 311461 4790096980383 -> java/io/BufferedOutputStream.flush 75 0 311461 4790096980391 -> java/io/BufferedOutputStream.flushBuffer 76 0 311461 4790096980452 <- java/io/BufferedOutputStream.flushBuffer 77 0 311461 4790096980460 <- java/io/BufferedOutputStream.flush 78 0 311461 4790096980735 -> java/io/BufferedOutputStream.write 79 0 311461 4790096980749 <- java/io/BufferedOutputStream.write 80 0 311461 4790096980757 -> java/io/BufferedOutputStream.flush 81 0 311461 4790096980765 -> java/io/BufferedOutputStream.flushBuffer 82 0 311461 4790096980794 <- java/io/BufferedOutputStream.flushBuffer 83 0 311461 4790096980803 <- java/io/BufferedOutputStream.flush 84 0 311461 4790096980826 -> java/io/BufferedOutputStream.flush 85 0 311461 4790096980834 -> java/io/BufferedOutputStream.flushBuffer 86 0 311461 4790096980843 <- java/io/BufferedOutputStream.flushBuffer 87 0 311461 4790096980851 <- java/io/BufferedOutputStream.flush 88 89 90