Mercurial > hg > graal-jvmci-8
annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TypeIndicators.java @ 2072:d6cd0d55d0b5
6987812: 2/3 SAJDI: "gHotSpotVMTypes was not initialized properly in the remote process"
Summary: Change ExportDirectoryTableImpl to return the 'Export RVA' field without modification. Read 'Base Of Data' field in optional header when PE32 format COFF file is read. Refine search for dbgeng.dll and dbghelp.dll. Other cleanups.
Reviewed-by: swamyv, poonam
author | dcubed |
---|---|
date | Thu, 23 Dec 2010 07:58:35 -0800 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
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 | 22 * |
23 */ | |
24 | |
25 package sun.jvm.hotspot.debugger.win32.coff; | |
26 | |
27 /** Enumerates the types of COFF object file relocations for all | |
28 currently-supported processors. (Some of the descriptions are | |
29 taken directly from Microsoft's documentation and are copyrighted | |
30 by Microsoft.) */ | |
31 | |
32 public interface TypeIndicators { | |
33 // | |
34 // I386 processors | |
35 // | |
36 | |
37 /** This relocation is ignored. */ | |
38 public static final short IMAGE_REL_I386_ABSOLUTE = 0x0000; | |
39 /** Not supported. */ | |
40 public static final short IMAGE_REL_I386_DIR16 = (short) 0x0001; | |
41 /** Not supported. */ | |
42 public static final short IMAGE_REL_I386_REL16 = (short) 0x0002; | |
43 /** The target?s 32-bit virtual address. */ | |
44 public static final short IMAGE_REL_I386_DIR32 = (short) 0x0006; | |
45 /** The target?s 32-bit relative virtual address. */ | |
46 public static final short IMAGE_REL_I386_DIR32NB = (short) 0x0007; | |
47 /** Not supported. */ | |
48 public static final short IMAGE_REL_I386_SEG12 = (short) 0x0009; | |
49 /** The 16-bit-section index of the section containing the | |
50 target. This is used to support debugging information. */ | |
51 public static final short IMAGE_REL_I386_SECTION = (short) 0x000A; | |
52 /** The 32-bit offset of the target from the beginning of its | |
53 section. This is used to support debugging information as well | |
54 as static thread local storage. */ | |
55 public static final short IMAGE_REL_I386_SECREL = (short) 0x000B; | |
56 /** The 32-bit relative displacement to the target. This supports | |
57 the x86 relative branch and call instructions. */ | |
58 public static final short IMAGE_REL_I386_REL32 = (short) 0x0014; | |
59 | |
60 // | |
61 // MIPS processors | |
62 // | |
63 | |
64 /** This relocation is ignored. */ | |
65 public static final short IMAGE_REL_MIPS_ABSOLUTE = (short) 0x0000; | |
66 /** The high 16 bits of the target's 32-bit virtual address. */ | |
67 public static final short IMAGE_REL_MIPS_REFHALF = (short) 0x0001; | |
68 /** The target's 32-bit virtual address. */ | |
69 public static final short IMAGE_REL_MIPS_REFWORD = (short) 0x0002; | |
70 /** The low 26 bits of the target's virtual address. This | |
71 supports the MIPS J and JAL instructions. */ | |
72 public static final short IMAGE_REL_MIPS_JMPADDR = (short) 0x0003; | |
73 /** The high 16 bits of the target's 32-bit virtual address. Used | |
74 for the first instruction in a two-instruction sequence that | |
75 loads a full address. This relocation must be immediately | |
76 followed by a PAIR relocations whose SymbolTableIndex contains a | |
77 signed 16-bit displacement which is added to the upper 16 bits | |
78 taken from the location being relocated. */ | |
79 public static final short IMAGE_REL_MIPS_REFHI = (short) 0x0004; | |
80 /** The low 16 bits of the target's virtual address. */ | |
81 public static final short IMAGE_REL_MIPS_REFLO = (short) 0x0005; | |
82 /** 16-bit signed displacement of the target relative to the Global | |
83 Pointer (GP) register. */ | |
84 public static final short IMAGE_REL_MIPS_GPREL = (short) 0x0006; | |
85 /** Same as IMAGE_REL_MIPS_GPREL. */ | |
86 public static final short IMAGE_REL_MIPS_LITERAL = (short) 0x0007; | |
87 /** The 16-bit section index of the section containing the target. | |
88 This is used to support debugging information. */ | |
89 public static final short IMAGE_REL_MIPS_SECTION = (short) 0x000A; | |
90 /** The 32-bit offset of the target from the beginning of its | |
91 section. This is used to support debugging information as well | |
92 as static thread local storage. */ | |
93 public static final short IMAGE_REL_MIPS_SECREL = (short) 0x000B; | |
94 /** The low 16 bits of the 32-bit offset of the target from the | |
95 beginning of its section. */ | |
96 public static final short IMAGE_REL_MIPS_SECRELLO = (short) 0x000C; | |
97 /** The high 16 bits of the 32-bit offset of the target from the | |
98 beginning of its section. A PAIR relocation must immediately | |
99 follow this on. The SymbolTableIndex of the PAIR relocation | |
100 contains a signed 16-bit displacement, which is added to the | |
101 upper 16 bits taken from the location being relocated. */ | |
102 public static final short IMAGE_REL_MIPS_SECRELHI = (short) 0x000D; | |
103 /** The low 26 bits of the target's virtual address. This supports | |
104 the MIPS16 JAL instruction. */ | |
105 public static final short IMAGE_REL_MIPS_JMPADDR16 = (short) 0x0010; | |
106 /** The target's 32-bit relative virtual address. */ | |
107 public static final short IMAGE_REL_MIPS_REFWORDNB = (short) 0x0022; | |
108 /** This relocation is only valid when it immediately follows a | |
109 REFHI or SECRELHI relocation. Its SymbolTableIndex contains a | |
110 displacement and not an index into the symbol table. */ | |
111 public static final short IMAGE_REL_MIPS_PAIR = (short) 0x0025; | |
112 | |
113 // | |
114 // Alpha processors | |
115 // | |
116 | |
117 /** This relocation is ignored. */ | |
118 public static final short IMAGE_REL_ALPHA_ABSOLUTE = (short) 0x0000; | |
119 /** The target's 32-bit virtual address. This fixup is illegal in a | |
120 PE32+ image unless the image has been sandboxed by clearing the | |
121 IMAGE_FILE_LARGE_ADDRESS_AWARE bit in the File Header. */ | |
122 public static final short IMAGE_REL_ALPHA_REFLONG = (short) 0x0001; | |
123 /** The target's 64-bit virtual address. */ | |
124 public static final short IMAGE_REL_ALPHA_REFQUAD = (short) 0x0002; | |
125 /** 32-bit signed displacement of the target relative to the Global | |
126 Pointer (GP) register. */ | |
127 public static final short IMAGE_REL_ALPHA_GPREL32 = (short) 0x0003; | |
128 /** 16-bit signed displacement of the target relative to the Global | |
129 Pointer (GP) register. */ | |
130 public static final short IMAGE_REL_ALPHA_LITERAL = (short) 0x0004; | |
131 /** Reserved for future use. */ | |
132 public static final short IMAGE_REL_ALPHA_LITUSE = (short) 0x0005; | |
133 /** Reserved for future use. */ | |
134 public static final short IMAGE_REL_ALPHA_GPDISP = (short) 0x0006; | |
135 /** The 21-bit relative displacement to the target. This supports | |
136 the Alpha relative branch instructions. */ | |
137 public static final short IMAGE_REL_ALPHA_BRADDR = (short) 0x0007; | |
138 /** 14-bit hints to the processor for the target of an Alpha jump | |
139 instruction. */ | |
140 public static final short IMAGE_REL_ALPHA_HINT = (short) 0x0008; | |
141 /** The target's 32-bit virtual address split into high and low | |
142 16-bit parts. Either an ABSOLUTE or MATCH relocation must | |
143 immediately follow this relocation. The high 16 bits of the | |
144 target address are stored in the location identified by the | |
145 INLINE_REFLONG relocation. The low 16 bits are stored four bytes | |
146 later if the following relocation is of type ABSOLUTE or at a | |
147 signed displacement given in the SymbolTableIndex if the | |
148 following relocation is of type MATCH. */ | |
149 public static final short IMAGE_REL_ALPHA_INLINE_REFLONG = (short) 0x0009; | |
150 /** The high 16 bits of the target's 32-bit virtual address. Used | |
151 for the first instruction in a two-instruction sequence that | |
152 loads a full address. This relocation must be immediately | |
153 followed by a PAIR relocations whose SymbolTableIndex contains a | |
154 signed 16-bit displacement which is added to the upper 16 bits | |
155 taken from the location being relocated. */ | |
156 public static final short IMAGE_REL_ALPHA_REFHI = (short) 0x000A; | |
157 /** The low 16 bits of the target's virtual address. */ | |
158 public static final short IMAGE_REL_ALPHA_REFLO = (short) 0x000B; | |
159 /** This relocation is only valid when it immediately follows a | |
160 REFHI , REFQ3, REFQ2, or SECRELHI relocation. Its | |
161 SymbolTableIndex contains a displacement and not an index into | |
162 the symbol table. */ | |
163 public static final short IMAGE_REL_ALPHA_PAIR = (short) 0x000C; | |
164 /** This relocation is only valid when it immediately follows | |
165 INLINE_REFLONG relocation. Its SymbolTableIndex contains the | |
166 displacement in bytes of the location for the matching low | |
167 address and not an index into the symbol table. */ | |
168 public static final short IMAGE_REL_ALPHA_MATCH = (short) 0x000D; | |
169 /** The 16-bit section index of the section containing the target. | |
170 This is used to support debugging information. */ | |
171 public static final short IMAGE_REL_ALPHA_SECTION = (short) 0x000E; | |
172 /** The 32-bit offset of the target from the beginning of its | |
173 section. This is used to support debugging information as well | |
174 as static thread local storage. */ | |
175 public static final short IMAGE_REL_ALPHA_SECREL = (short) 0x000F; | |
176 /** The target's 32-bit relative virtual address. */ | |
177 public static final short IMAGE_REL_ALPHA_REFLONGNB = (short) 0x0010; | |
178 /** The low 16 bits of the 32-bit offset of the target from the | |
179 beginning of its section. */ | |
180 public static final short IMAGE_REL_ALPHA_SECRELLO = (short) 0x0011; | |
181 /** The high 16 bits of the 32-bit offset of the target from the | |
182 beginning of its section. A PAIR relocation must immediately | |
183 follow this on. The SymbolTableIndex of the PAIR relocation | |
184 contains a signed 16-bit displacement which is added to the | |
185 upper 16 bits taken from the location being relocated. */ | |
186 public static final short IMAGE_REL_ALPHA_SECRELHI = (short) 0x0012; | |
187 /** The low 16 bits of the high 32 bits of the target's 64-bit | |
188 virtual address. This relocation must be immediately followed by | |
189 a PAIR relocations whose SymbolTableIndex contains a signed | |
190 32-bit displacement which is added to the 16 bits taken from the | |
191 location being relocated. The 16 bits in the relocated location | |
192 are shifted left by 32 before this addition. */ | |
193 public static final short IMAGE_REL_ALPHA_REFQ3 = (short) 0x0013; | |
194 /** The high 16 bits of the low 32 bits of the target's 64-bit | |
195 virtual address. This relocation must be immediately followed by | |
196 a PAIR relocations whose SymbolTableIndex contains a signed | |
197 16-bit displacement which is added to the upper 16 bits taken | |
198 from the location being relocated. */ | |
199 public static final short IMAGE_REL_ALPHA_REFQ2 = (short) 0x0014; | |
200 /** The low 16 bits of the target's 64-bit virtual address. */ | |
201 public static final short IMAGE_REL_ALPHA_REFQ1 = (short) 0x0015; | |
202 /** The low 16 bits of the 32-bit signed displacement of the target | |
203 relative to the Global Pointer (GP) register. */ | |
204 public static final short IMAGE_REL_ALPHA_GPRELLO = (short) 0x0016; | |
205 /** The high 16 bits of the 32-bit signed displacement of the target | |
206 relative to the Global Pointer (GP) register. */ | |
207 public static final short IMAGE_REL_ALPHA_GPRELHI = (short) 0x0017; | |
208 | |
209 // | |
210 // PowerPC processors | |
211 // | |
212 | |
213 /** This relocation is ignored. */ | |
214 public static final short IMAGE_REL_PPC_ABSOLUTE = (short) 0x0000; | |
215 /** The target's 64-bit virtual address. */ | |
216 public static final short IMAGE_REL_PPC_ADDR64 = (short) 0x0001; | |
217 /** The target's 32-bit virtual address. */ | |
218 public static final short IMAGE_REL_PPC_ADDR32 = (short) 0x0002; | |
219 /** The low 24 bits of the target's virtual address. This is only | |
220 valid when the target symbol is absolute and can be sign | |
221 extended to its original value. */ | |
222 public static final short IMAGE_REL_PPC_ADDR24 = (short) 0x0003; | |
223 /** The low 16 bits of the target's virtual address. */ | |
224 public static final short IMAGE_REL_PPC_ADDR16 = (short) 0x0004; | |
225 /** The low 14 bits of the target's virtual address. This is only | |
226 valid when the target symbol is absolute and can be sign | |
227 extended to its original value. */ | |
228 public static final short IMAGE_REL_PPC_ADDR14 = (short) 0x0005; | |
229 /** A 24-bit PC-relative offset to the symbol's location. */ | |
230 public static final short IMAGE_REL_PPC_REL24 = (short) 0x0006; | |
231 /** A 14-bit PC-relative offset to the symbol's location. */ | |
232 public static final short IMAGE_REL_PPC_REL14 = (short) 0x0007; | |
233 /** The target's 32-bit relative virtual address. */ | |
234 public static final short IMAGE_REL_PPC_ADDR32NB = (short) 0x000A; | |
235 /** The 32-bit offset of the target from the beginning of its | |
236 section. This is used to support debugging information as well | |
237 as static thread local storage. */ | |
238 public static final short IMAGE_REL_PPC_SECREL = (short) 0x000B; | |
239 /** The 16-bit section index of the section containing the target. | |
240 This is used to support debugging information. */ | |
241 public static final short IMAGE_REL_PPC_SECTION = (short) 0x000C; | |
242 /** The 16-bit offset of the target from the beginning of its | |
243 section. This is used to support debugging information as well | |
244 as static thread local storage. */ | |
245 public static final short IMAGE_REL_PPC_SECREL16 = (short) 0x000F; | |
246 /** The high 16 bits of the target's 32-bit virtual address. Used | |
247 for the first instruction in a two-instruction sequence that | |
248 loads a full address. This relocation must be immediately | |
249 followed by a PAIR relocations whose SymbolTableIndex contains a | |
250 signed 16-bit displacement which is added to the upper 16 bits | |
251 taken from the location being relocated. */ | |
252 public static final short IMAGE_REL_PPC_REFHI = (short) 0x0010; | |
253 /** The low 16 bits of the target's virtual address. */ | |
254 public static final short IMAGE_REL_PPC_REFLO = (short) 0x0011; | |
255 /** This relocation is only valid when it immediately follows a | |
256 REFHI or SECRELHI relocation. Its SymbolTableIndex contains a | |
257 displacement and not an index into the symbol table. */ | |
258 public static final short IMAGE_REL_PPC_PAIR = (short) 0x0012; | |
259 /** The low 16 bits of the 32-bit offset of the target from the | |
260 beginning of its section. */ | |
261 public static final short IMAGE_REL_PPC_SECRELLO = (short) 0x0013; | |
262 /** The high 16 bits of the 32-bit offset of the target from the | |
263 beginning of its section. A PAIR relocation must immediately | |
264 follow this on. The SymbolTableIndex of the PAIR relocation | |
265 contains a signed 16-bit displacement which is added to the | |
266 upper 16 bits taken from the location being relocated. */ | |
267 public static final short IMAGE_REL_PPC_SECRELHI = (short) 0x0014; | |
268 /** 16-bit signed displacement of the target relative to the Global | |
269 Pointer (GP) register. */ | |
270 public static final short IMAGE_REL_PPC_GPREL = (short) 0x0015; | |
271 | |
272 // | |
273 // SH3 and SH4 processors | |
274 // | |
275 | |
276 /** This relocation is ignored. */ | |
277 public static final short IMAGE_REL_SH3_ABSOLUTE = (short) 0x0000; | |
278 /** Reference to the 16-bit location that contains the virtual | |
279 address of the target symbol. */ | |
280 public static final short IMAGE_REL_SH3_DIRECT16 = (short) 0x0001; | |
281 /** The target's 32-bit virtual address. */ | |
282 public static final short IMAGE_REL_SH3_DIRECT32 = (short) 0x0002; | |
283 /** Reference to the 8-bit location that contains the virtual | |
284 address of the target symbol. */ | |
285 public static final short IMAGE_REL_SH3_DIRECT8 = (short) 0x0003; | |
286 /** Reference to the 8-bit instruction that contains the effective | |
287 16-bit virtual address of the target symbol. */ | |
288 public static final short IMAGE_REL_SH3_DIRECT8_WORD = (short) 0x0004; | |
289 /** Reference to the 8-bit instruction that contains the effective | |
290 32-bit virtual address of the target symbol. */ | |
291 public static final short IMAGE_REL_SH3_DIRECT8_LONG = (short) 0x0005; | |
292 /** Reference to the 8-bit location whose low 4 bits contain the | |
293 virtual address of the target symbol. */ | |
294 public static final short IMAGE_REL_SH3_DIRECT4 = (short) 0x0006; | |
295 /** Reference to the 8-bit instruction whose low 4 bits contain the | |
296 effective 16-bit virtual address of the target symbol. */ | |
297 public static final short IMAGE_REL_SH3_DIRECT4_WORD = (short) 0x0007; | |
298 /** Reference to the 8-bit instruction whose low 4 bits contain the | |
299 effective 32-bit virtual address of the target symbol. */ | |
300 public static final short IMAGE_REL_SH3_DIRECT4_LONG = (short) 0x0008; | |
301 /** Reference to the 8-bit instruction which contains the effective | |
302 16-bit relative offset of the target symbol. */ | |
303 public static final short IMAGE_REL_SH3_PCREL8_WORD = (short) 0x0009; | |
304 /** Reference to the 8-bit instruction which contains the effective | |
305 32-bit relative offset of the target symbol. */ | |
306 public static final short IMAGE_REL_SH3_PCREL8_LONG = (short) 0x000A; | |
307 /** Reference to the 16-bit instruction whose low 12 bits contain | |
308 the effective 16-bit relative offset of the target symbol. */ | |
309 public static final short IMAGE_REL_SH3_PCREL12_WORD = (short) 0x000B; | |
310 /** Reference to a 32-bit location that is the virtual address of | |
311 the symbol's section. */ | |
312 public static final short IMAGE_REL_SH3_STARTOF_SECTION = (short) 0x000C; | |
313 /** Reference to the 32-bit location that is the size of the | |
314 symbol's section. */ | |
315 public static final short IMAGE_REL_SH3_SIZEOF_SECTION = (short) 0x000D; | |
316 /** The 16-bit section index of the section containing the target. | |
317 This is used to support debugging information. */ | |
318 public static final short IMAGE_REL_SH3_SECTION = (short) 0x000E; | |
319 /** The 32-bit offset of the target from the beginning of its | |
320 section. This is used to support debugging information as well | |
321 as static thread local storage. */ | |
322 public static final short IMAGE_REL_SH3_SECREL = (short) 0x000F; | |
323 /** The target's 32-bit relative virtual address. */ | |
324 public static final short IMAGE_REL_SH3_DIRECT32_NB = (short) 0x0010; | |
325 | |
326 // | |
327 // ARM processors | |
328 // | |
329 | |
330 /** This relocation is ignored. */ | |
331 public static final short IMAGE_REL_ARM_ABSOLUTE = (short) 0x0000; | |
332 /** The target's 32-bit virtual address. */ | |
333 public static final short IMAGE_REL_ARM_ADDR32 = (short) 0x0001; | |
334 /** The target's 32-bit relative virtual address. */ | |
335 public static final short IMAGE_REL_ARM_ADDR32NB = (short) 0x0002; | |
336 /** The 24-bit relative displacement to the target. */ | |
337 public static final short IMAGE_REL_ARM_BRANCH24 = (short) 0x0003; | |
338 /** Reference to a subroutine call, consisting of two 16-bit | |
339 instructions with 11-bit offsets. */ | |
340 public static final short IMAGE_REL_ARM_BRANCH11 = (short) 0x0004; | |
341 /** The 16-bit section index of the section containing the target. | |
342 This is used to support debugging information. */ | |
343 public static final short IMAGE_REL_ARM_SECTION = (short) 0x000E; | |
344 /** The 32-bit offset of the target from the beginning of its | |
345 section. This is used to support debugging information as well | |
346 as static thread local storage. */ | |
347 public static final short IMAGE_REL_ARM_SECREL = (short) 0x000F; | |
348 } |