1 1: mi=0 s=0 e=2 2 2: mi=0 s=5 e=5 3 3: mi=1 s=0 e=2 4 4: mi=1 s=5 e=5 5 5: mi=2 s=0 e=2 6 6: mi=2 s=5 e=5 7 7: mi=3 s=0 e=2 8 8: mi=3 s=4 e=5 9 9: mi=3 s=8 e=9 10 10: mi=3 s=10 e=10 11 11: mi=3 s=11 e=11 12 12: mi=3 s=13 e=16 13 13: mi=3 s=19 e=19 14 14: mi=3 s=20 e=20 15 15: mi=3 s=22 e=25 16 16: mi=3 s=28 e=28 17 17: mi=3 s=29 e=31 18 18: mi=4 s=0 e=1 19 19: mi=4 s=2 e=2 20 20: mi=4 s=5 e=5 21 21: mi=4 s=6 e=6 22 22: mi=4 s=8 e=8 23 23: mi=4 s=10 e=11 24 24: mi=4 s=13 e=13 25 25: mi=4 s=16 e=16 26 26: mi=4 s=17 e=17 27 27: mi=4 s=18 e=19 28 28: mi=4 s=20 e=20 29 29: mi=4 s=22 e=22 30 30: mi=4 s=24 e=25 31 31: mi=4 s=27 e=27 32 32: mi=4 s=30 e=31 33 33: mi=4 s=32 e=33 34 34: mi=4 s=34 e=34 35 35: mi=4 s=36 e=36 36 36: mi=4 s=38 e=39 37 37: mi=4 s=41 e=41 38 38: mi=4 s=44 e=45 39 39: mi=4 s=47 e=47 40 40: mi=4 s=49 e=50 41 41: mi=4 s=52 e=52 42 42: mi=4 s=55 e=56 43 43: mi=4 s=57 e=59 44 44: mi=4 s=61 e=61 45 45: mi=4 s=63 e=64 46 46: mi=4 s=66 e=66 47 47: mi=4 s=69 e=71 48 49method A.<init>():void 50{ 51 .src "tryCatch.java" 52 .line 2 53 .prologue_end 54 .line 2 55 0| const v0, #+1 (0x00000001 | 1.40130e-45) 56 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 57 6| move-object v1, v3 58 .local v1, "this", A 59 7| move-object v2, v1 60 8| invoke-direct {v2}, java.lang.Throwable.<init>():void 61 11| const v0, #+2 (0x00000002 | 2.80260e-45) 62 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 63 17| return-void 64} 65 66method B.<init>():void 67{ 68 .src "tryCatch.java" 69 .line 6 70 .prologue_end 71 .line 6 72 0| const v0, #+3 (0x00000003 | 4.20390e-45) 73 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 74 6| move-object v1, v3 75 .local v1, "this", B 76 7| move-object v2, v1 77 8| invoke-direct {v2}, java.lang.Throwable.<init>():void 78 11| const v0, #+4 (0x00000004 | 5.60519e-45) 79 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 80 17| return-void 81} 82 83method TryCatch.<init>():void 84{ 85 .src "tryCatch.java" 86 .line 10 87 .prologue_end 88 .line 10 89 0| const v0, #+5 (0x00000005 | 7.00649e-45) 90 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 91 6| move-object v1, v3 92 .local v1, "this", TryCatch 93 7| move-object v2, v1 94 8| invoke-direct {v2}, java.lang.Object.<init>():void 95 11| const v0, #+6 (0x00000006 | 8.40779e-45) 96 14| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 97 17| return-void 98} 99 100method TryCatch.foo(int):int 101{ 102 .params "?" 103 .src "tryCatch.java" 104 .line 27 105 .prologue_end 106 .line 27 107 0| const v0, #+7 (0x00000007 | 9.80909e-45) 108 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 109 6| move v1, v5 110 .local v1, "x", int 111 7| move v2, v1 112 8| if-lez v2, Label_4 113 .line 28 114 10| const v0, #+8 (0x00000008 | 1.12104e-44) 115 13| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 116 16| move v2, v1 117 17| packed-switch v2, Label_5 118 .line 31 119 20| const v0, #+9 (0x00000009 | 1.26117e-44) 120 23| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 121 26| const/4 v2, #+1 (0x00000001 | 1.40130e-45) 122 27| move v1, v2 123Label_1: 124 .line 34 125 .end_local v1 126 28| const v0, #+10 (0x0000000a | 1.40130e-44) 127 31| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 128 34| return v1 129Label_2: 130 .line 29 131 .restart_local v1 132 35| const v0, #+11 (0x0000000b | 1.54143e-44) 133 38| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 134 41| new-instance v2, A 135 43| const v0, #+12 (0x0000000c | 1.68156e-44) 136 46| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 137 49| move-object v4, v2 138 50| move-object v2, v4 139 51| move-object v3, v4 140 52| invoke-direct {v3}, A.<init>():void 141 55| const v0, #+13 (0x0000000d | 1.82169e-44) 142 58| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 143 61| throw v2 144Label_3: 145 .line 30 146 62| const v0, #+14 (0x0000000e | 1.96182e-44) 147 65| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 148 68| new-instance v2, B 149 70| const v0, #+15 (0x0000000f | 2.10195e-44) 150 73| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 151 76| move-object v4, v2 152 77| move-object v2, v4 153 78| move-object v3, v4 154 79| invoke-direct {v3}, B.<init>():void 155 82| const v0, #+16 (0x00000010 | 2.24208e-44) 156 85| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 157 88| throw v2 158Label_4: 159 .line 34 160 89| const v0, #+17 (0x00000011 | 2.38221e-44) 161 92| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 162 95| const/4 v2, #+0 (0x00000000 | 0.00000) 163 96| move v1, v2 164 97| goto/16 Label_1 165 99| nop 166Label_5: <aligned> 167 .line 28 168 100| packed-switch-payload 169 1: Label_2 170 2: Label_3 171} 172 173method TryCatch.main(java.lang.String[]):void 174{ 175 .params "?" 176 .src "tryCatch.java" 177 .line 15 178 .prologue_end 179 .line 15 180 0| const v0, #+18 (0x00000012 | 2.52234e-44) 181 3| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 182 6| move-object v1, v7 183 .local v1, "args", java.lang.String[] 184 7| const/4 v4, #+0 (0x00000000 | 0.00000) 185 .try_begin_1 186 8| const v0, #+19 (0x00000013 | 2.66247e-44) 187 11| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 188 14| invoke-static {v4}, TryCatch.foo(int):int 189 .try_end_1 190 catch(B) : Label_3 191 catch(A) : Label_4 192 catch(...) : Label_5 193 17| move-result v4 194 18| const v0, #+20 (0x00000014 | 2.80260e-44) 195 21| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 196Label_1: 197 .line 18 198 .line 22 199 24| const v0, #+21 (0x00000015 | 2.94273e-44) 200 27| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 201 30| sget-object v4, java.lang.System.out 202 32| const v0, #+22 (0x00000016 | 3.08286e-44) 203 35| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 204 38| const-string v5, "finally\n" 205 40| const v0, #+23 (0x00000017 | 3.22299e-44) 206 43| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 207 46| const/4 v6, #+0 (0x00000000 | 0.00000) 208 47| new-array v6, v6, java.lang.Object[] 209 49| const v0, #+24 (0x00000018 | 3.36312e-44) 210 52| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 211 55| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 212 58| move-result-object v4 213 59| const v0, #+25 (0x00000019 | 3.50325e-44) 214 62| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 215Label_2: 216 .line 23 217 .line 24 218 65| const v0, #+26 (0x0000001a | 3.64338e-44) 219 68| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 220 71| return-void 221Label_3: 222 .line 16 223 72| const v0, #+27 (0x0000001b | 3.78351e-44) 224 75| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 225 78| move-exception v4 226 79| move-object v2, v4 227 .try_begin_2 228 .line 17 229 .local v2, "ex", B 230 80| const v0, #+28 (0x0000001c | 3.92364e-44) 231 83| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 232 86| sget-object v4, java.lang.System.out 233 88| const v0, #+29 (0x0000001d | 4.06377e-44) 234 91| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 235 94| const-string v5, "catch: B\n" 236 96| const v0, #+30 (0x0000001e | 4.20390e-44) 237 99| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 238 102| const/4 v6, #+0 (0x00000000 | 0.00000) 239 103| new-array v6, v6, java.lang.Object[] 240 105| const v0, #+31 (0x0000001f | 4.34403e-44) 241 108| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 242 111| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 243 .try_end_2 244 catch(A) : Label_4 245 catch(...) : Label_5 246 114| move-result-object v4 247 115| const v0, #+32 (0x00000020 | 4.48416e-44) 248 118| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 249 121| goto/16 Label_1 250Label_4: 251 .line 19 252 .end_local v2 253 123| const v0, #+33 (0x00000021 | 4.62428e-44) 254 126| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 255 129| move-exception v4 256 130| move-object v2, v4 257 .try_begin_3 258 .line 20 259 .local v2, "ex", A 260 131| const v0, #+34 (0x00000022 | 4.76441e-44) 261 134| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 262 137| sget-object v4, java.lang.System.out 263 139| const v0, #+35 (0x00000023 | 4.90454e-44) 264 142| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 265 145| const-string v5, "catch: A\n" 266 147| const v0, #+36 (0x00000024 | 5.04467e-44) 267 150| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 268 153| const/4 v6, #+0 (0x00000000 | 0.00000) 269 154| new-array v6, v6, java.lang.Object[] 270 156| const v0, #+37 (0x00000025 | 5.18480e-44) 271 159| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 272 162| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 273 .try_end_3 274 catch(...) : Label_5 275 165| move-result-object v4 276 166| const v0, #+38 (0x00000026 | 5.32493e-44) 277 169| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 278 .line 22 279 172| sget-object v4, java.lang.System.out 280 174| const v0, #+39 (0x00000027 | 5.46506e-44) 281 177| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 282 180| const-string v5, "finally\n" 283 182| const v0, #+40 (0x00000028 | 5.60519e-44) 284 185| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 285 188| const/4 v6, #+0 (0x00000000 | 0.00000) 286 189| new-array v6, v6, java.lang.Object[] 287 191| const v0, #+41 (0x00000029 | 5.74532e-44) 288 194| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 289 197| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 290 200| move-result-object v4 291 201| const v0, #+42 (0x0000002a | 5.88545e-44) 292 204| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 293 .line 23 294 207| goto/16 Label_2 295Label_5: 296 .line 22 297 .end_local v2 298 209| const v0, #+43 (0x0000002b | 6.02558e-44) 299 212| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 300 215| move-exception v4 301 216| move-object v3, v4 302 217| sget-object v4, java.lang.System.out 303 219| const v0, #+44 (0x0000002c | 6.16571e-44) 304 222| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 305 225| const-string v5, "finally\n" 306 227| const v0, #+45 (0x0000002d | 6.30584e-44) 307 230| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 308 233| const/4 v6, #+0 (0x00000000 | 0.00000) 309 234| new-array v6, v6, java.lang.Object[] 310 236| const v0, #+46 (0x0000002e | 6.44597e-44) 311 239| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 312 242| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 313 245| move-result-object v4 314 246| const v0, #+47 (0x0000002f | 6.58610e-44) 315 249| invoke-static/range {v0..v0}, CodeCoverage.TraceBasicBlock(int):void 316 252| move-object v4, v3 317 253| throw v4 318} 319