Lines Matching refs:information
11 This document is the central repository for all information pertaining to debug
12 information in LLVM. It describes the :ref:`actual format that the LLVM debug
13 information takes <format>`, which is useful for those interested in creating
14 front-ends or dealing directly with the information. Further, this document
15 provides specific examples of what debug information for C/C++ looks like.
17 Philosophy behind LLVM debugging information
20 The idea of the LLVM debugging information is to capture how the important
25 * Debugging information should have very little impact on the rest of the
27 be modified because of debugging information.
30 ways <intro_debugopt>` with the debugging information.
38 and the debugging information should work with any language.
54 the stored debug information into source-language specific information. As
58 Debug information consumers
61 The role of debug information is to provide meta information normally stripped
62 away during the compilation process. This meta information provides an LLVM
66 Currently, debug information is consumed by DwarfDebug to produce dwarf
67 information used by the gdb debugger. Other targets could use the same
68 information to produce stabs or other debug forms.
70 It would also be reasonable to use debug information to feed profiling tools
81 An extremely high priority of LLVM debugging information is to make it interact
83 information provides the following guarantees:
85 * LLVM debug information **always provides information to accurately read
94 debugging information, allowing them to update the debugging information
99 * LLVM debug information does not prevent optimizations from
103 * LLVM debug information is automatically optimized along with the rest of
105 information is automatically merged by the linker, and unused information
108 Basically, the debug information allows you to compile a program with
109 "``-O0 -g``" and get full debug information, allowing you to arbitrarily modify
111 "``-O3 -g``" gives you full debug information that is always available and
118 optimizer's handling of debugging information. It can be run like this:
125 This will test impact of debugging information on optimization passes. If
126 debugging information influences optimization passes then it will be reported
127 as a failure. See :doc:`TestingGuide` for more information on LLVM test
132 Debugging information format
135 LLVM debugging information has been carefully designed to make it possible for
136 the optimizer to optimize the program and debugging information without
137 necessarily having to know anything about debugging information. In
138 particular, the use of metadata avoids duplicated debugging information from
140 debugging information for a function if it decides to delete the function.
142 To do this, most of the debugging information (descriptors for types,
146 Debug information is designed to be agnostic about the target debugger and
147 debugging information representation (e.g. DWARF/Stabs/etc). It uses a generic
148 pass to decode the information that represents variables, types, functions,
151 debugger to interpret the information.
158 debugger to form stack traces, show information about local variables, etc.
164 Debug information descriptors are `specialized metadata nodes
173 provide debug information at various points in generated code.
182 This intrinsic provides information about a local element (e.g., variable).
195 This intrinsic provides information when a user source variable is set to a new
214 llvm instructions to encode line number and scoping information. Consider the
290 information. In particular, it shows how the ``llvm.dbg.declare`` intrinsic and
291 location information, which are attached to an instruction, are applied
300 The first intrinsic ``%llvm.dbg.declare`` encodes debugging information for the
302 scope information for the variable ``X``.
311 Here ``!14`` is metadata providing `location information
314 information attached to the intrinsics indicates that the variable ``X`` is
324 The third intrinsic ``%llvm.dbg.declare`` encodes debugging information for
326 scope information for the variable ``Z``.
337 The scope information attached with each instruction provides a straightforward
342 C/C++ front-end specific debug information
345 The C and C++ front-ends represent information about the program in a format
347 <http://www.eagercon.com/dwarf/dwarf3std.htm>`_ in terms of information
349 generating standard dwarf information, and contains enough information for
356 As support for debugging information gets added to the various LLVM
357 source-language front-ends, the information used should be documented here.
360 information that would best describe those constructs. The canonical
365 C/C++ source file information
369 instruction. One can extract line number information encoded in LLVM IR using
380 C/C++ global variable information
444 C/C++ function information
474 Debugging information format
490 information generated by compiler in DWARF format. The format does not support
702 given by the ``DW_AT_name attribute`` of the referenced debugging information
1061 of information for each name. We want to make the DWARF tables extensible and
1067 We might want to store an offset to all of the debug information entries (DIEs)
1140 function for instance. Future tables could include more information about the