diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:08:18 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:08:18 +0000 |
commit | 5ca98fd98791947eba83a1ed3f2c8191ef7afa6c (patch) | |
tree | f5944309621cee4fe0976be6f9ac619b7ebfc4c2 /docs/SourceLevelDebugging.rst | |
parent | 68bcb7db193e4bc81430063148253d30a791023e (diff) |
Diffstat (limited to 'docs/SourceLevelDebugging.rst')
-rw-r--r-- | docs/SourceLevelDebugging.rst | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/docs/SourceLevelDebugging.rst b/docs/SourceLevelDebugging.rst index a1d8110637f6..869d3a383107 100644 --- a/docs/SourceLevelDebugging.rst +++ b/docs/SourceLevelDebugging.rst @@ -235,8 +235,8 @@ File descriptors .. code-block:: llvm !0 = metadata !{ - i32, ;; Tag = 41 (DW_TAG_file_type) - metadata, ;; Source directory (including trailing slash) & file pair + i32, ;; Tag = 41 (DW_TAG_file_type) + metadata, ;; Source directory (including trailing slash) & file pair } These descriptors contain information for a file. Global variables and top @@ -269,7 +269,7 @@ Global variable descriptors metadata, ;; The static member declaration, if any } -These descriptors provide debug information about globals variables. They +These descriptors provide debug information about global variables. They provide details such as name, type and where the variable is defined. All global variables are collected inside the named metadata ``!llvm.dbg.cu``. @@ -297,7 +297,7 @@ Subprogram descriptors ;; derived class i32, ;; Flags - Artificial, Private, Protected, Explicit, Prototyped. i1, ;; isOptimized - Function * , ;; Pointer to LLVM function + {}*, ;; Reference to the LLVM function metadata, ;; Lists function template parameters metadata, ;; Function declaration descriptor metadata, ;; List of function variables @@ -314,12 +314,13 @@ Block descriptors .. code-block:: llvm !3 = metadata !{ - i32, ;; Tag = 11 (DW_TAG_lexical_block) - metadata,;; Source directory (including trailing slash) & file pair - metadata,;; Reference to context descriptor - i32, ;; Line number - i32, ;; Column number - i32 ;; Unique ID to identify blocks from a template function + i32, ;; Tag = 11 (DW_TAG_lexical_block) + metadata, ;; Source directory (including trailing slash) & file pair + metadata, ;; Reference to context descriptor + i32, ;; Line number + i32, ;; Column number + i32, ;; DWARF path discriminator value + i32 ;; Unique ID to identify blocks from a template function } This descriptor provides debug information about nested blocks within a @@ -329,9 +330,9 @@ lexical blocks at same depth. .. code-block:: llvm !3 = metadata !{ - i32, ;; Tag = 11 (DW_TAG_lexical_block) - metadata,;; Source directory (including trailing slash) & file pair - metadata ;; Reference to the scope we're annotating with a file change + i32, ;; Tag = 11 (DW_TAG_lexical_block) + metadata, ;; Source directory (including trailing slash) & file pair + metadata ;; Reference to the scope we're annotating with a file change } This descriptor provides a wrapper around a lexical scope to handle file @@ -527,9 +528,9 @@ Subrange descriptors .. code-block:: llvm !42 = metadata !{ - i32, ;; Tag = 33 (DW_TAG_subrange_type) - i64, ;; Low value - i64 ;; High value + i32, ;; Tag = 33 (DW_TAG_subrange_type) + i64, ;; Low value + i64 ;; High value } These descriptors are used to define ranges of array subscripts for an array @@ -566,9 +567,10 @@ Local variables metadata, ;; Reference to file where defined i32, ;; 24 bit - Line number where defined ;; 8 bit - Argument number. 1 indicates 1st argument. - metadata, ;; Type descriptor + metadata, ;; Reference to the type descriptor i32, ;; flags metadata ;; (optional) Reference to inline location + metadata ;; (optional) Reference to a complex expression (see below) } These descriptors are used to define variables local to a sub program. The @@ -724,7 +726,8 @@ Compiled to LLVM, this function would be represented like this: !15 = metadata !{i32 786688, metadata !16, metadata !"Z", metadata !5, i32 5, metadata !11, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [Z] \ [line 5] - !16 = metadata !{i32 786443, metadata !1, metadata !4, i32 4, i32 0, i32 0} \ + !16 = metadata !{i32 786443, metadata !1, metadata !4, i32 4, i32 0, i32 0, + i32 0} \ ; [ DW_TAG_lexical_block ] [/private/tmp/t.c] !17 = metadata !{i32 5, i32 0, metadata !16, null} !18 = metadata !{i32 6, i32 0, metadata !16, null} @@ -776,7 +779,8 @@ scope information for the variable ``Z``. .. code-block:: llvm - !16 = metadata !{i32 786443, metadata !1, metadata !4, i32 4, i32 0, i32 0} + !16 = metadata !{i32 786443, metadata !1, metadata !4, i32 4, i32 0, i32 0, + i32 0} ; [ DW_TAG_lexical_block ] [/private/tmp/t.c] !17 = metadata !{i32 5, i32 0, metadata !16, null} @@ -2306,7 +2310,7 @@ stringWithCString:]``") and the basename is the selector only Mach-O Changes """""""""""""" -The sections names for the apple hash tables are for non mach-o files. For +The sections names for the apple hash tables are for non-mach-o files. For mach-o files, the sections should be contained in the ``__DWARF`` segment with names as follows: |