1: mi=0 s=0 e=2 2: mi=0 s=5 e=5 3: mi=1 s=0 e=2 4: mi=1 s=5 e=5 5: mi=2 s=0 e=2 6: mi=2 s=5 e=5 7: mi=3 s=0 e=2 8: mi=3 s=4 e=5 9: mi=3 s=8 e=9 10: mi=3 s=10 e=10 11: mi=3 s=11 e=11 12: mi=3 s=13 e=16 13: mi=3 s=19 e=19 14: mi=3 s=20 e=20 15: mi=3 s=22 e=25 16: mi=3 s=28 e=28 17: mi=3 s=29 e=31 18: mi=4 s=0 e=1 19: mi=4 s=2 e=2 20: mi=4 s=5 e=5 21: mi=4 s=6 e=6 22: mi=4 s=8 e=8 23: mi=4 s=10 e=11 24: mi=4 s=13 e=13 25: mi=4 s=16 e=16 26: mi=4 s=17 e=17 27: mi=4 s=18 e=19 28: mi=4 s=20 e=20 29: mi=4 s=22 e=22 30: mi=4 s=24 e=25 31: mi=4 s=27 e=27 32: mi=4 s=30 e=31 33: mi=4 s=32 e=33 34: mi=4 s=34 e=34 35: mi=4 s=36 e=36 36: mi=4 s=38 e=39 37: mi=4 s=41 e=41 38: mi=4 s=44 e=45 39: mi=4 s=47 e=47 40: mi=4 s=49 e=50 41: mi=4 s=52 e=52 42: mi=4 s=55 e=56 43: mi=4 s=57 e=59 44: mi=4 s=61 e=61 45: mi=4 s=63 e=64 46: mi=4 s=66 e=66 47: mi=4 s=69 e=71 method A.():void { .src "tryCatch.java" .line 2 .prologue_end .line 2 0| const v0, #+1 (0x00000001 | 1.40130e-45) 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 6| move-object v1, v3 .local v1, "this", A 7| move-object v2, v1 8| invoke-direct {v2}, java.lang.Throwable.():void 11| const v0, #+2 (0x00000002 | 2.80260e-45) 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 17| return-void } method B.():void { .src "tryCatch.java" .line 6 .prologue_end .line 6 0| const v0, #+3 (0x00000003 | 4.20390e-45) 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 6| move-object v1, v3 .local v1, "this", B 7| move-object v2, v1 8| invoke-direct {v2}, java.lang.Throwable.():void 11| const v0, #+4 (0x00000004 | 5.60519e-45) 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 17| return-void } method TryCatch.():void { .src "tryCatch.java" .line 10 .prologue_end .line 10 0| const v0, #+5 (0x00000005 | 7.00649e-45) 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 6| move-object v1, v3 .local v1, "this", TryCatch 7| move-object v2, v1 8| invoke-direct {v2}, java.lang.Object.():void 11| const v0, #+6 (0x00000006 | 8.40779e-45) 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 17| return-void } method TryCatch.foo(int):int { .params "?" .src "tryCatch.java" .line 27 .prologue_end .line 27 0| const v0, #+7 (0x00000007 | 9.80909e-45) 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 6| move v1, v5 .local v1, "x", int 7| move v2, v1 8| if-lez v2, Label_4 .line 28 10| const v0, #+8 (0x00000008 | 1.12104e-44) 13| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 16| move v2, v1 17| packed-switch v2, Label_5 .line 31 20| const v0, #+9 (0x00000009 | 1.26117e-44) 23| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 26| const/4 v2, #+1 (0x00000001 | 1.40130e-45) 27| move v1, v2 Label_1: .line 34 .end_local v1 28| const v0, #+10 (0x0000000a | 1.40130e-44) 31| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 34| return v1 Label_2: .line 29 .restart_local v1 35| const v0, #+11 (0x0000000b | 1.54143e-44) 38| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 41| new-instance v2, A 43| const v0, #+12 (0x0000000c | 1.68156e-44) 46| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 49| move-object v4, v2 50| move-object v2, v4 51| move-object v3, v4 52| invoke-direct {v3}, A.():void 55| const v0, #+13 (0x0000000d | 1.82169e-44) 58| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 61| throw v2 Label_3: .line 30 62| const v0, #+14 (0x0000000e | 1.96182e-44) 65| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 68| new-instance v2, B 70| const v0, #+15 (0x0000000f | 2.10195e-44) 73| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 76| move-object v4, v2 77| move-object v2, v4 78| move-object v3, v4 79| invoke-direct {v3}, B.():void 82| const v0, #+16 (0x00000010 | 2.24208e-44) 85| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 88| throw v2 Label_4: .line 34 89| const v0, #+17 (0x00000011 | 2.38221e-44) 92| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 95| const/4 v2, #+0 (0x00000000 | 0.00000) 96| move v1, v2 97| goto/16 Label_1 99| nop Label_5: .line 28 100| packed-switch-payload 1: Label_2 2: Label_3 } method TryCatch.main(java.lang.String[]):void { .params "?" .src "tryCatch.java" .line 15 .prologue_end .line 15 0| const v0, #+18 (0x00000012 | 2.52234e-44) 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 6| move-object v1, v7 .local v1, "args", java.lang.String[] 7| const/4 v4, #+0 (0x00000000 | 0.00000) .try_begin_1 8| const v0, #+19 (0x00000013 | 2.66247e-44) 11| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 14| invoke-static {v4}, TryCatch.foo(int):int .try_end_1 catch(B) : Label_3 catch(A) : Label_4 catch(...) : Label_5 17| move-result v4 18| const v0, #+20 (0x00000014 | 2.80260e-44) 21| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void Label_1: .line 18 .line 22 24| const v0, #+21 (0x00000015 | 2.94273e-44) 27| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 30| sget-object v4, java.lang.System.out 32| const v0, #+22 (0x00000016 | 3.08286e-44) 35| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 38| const-string v5, "finally\n" 40| const v0, #+23 (0x00000017 | 3.22299e-44) 43| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 46| const/4 v6, #+0 (0x00000000 | 0.00000) 47| new-array v6, v6, java.lang.Object[] 49| const v0, #+24 (0x00000018 | 3.36312e-44) 52| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 55| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 58| move-result-object v4 59| const v0, #+25 (0x00000019 | 3.50325e-44) 62| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void Label_2: .line 23 .line 24 65| const v0, #+26 (0x0000001a | 3.64338e-44) 68| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 71| return-void Label_3: .line 16 72| const v0, #+27 (0x0000001b | 3.78351e-44) 75| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 78| move-exception v4 79| move-object v2, v4 .try_begin_2 .line 17 .local v2, "ex", B 80| const v0, #+28 (0x0000001c | 3.92364e-44) 83| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 86| sget-object v4, java.lang.System.out 88| const v0, #+29 (0x0000001d | 4.06377e-44) 91| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 94| const-string v5, "catch: B\n" 96| const v0, #+30 (0x0000001e | 4.20390e-44) 99| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 102| const/4 v6, #+0 (0x00000000 | 0.00000) 103| new-array v6, v6, java.lang.Object[] 105| const v0, #+31 (0x0000001f | 4.34403e-44) 108| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 111| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .try_end_2 catch(A) : Label_4 catch(...) : Label_5 114| move-result-object v4 115| const v0, #+32 (0x00000020 | 4.48416e-44) 118| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 121| goto/16 Label_1 Label_4: .line 19 .end_local v2 123| const v0, #+33 (0x00000021 | 4.62428e-44) 126| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 129| move-exception v4 130| move-object v2, v4 .try_begin_3 .line 20 .local v2, "ex", A 131| const v0, #+34 (0x00000022 | 4.76441e-44) 134| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 137| sget-object v4, java.lang.System.out 139| const v0, #+35 (0x00000023 | 4.90454e-44) 142| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 145| const-string v5, "catch: A\n" 147| const v0, #+36 (0x00000024 | 5.04467e-44) 150| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 153| const/4 v6, #+0 (0x00000000 | 0.00000) 154| new-array v6, v6, java.lang.Object[] 156| const v0, #+37 (0x00000025 | 5.18480e-44) 159| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 162| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream .try_end_3 catch(...) : Label_5 165| move-result-object v4 166| const v0, #+38 (0x00000026 | 5.32493e-44) 169| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void .line 22 172| sget-object v4, java.lang.System.out 174| const v0, #+39 (0x00000027 | 5.46506e-44) 177| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 180| const-string v5, "finally\n" 182| const v0, #+40 (0x00000028 | 5.60519e-44) 185| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 188| const/4 v6, #+0 (0x00000000 | 0.00000) 189| new-array v6, v6, java.lang.Object[] 191| const v0, #+41 (0x00000029 | 5.74532e-44) 194| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 197| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 200| move-result-object v4 201| const v0, #+42 (0x0000002a | 5.88545e-44) 204| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void .line 23 207| goto/16 Label_2 Label_5: .line 22 .end_local v2 209| const v0, #+43 (0x0000002b | 6.02558e-44) 212| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 215| move-exception v4 216| move-object v3, v4 217| sget-object v4, java.lang.System.out 219| const v0, #+44 (0x0000002c | 6.16571e-44) 222| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 225| const-string v5, "finally\n" 227| const v0, #+45 (0x0000002d | 6.30584e-44) 230| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 233| const/4 v6, #+0 (0x00000000 | 0.00000) 234| new-array v6, v6, java.lang.Object[] 236| const v0, #+46 (0x0000002e | 6.44597e-44) 239| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 242| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 245| move-result-object v4 246| const v0, #+47 (0x0000002f | 6.58610e-44) 249| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 252| move-object v4, v3 253| throw v4 }