summaryrefslogtreecommitdiff
path: root/llvm/docs/SourceLevelDebugging.rst
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs/SourceLevelDebugging.rst')
-rw-r--r--llvm/docs/SourceLevelDebugging.rst22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/docs/SourceLevelDebugging.rst b/llvm/docs/SourceLevelDebugging.rst
index 12b5e3e549df..6bf38193acfe 100644
--- a/llvm/docs/SourceLevelDebugging.rst
+++ b/llvm/docs/SourceLevelDebugging.rst
@@ -308,6 +308,28 @@ directly, not its address. Note that the value operand of this intrinsic may
be indirect (i.e, a pointer to the source variable), provided that interpreting
the complex expression derives the direct value.
+
+``#dbg_declare_value``
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: llvm
+
+ #dbg_declare_value([Value|MDNode], DILocalVariable, DIExpression, DILocation)
+
+This record provides information about a local element (e.g., variable). The
+first argument is used to compute the value of the variable throughout the
+entire function. The second argument is a
+:ref:`local variable <dilocalvariable>` containing a description of the
+variable. The third argument is a :ref:`complex expression <diexpression>`. The
+foruth argument is a :ref:`source location <dilocation>`. A
+``#dbg_declare_value`` record describes describes the *value* of a source
+variable directly, not its address. The difference between a ``#dbg_value`` and
+a ``#dbg_declare_value`` is that, just like a ``#dbg_declare``, a frontend
+should generate exactly one ``#dbg_declare_value`` record. The idea is to have
+``#dbg_declare`` guarantees but be able to describe a value rather than the
+address of a value.
+
+
``#dbg_assign``
^^^^^^^^^^^^^^^
.. toctree::