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;
+}