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