X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FSourceLevelDebugging.html;h=3c9df8dc0fea433275df4c1f41791121fdc3414e;hb=1d33bb310865528f5b1a303e33891366457bc0ef;hp=4525e4400f63e4ad0d629b7934ac8572b5736b98;hpb=b329fe1b3c01f2b1c1d558eaf4320192deba11f9;p=oota-llvm.git diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 4525e4400f6..3c9df8dc0fe 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -66,7 +66,7 @@ height="369">

Written by Chris Lattner - and Jim Laskey

+ and Jim Laskey

@@ -281,7 +281,7 @@ source-language is allowed to define its own objects, by using unreserved tag numbers. We recommend using with tags in the range 0x1000 thru 0x2000 (there is a defined enum DW_TAG_user_base = 0x1000.)

-

The fields of debug descriptors used internally by LLVM (MachineDebugInfo) +

The fields of debug descriptors used internally by LLVM (MachineModuleInfo) are restricted to only the simple data types int, uint, bool, float, double, sbyte* and { }* . References to arbitrary values are handled using a { }* and a @@ -389,6 +389,8 @@ line correspondence.

{ }*, ;; Global variable anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to { }*), { }*, ;; Reference to context descriptor sbyte*, ;; Name + sbyte*, ;; Display name (fully qualified C++ name) + sbyte*, ;; MIPS linkage name (for C++) { }*, ;; Reference to compile unit where defined uint, ;; Line number where defined { }*, ;; Reference to type descriptor @@ -416,6 +418,8 @@ provide details such as name, type and where the variable is defined.

{ }*, ;; Subprogram anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to { }*), { }*, ;; Reference to context descriptor sbyte*, ;; Name + sbyte*, ;; Display name (fully qualified C++ name) + sbyte*, ;; MIPS linkage name (for C++) { }*, ;; Reference to compile unit where defined uint, ;; Line number where defined { }*, ;; Reference to type descriptor @@ -591,6 +595,7 @@ are possible tag values;

DW_TAG_union_type = 23 DW_TAG_vector_type = 259 DW_TAG_subroutine_type = 46 + DW_TAG_inheritance = 26

The vector flag indicates that an array type is a native packed vector.

@@ -611,6 +616,17 @@ href="#format_basic_type">basic, derived or composite type descriptors, each representing a field member of the structure or union.

+

For C++ classes (tag = DW_TAG_structure_type), member descriptors +provide information about base classes, static members and member functions. If +a member is a derived type descriptor and has +a tag of DW_TAG_inheritance, then the type represents a base class. If +the member of is a global variable +descriptor then it represents a static member. And, if the member is a subprogram descriptor then it represents a member +function. For static members and member functions, getName() returns +the members link or the C++ mangled name. getDisplayName() the +simplied version of the name.

+

The first member of subroutine (tag = DW_TAG_subroutine_type) type elements is the return type for the subroutine. The remaining elements are the formal arguments to the subroutine.

@@ -1128,6 +1144,7 @@ int MyGlobal = 100; { }* cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to { }*), { }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*), sbyte* getelementptr ([9 x sbyte]* %str1, int 0, int 0), + sbyte* getelementptr ([1 x sbyte]* %str2, int 0, int 0), { }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*), uint 1, { }* cast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to { }*), @@ -1142,7 +1159,7 @@ int MyGlobal = 100; %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { uint add(uint 36, uint 262144), { }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*), - sbyte* getelementptr ([4 x sbyte]* %str2, int 0, int 0), + sbyte* getelementptr ([4 x sbyte]* %str3, int 0, int 0), { }* null, int 0, uint 32, @@ -1154,7 +1171,8 @@ int MyGlobal = 100; ;; Define the names of the global variable and basic type. ;; %str1 = internal constant [9 x sbyte] c"MyGlobal\00", section "llvm.metadata" -%str2 = internal constant [4 x sbyte] c"int\00", section "llvm.metadata" +%str2 = internal constant [1 x sbyte] c"\00", section "llvm.metadata" +%str3 = internal constant [4 x sbyte] c"int\00", section "llvm.metadata" @@ -1201,6 +1219,7 @@ int main(int argc, char *argv[]) { { }* cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to { }*), { }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*), sbyte* getelementptr ([5 x sbyte]* %str1, int 0, int 0), + sbyte* getelementptr ([1 x sbyte]* %str2, int 0, int 0), { }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to { }*), uint 1, { }* null, @@ -1211,6 +1230,7 @@ int main(int argc, char *argv[]) { ;; Define the name of the subprogram. ;; %str1 = internal constant [5 x sbyte] c"main\00", section "llvm.metadata" +%str2 = internal constant [1 x sbyte] c"\00", section "llvm.metadata" ;; ;; Define the subprogram itself.