aboutsummaryrefslogtreecommitdiff
path: root/docs/SourceLevelDebugging.rst
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2014-11-24 09:08:18 +0000
committerDimitry Andric <dim@FreeBSD.org>2014-11-24 09:08:18 +0000
commit5ca98fd98791947eba83a1ed3f2c8191ef7afa6c (patch)
treef5944309621cee4fe0976be6f9ac619b7ebfc4c2 /docs/SourceLevelDebugging.rst
parent68bcb7db193e4bc81430063148253d30a791023e (diff)
Diffstat (limited to 'docs/SourceLevelDebugging.rst')
-rw-r--r--docs/SourceLevelDebugging.rst44
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: