diff options
Diffstat (limited to 'llvm/docs/SourceLevelDebugging.rst')
| -rw-r--r-- | llvm/docs/SourceLevelDebugging.rst | 22 |
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:: |
