annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestDebugInfo.java @ 1913:3b2dea75431e

6984311: JSR 292 needs optional bootstrap method parameters Summary: Allow CONSTANT_InvokeDynamic nodes to have any number of extra operands. Reviewed-by: twisti
author jrose
date Sat, 30 Oct 2010 13:08:23 -0700
parents c18cbe5936b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
2 * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 package sun.jvm.hotspot.debugger.win32.coff;
a61af66fc99e Initial load
duke
parents:
diff changeset
26
a61af66fc99e Initial load
duke
parents:
diff changeset
27 public class TestDebugInfo implements DebugVC50SubsectionTypes, DebugVC50SymbolTypes, DebugVC50TypeLeafIndices {
a61af66fc99e Initial load
duke
parents:
diff changeset
28 public static void main(String[] args) {
a61af66fc99e Initial load
duke
parents:
diff changeset
29 if (args.length != 1) {
a61af66fc99e Initial load
duke
parents:
diff changeset
30 System.err.println("usage: java TestParser [file name]");
a61af66fc99e Initial load
duke
parents:
diff changeset
31 System.err.println("File name may be an .exe, .dll or .obj");
a61af66fc99e Initial load
duke
parents:
diff changeset
32 System.exit(1);
a61af66fc99e Initial load
duke
parents:
diff changeset
33 }
a61af66fc99e Initial load
duke
parents:
diff changeset
34
a61af66fc99e Initial load
duke
parents:
diff changeset
35 try {
a61af66fc99e Initial load
duke
parents:
diff changeset
36 COFFFile file = COFFFileParser.getParser().parse(args[0]);
a61af66fc99e Initial load
duke
parents:
diff changeset
37 if (file.isImage()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
38 System.out.println("PE Image detected.");
a61af66fc99e Initial load
duke
parents:
diff changeset
39 } else {
a61af66fc99e Initial load
duke
parents:
diff changeset
40 System.out.println("PE Image NOT detected, assuming object file.");
a61af66fc99e Initial load
duke
parents:
diff changeset
41 }
a61af66fc99e Initial load
duke
parents:
diff changeset
42
a61af66fc99e Initial load
duke
parents:
diff changeset
43 DebugVC50 vc50 = getDebugVC50(file);
a61af66fc99e Initial load
duke
parents:
diff changeset
44 if (vc50 == null) {
a61af66fc99e Initial load
duke
parents:
diff changeset
45 System.out.println("No debug information found.");
a61af66fc99e Initial load
duke
parents:
diff changeset
46 System.exit(1);
a61af66fc99e Initial load
duke
parents:
diff changeset
47 } else {
a61af66fc99e Initial load
duke
parents:
diff changeset
48 System.out.println("Debug information found!");
a61af66fc99e Initial load
duke
parents:
diff changeset
49 }
a61af66fc99e Initial load
duke
parents:
diff changeset
50
a61af66fc99e Initial load
duke
parents:
diff changeset
51 DebugVC50SubsectionDirectory dir = vc50.getSubsectionDirectory();
a61af66fc99e Initial load
duke
parents:
diff changeset
52 for (int i = 0; i < dir.getNumEntries(); i++) {
a61af66fc99e Initial load
duke
parents:
diff changeset
53 DebugVC50Subsection sec = dir.getSubsection(i);
a61af66fc99e Initial load
duke
parents:
diff changeset
54 switch (sec.getSubsectionType()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
55 case SST_MODULE: System.out.println(" SST_MODULE"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
56 case SST_TYPES: System.out.println(" SST_TYPES"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
57 case SST_PUBLIC: System.out.println(" SST_PUBLIC"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
58 case SST_PUBLIC_SYM: System.out.println(" SST_PUBLIC_SYM"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
59 case SST_SYMBOLS: System.out.println(" SST_SYMBOLS"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
60 case SST_ALIGN_SYM: System.out.println(" SST_ALIGN_SYM"); printSymbolTable(((DebugVC50SSAlignSym) sec).getSymbolIterator()); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
61 case SST_SRC_LN_SEG: System.out.println(" SST_SRC_LN_SEG"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
62 case SST_SRC_MODULE: System.out.println(" SST_SRC_MODULE"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
63 case SST_LIBRARIES: System.out.println(" SST_LIBRARIES"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
64 case SST_GLOBAL_SYM: System.out.println(" SST_GLOBAL_SYM"); printSymbolTable(sec); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
65 case SST_GLOBAL_PUB: System.out.println(" SST_GLOBAL_PUB"); printSymbolTable(sec); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
66 case SST_GLOBAL_TYPES: System.out.println(" SST_GLOBAL_TYPES"); printTypeTable(sec); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
67 case SST_MPC: System.out.println(" SST_MPC"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
68 case SST_SEG_MAP: System.out.println(" SST_SEG_MAP"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
69 case SST_SEG_NAME: System.out.println(" SST_SEG_NAME"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
70 case SST_PRE_COMP: System.out.println(" SST_PRE_COMP"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
71 case SST_UNUSED: System.out.println(" SST_UNUSED"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
72 case SST_OFFSET_MAP_16: System.out.println(" SST_OFFSET_MAP_16"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
73 case SST_OFFSET_MAP_32: System.out.println(" SST_OFFSET_MAP_32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
74 case SST_FILE_INDEX: System.out.println(" SST_FILE_INDEX"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
75 case SST_STATIC_SYM: System.out.println(" SST_STATIC_SYM"); printSymbolTable(sec); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
76 default: System.out.println(" (Unknown subsection type " + sec.getSubsectionType() + ")"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
77 }
a61af66fc99e Initial load
duke
parents:
diff changeset
78 }
a61af66fc99e Initial load
duke
parents:
diff changeset
79
a61af66fc99e Initial load
duke
parents:
diff changeset
80 } catch (Exception e) {
a61af66fc99e Initial load
duke
parents:
diff changeset
81 e.printStackTrace();
a61af66fc99e Initial load
duke
parents:
diff changeset
82 }
a61af66fc99e Initial load
duke
parents:
diff changeset
83 }
a61af66fc99e Initial load
duke
parents:
diff changeset
84
a61af66fc99e Initial load
duke
parents:
diff changeset
85 private static DebugVC50 getDebugVC50(COFFFile file) {
a61af66fc99e Initial load
duke
parents:
diff changeset
86 COFFHeader header = file.getHeader();
a61af66fc99e Initial load
duke
parents:
diff changeset
87 OptionalHeader opt = header.getOptionalHeader();
a61af66fc99e Initial load
duke
parents:
diff changeset
88 if (opt == null) {
a61af66fc99e Initial load
duke
parents:
diff changeset
89 System.out.println("Optional header not found.");
a61af66fc99e Initial load
duke
parents:
diff changeset
90 return null;
a61af66fc99e Initial load
duke
parents:
diff changeset
91 }
a61af66fc99e Initial load
duke
parents:
diff changeset
92 OptionalHeaderDataDirectories dd = opt.getDataDirectories();
a61af66fc99e Initial load
duke
parents:
diff changeset
93 if (dd == null) {
a61af66fc99e Initial load
duke
parents:
diff changeset
94 System.out.println("Optional header data directories not found.");
a61af66fc99e Initial load
duke
parents:
diff changeset
95 return null;
a61af66fc99e Initial load
duke
parents:
diff changeset
96 }
a61af66fc99e Initial load
duke
parents:
diff changeset
97 DebugDirectory debug = dd.getDebugDirectory();
a61af66fc99e Initial load
duke
parents:
diff changeset
98 if (debug == null) {
a61af66fc99e Initial load
duke
parents:
diff changeset
99 System.out.println("Debug directory not found.");
a61af66fc99e Initial load
duke
parents:
diff changeset
100 return null;
a61af66fc99e Initial load
duke
parents:
diff changeset
101 }
a61af66fc99e Initial load
duke
parents:
diff changeset
102 for (int i = 0; i < debug.getNumEntries(); i++) {
a61af66fc99e Initial load
duke
parents:
diff changeset
103 DebugDirectoryEntry entry = debug.getEntry(i);
a61af66fc99e Initial load
duke
parents:
diff changeset
104 if (entry.getType() == DebugTypes.IMAGE_DEBUG_TYPE_CODEVIEW) {
a61af66fc99e Initial load
duke
parents:
diff changeset
105 System.out.println("Debug Directory Entry " + i + " has debug type IMAGE_DEBUG_TYPE_CODEVIEW");
a61af66fc99e Initial load
duke
parents:
diff changeset
106 return entry.getDebugVC50();
a61af66fc99e Initial load
duke
parents:
diff changeset
107 }
a61af66fc99e Initial load
duke
parents:
diff changeset
108 }
a61af66fc99e Initial load
duke
parents:
diff changeset
109
a61af66fc99e Initial load
duke
parents:
diff changeset
110 return null;
a61af66fc99e Initial load
duke
parents:
diff changeset
111 }
a61af66fc99e Initial load
duke
parents:
diff changeset
112
a61af66fc99e Initial load
duke
parents:
diff changeset
113 private static void printSymbolTable(DebugVC50Subsection sec) {
a61af66fc99e Initial load
duke
parents:
diff changeset
114 DebugVC50SSSymbolBase sym = (DebugVC50SSSymbolBase) sec;
a61af66fc99e Initial load
duke
parents:
diff changeset
115 DebugVC50SymbolIterator iter = sym.getSymbolIterator();
a61af66fc99e Initial load
duke
parents:
diff changeset
116 printSymbolTable(iter);
a61af66fc99e Initial load
duke
parents:
diff changeset
117 }
a61af66fc99e Initial load
duke
parents:
diff changeset
118
a61af66fc99e Initial load
duke
parents:
diff changeset
119 private static void printSymbolTable(DebugVC50SymbolIterator iter) {
a61af66fc99e Initial load
duke
parents:
diff changeset
120 while (!iter.done()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
121 int type = iter.getType() & 0xFFFF;
a61af66fc99e Initial load
duke
parents:
diff changeset
122 switch (type) {
a61af66fc99e Initial load
duke
parents:
diff changeset
123 case S_COMPILE: System.out.println(" S_COMPILE"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
124 case S_SSEARCH: System.out.println(" S_SSEARCH"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
125 case S_END: System.out.println(" S_END"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
126 case S_SKIP: System.out.println(" S_SKIP"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
127 case S_CVRESERVE: System.out.println(" S_CVRESERVE"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
128 case S_OBJNAME: System.out.println(" S_OBJNAME"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
129 case S_ENDARG: System.out.println(" S_ENDARG"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
130 case S_COBOLUDT: System.out.println(" S_COBOLUDT"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
131 case S_MANYREG: System.out.println(" S_MANYREG"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
132 case S_RETURN: System.out.println(" S_RETURN"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
133 case S_ENTRYTHIS: System.out.println(" S_ENTRYTHIS"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
134 case S_REGISTER: System.out.println(" S_REGISTER"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
135 case S_CONSTANT: System.out.println(" S_CONSTANT"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
136 case S_UDT: System.out.println(" S_UDT"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
137 case S_COBOLUDT2: System.out.println(" S_COBOLUDT2"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
138 case S_MANYREG2: System.out.println(" S_MANYREG2"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
139 case S_BPREL32: System.out.println(" S_BPREL32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
140 case S_LDATA32: System.out.println(" S_LDATA32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
141 case S_GDATA32: System.out.println(" S_GDATA32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
142 case S_PUB32: System.out.println(" S_PUB32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
143 case S_LPROC32: System.out.println(" S_LPROC32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
144 case S_GPROC32: System.out.println(" S_GPROC32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
145 case S_THUNK32: System.out.println(" S_THUNK32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
146 case S_BLOCK32: System.out.println(" S_BLOCK32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
147 case S_WITH32: System.out.println(" S_WITH32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
148 case S_LABEL32: System.out.println(" S_LABEL32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
149 case S_CEXMODEL32: System.out.println(" S_CEXMODEL32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
150 case S_VFTTABLE32: System.out.println(" S_VFTTABLE32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
151 case S_REGREL32: System.out.println(" S_REGREL32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
152 case S_LTHREAD32: System.out.println(" S_LTHREAD32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
153 case S_GTHREAD32: System.out.println(" S_GTHREAD32"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
154 case S_LPROCMIPS: System.out.println(" S_LPROCMIPS"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
155 case S_GPROCMIPS: System.out.println(" S_GPROCMIPS"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
156 case S_PROCREF: System.out.println(" S_PROCREF"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
157 case S_DATAREF: System.out.println(" S_DATAREF"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
158 case S_ALIGN: System.out.println(" S_ALIGN"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
159 default: System.out.println(" (Unknown symbol type " + type + ")"); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
160 }
a61af66fc99e Initial load
duke
parents:
diff changeset
161
a61af66fc99e Initial load
duke
parents:
diff changeset
162 iter.next();
a61af66fc99e Initial load
duke
parents:
diff changeset
163 }
a61af66fc99e Initial load
duke
parents:
diff changeset
164 }
a61af66fc99e Initial load
duke
parents:
diff changeset
165
a61af66fc99e Initial load
duke
parents:
diff changeset
166 private static void printTypeTable(DebugVC50Subsection sec) {
a61af66fc99e Initial load
duke
parents:
diff changeset
167 DebugVC50SSGlobalTypes types = (DebugVC50SSGlobalTypes) sec;
a61af66fc99e Initial load
duke
parents:
diff changeset
168
a61af66fc99e Initial load
duke
parents:
diff changeset
169 DebugVC50TypeIterator iter = types.getTypeIterator();
a61af66fc99e Initial load
duke
parents:
diff changeset
170 while (!iter.done()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
171 System.out.print(" Type string: ");
a61af66fc99e Initial load
duke
parents:
diff changeset
172 while (!iter.typeStringDone()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
173 int leaf = iter.typeStringLeaf() & 0xFFFF;
a61af66fc99e Initial load
duke
parents:
diff changeset
174 switch (leaf) {
a61af66fc99e Initial load
duke
parents:
diff changeset
175 case LF_MODIFIER: System.out.print("LF_MODIFIER "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
176 case LF_POINTER: System.out.print("LF_POINTER "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
177 case LF_ARRAY: System.out.print("LF_ARRAY "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
178 case LF_CLASS: System.out.print("LF_CLASS "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
179 case LF_STRUCTURE: System.out.print("LF_STRUCTURE "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
180 case LF_UNION: System.out.print("LF_UNION "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
181 case LF_ENUM: System.out.print("LF_ENUM "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
182 case LF_PROCEDURE: System.out.print("LF_PROCEDURE "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
183 case LF_MFUNCTION: System.out.print("LF_MFUNCTION "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
184 case LF_VTSHAPE: System.out.print("LF_VTSHAPE "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
185 case LF_COBOL0: System.out.print("LF_COBOL0 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
186 case LF_COBOL1: System.out.print("LF_COBOL1 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
187 case LF_BARRAY: System.out.print("LF_BARRAY "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
188 case LF_LABEL: System.out.print("LF_LABEL "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
189 case LF_NULL: System.out.print("LF_NULL "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
190 case LF_NOTTRAN: System.out.print("LF_NOTTRAN "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
191 case LF_DIMARRAY: System.out.print("LF_DIMARRAY "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
192 case LF_VFTPATH: System.out.print("LF_VFTPATH "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
193 case LF_PRECOMP: System.out.print("LF_PRECOMP "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
194 case LF_ENDPRECOMP: System.out.print("LF_ENDPRECOMP "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
195 case LF_OEM: System.out.print("LF_OEM "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
196 case LF_TYPESERVER: System.out.print("LF_TYPESERVER "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
197 case LF_SKIP: System.out.print("LF_SKIP "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
198 case LF_ARGLIST: System.out.print("LF_ARGLIST "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
199 case LF_DEFARG: System.out.print("LF_DEFARG "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
200 case LF_FIELDLIST: System.out.print("LF_FIELDLIST "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
201 case LF_DERIVED: System.out.print("LF_DERIVED "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
202 case LF_BITFIELD: System.out.print("LF_BITFIELD "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
203 case LF_METHODLIST: System.out.print("LF_METHODLIST "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
204 case LF_DIMCONU: System.out.print("LF_DIMCONU "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
205 case LF_DIMCONLU: System.out.print("LF_DIMCONLU "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
206 case LF_DIMVARU: System.out.print("LF_DIMVARU "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
207 case LF_DIMVARLU: System.out.print("LF_DIMVARLU "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
208 case LF_REFSYM: System.out.print("LF_REFSYM "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
209 case LF_BCLASS: System.out.print("LF_BCLASS "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
210 case LF_VBCLASS: System.out.print("LF_VBCLASS "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
211 case LF_IVBCLASS: System.out.print("LF_IVBCLASS "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
212 case LF_ENUMERATE: System.out.print("LF_ENUMERATE "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
213 case LF_FRIENDFCN: System.out.print("LF_FRIENDFCN "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
214 case LF_INDEX: System.out.print("LF_INDEX "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
215 case LF_MEMBER: System.out.print("LF_MEMBER "); System.out.print(iter.getMemberName() + " "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
216 case LF_STMEMBER: System.out.print("LF_STMEMBER "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
217 case LF_METHOD: System.out.print("LF_METHOD "); System.out.print(iter.getMethodName() + " "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
218 case LF_NESTTYPE: System.out.print("LF_NESTTYPE "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
219 case LF_VFUNCTAB: System.out.print("LF_VFUNCTAB "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
220 case LF_FRIENDCLS: System.out.print("LF_FRIENDCLS "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
221 case LF_ONEMETHOD: System.out.print("LF_ONEMETHOD "); System.out.print(iter.getOneMethodName() + " "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
222 case LF_VFUNCOFF: System.out.print("LF_VFUNCOFF "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
223 case LF_NESTTYPEEX: System.out.print("LF_NESTTYPEEX "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
224 case LF_MEMBERMODIFY: System.out.print("LF_MEMBERMODIFY "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
225 case LF_CHAR: System.out.print("LF_CHAR "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
226 case LF_SHORT: System.out.print("LF_SHORT "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
227 case LF_USHORT: System.out.print("LF_USHORT "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
228 case LF_LONG: System.out.print("LF_LONG "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
229 case LF_ULONG: System.out.print("LF_ULONG "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
230 case LF_REAL32: System.out.print("LF_REAL32 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
231 case LF_REAL64: System.out.print("LF_REAL64 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
232 case LF_REAL80: System.out.print("LF_REAL80 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
233 case LF_REAL128: System.out.print("LF_REAL128 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
234 case LF_QUADWORD: System.out.print("LF_QUADWORD "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
235 case LF_UQUADWORD: System.out.print("LF_UQUADWORD "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
236 case LF_REAL48: System.out.print("LF_REAL48 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
237 case LF_COMPLEX32: System.out.print("LF_COMPLEX32 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
238 case LF_COMPLEX64: System.out.print("LF_COMPLEX64 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
239 case LF_COMPLEX80: System.out.print("LF_COMPLEX80 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
240 case LF_COMPLEX128: System.out.print("LF_COMPLEX128 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
241 case LF_VARSTRING: System.out.print("LF_VARSTRING "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
242 case LF_PAD0: System.out.print("LF_PAD0 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
243 case LF_PAD1: System.out.print("LF_PAD1 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
244 case LF_PAD2: System.out.print("LF_PAD2 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
245 case LF_PAD3: System.out.print("LF_PAD3 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
246 case LF_PAD4: System.out.print("LF_PAD4 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
247 case LF_PAD5: System.out.print("LF_PAD5 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
248 case LF_PAD6: System.out.print("LF_PAD6 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
249 case LF_PAD7: System.out.print("LF_PAD7 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
250 case LF_PAD8: System.out.print("LF_PAD8 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
251 case LF_PAD9: System.out.print("LF_PAD9 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
252 case LF_PAD10: System.out.print("LF_PAD10 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
253 case LF_PAD11: System.out.print("LF_PAD11 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
254 case LF_PAD12: System.out.print("LF_PAD12 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
255 case LF_PAD13: System.out.print("LF_PAD13 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
256 case LF_PAD14: System.out.print("LF_PAD14 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
257 case LF_PAD15: System.out.print("LF_PAD15 "); break;
a61af66fc99e Initial load
duke
parents:
diff changeset
258 default: System.out.print("(Unknown leaf " + leaf + ")");
a61af66fc99e Initial load
duke
parents:
diff changeset
259 }
a61af66fc99e Initial load
duke
parents:
diff changeset
260
a61af66fc99e Initial load
duke
parents:
diff changeset
261 iter.typeStringNext();
a61af66fc99e Initial load
duke
parents:
diff changeset
262 }
a61af66fc99e Initial load
duke
parents:
diff changeset
263
a61af66fc99e Initial load
duke
parents:
diff changeset
264 System.out.println("");
a61af66fc99e Initial load
duke
parents:
diff changeset
265 iter.next();
a61af66fc99e Initial load
duke
parents:
diff changeset
266 }
a61af66fc99e Initial load
duke
parents:
diff changeset
267 }
a61af66fc99e Initial load
duke
parents:
diff changeset
268 }