Mercurial > hg > truffle
diff agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFSymbolConstants.java @ 0:a61af66fc99e jdk7-b24
Initial load
author | duke |
---|---|
date | Sat, 01 Dec 2007 00:00:00 +0000 |
parents | |
children | c18cbe5936b8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFSymbolConstants.java Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,170 @@ +/* + * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +package sun.jvm.hotspot.debugger.win32.coff; + +/** Constants providing information about the section number, type + representation, and storage class of symbols. (Some of the + descriptions are taken directly from Microsoft's documentation and + are copyrighted by Microsoft.) */ + +public interface COFFSymbolConstants { + // + // Section Number Values + // + + /** Symbol record is not yet assigned a section. If the value is 0 + this indicates a references to an external symbol defined + elsewhere. If the value is non-zero this is a common symbol with + a size specified by the value. */ + public static final short IMAGE_SYM_UNDEFINED = (short) 0; + /** The symbol has an absolute (non-relocatable) value and is not an + address. */ + public static final short IMAGE_SYM_ABSOLUTE = (short) -1; + /** The symbol provides general type or debugging information but + does not correspond to a section. Microsoft tools use this + setting along with .file records (storage class FILE). */ + public static final short IMAGE_SYM_DEBUG = (short) -2; + + // + // Type Representation + // + + /** No type information or unknown base type. Microsoft tools use + this setting. */ + public static final short IMAGE_SYM_TYPE_NULL = (short) 0; + /** No valid type; used with void pointers and functions. */ + public static final short IMAGE_SYM_TYPE_VOID = (short) 1; + /** Character (signed byte). */ + public static final short IMAGE_SYM_TYPE_CHAR = (short) 2; + /** Two-byte signed integer. */ + public static final short IMAGE_SYM_TYPE_SHORT = (short) 3; + /** Natural integer type (normally four bytes in Windows NT). */ + public static final short IMAGE_SYM_TYPE_INT = (short) 4; + /** Four-byte signed integer. */ + public static final short IMAGE_SYM_TYPE_LONG = (short) 5; + /** Four-byte floating-point number. */ + public static final short IMAGE_SYM_TYPE_FLOAT = (short) 6; + /** Eight-byte floating-point number. */ + public static final short IMAGE_SYM_TYPE_DOUBLE = (short) 7; + /** Structure. */ + public static final short IMAGE_SYM_TYPE_STRUCT = (short) 8; + /** Union. */ + public static final short IMAGE_SYM_TYPE_UNION = (short) 9; + /** Enumerated type. */ + public static final short IMAGE_SYM_TYPE_ENUM = (short) 10; + /** Member of enumeration (a specific value). */ + public static final short IMAGE_SYM_TYPE_MOE = (short) 11; + /** Byte; unsigned one-byte integer. */ + public static final short IMAGE_SYM_TYPE_BYTE = (short) 12; + /** Word; unsigned two-byte integer. */ + public static final short IMAGE_SYM_TYPE_WORD = (short) 13; + /** Unsigned integer of natural size (normally, four bytes). */ + public static final short IMAGE_SYM_TYPE_UINT = (short) 14; + /** Unsigned four-byte integer. */ + public static final short IMAGE_SYM_TYPE_DWORD = (short) 15; + + /** No derived type; the symbol is a simple scalar variable. */ + public static final short IMAGE_SYM_DTYPE_NULL = (short) 0; + /** Pointer to base type. */ + public static final short IMAGE_SYM_DTYPE_POINTER = (short) 1; + /** Function returning base type. */ + public static final short IMAGE_SYM_DTYPE_FUNCTION = (short) 2; + /** Array of base type. */ + public static final short IMAGE_SYM_DTYPE_ARRAY = (short) 3; + + // + // Storage Class + // + + /** (0xFF) Special symbol representing end of function, for + debugging purposes. */ + public static final byte IMAGE_SYM_CLASS_END_OF_FUNCTION = (byte) -1; + /** No storage class assigned. */ + public static final byte IMAGE_SYM_CLASS_NULL = (byte) 0; + /** Automatic (stack) variable. The Value field specifies stack + frame offset. */ + public static final byte IMAGE_SYM_CLASS_AUTOMATIC = (byte) 1; + /** Used by Microsoft tools for external symbols. The Value field + indicates the size if the section number is IMAGE_SYM_UNDEFINED + (0). If the section number is not 0, then the Value field + specifies the offset within the section. */ + public static final byte IMAGE_SYM_CLASS_EXTERNAL = 2; + /** The Value field specifies the offset of the symbol within the + section. If the Value is 0, then the symbol represents a section + name. */ + public static final byte IMAGE_SYM_CLASS_STATIC = (byte) 3; + /** Register variable. The Value field specifies register number. */ + public static final byte IMAGE_SYM_CLASS_REGISTER = (byte) 4; + /** Symbol is defined externally. */ + public static final byte IMAGE_SYM_CLASS_EXTERNAL_DEF = (byte) 5; + /** Code label defined within the module. The Value field specifies + the offset of the symbol within the section. */ + public static final byte IMAGE_SYM_CLASS_LABEL = (byte) 6; + /** Reference to a code label not defined. */ + public static final byte IMAGE_SYM_CLASS_UNDEFINED_LABEL = (byte) 7; + /** Structure member. The Value field specifies nth member. */ + public static final byte IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = (byte) 8; + /** Formal argument (parameter) of a function. The Value field + specifies nth argument. */ + public static final byte IMAGE_SYM_CLASS_ARGUMENT = (byte) 9; + /** Structure tag-name entry. */ + public static final byte IMAGE_SYM_CLASS_STRUCT_TAG = (byte) 10; + /** Union member. The Value field specifies nth member. */ + public static final byte IMAGE_SYM_CLASS_MEMBER_OF_UNION = (byte) 11; + /** Union tag-name entry. */ + public static final byte IMAGE_SYM_CLASS_UNION_TAG = (byte) 12; + /** Typedef entry. */ + public static final byte IMAGE_SYM_CLASS_TYPE_DEFINITION = (byte) 13; + /** Static data declaration. */ + public static final byte IMAGE_SYM_CLASS_UNDEFINED_STATIC = (byte) 14; + /** Enumerated type tagname entry. */ + public static final byte IMAGE_SYM_CLASS_ENUM_TAG = (byte) 15; + /** Member of enumeration. Value specifies nth member. */ + public static final byte IMAGE_SYM_CLASS_MEMBER_OF_ENUM = (byte) 16; + /** Register parameter. */ + public static final byte IMAGE_SYM_CLASS_REGISTER_PARAM = (byte) 17; + /** Bit-field reference. Value specifies nth bit in the bit field. */ + public static final byte IMAGE_SYM_CLASS_BIT_FIELD = (byte) 18; + /** A .bb (beginning of block) or .eb (end of block) record. Value + is the relocatable address of the code location. */ + public static final byte IMAGE_SYM_CLASS_BLOCK = (byte) 100; + /** Used by Microsoft tools for symbol records that define the + extent of a function: begin function (named .bf), end function + (.ef), and lines in function (.lf). For .lf records, Value gives + the number of source lines in the function. For .ef records, + Value gives the size of function code. */ + public static final byte IMAGE_SYM_CLASS_FUNCTION = (byte) 101; + /** End of structure entry. */ + public static final byte IMAGE_SYM_CLASS_END_OF_STRUCT = (byte) 102; + /** Used by Microsoft tools, as well as traditional COFF format, for + the source-file symbol record. The symbol is followed by + auxiliary records that name the file. */ + public static final byte IMAGE_SYM_CLASS_FILE = (byte) 103; + /** Definition of a section (Microsoft tools use STATIC storage + class instead). */ + public static final byte IMAGE_SYM_CLASS_SECTION = (byte) 104; + /** Weak external. */ + public static final byte IMAGE_SYM_CLASS_WEAK_EXTERNAL = (byte) 105; +}