X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FSourceLevelDebugging.html;h=172ede02e6afd19bbed7a9a607243a23ad398045;hb=9d2c9bd11377ecac24e5c7c6198153375ac72562;hp=3c9df8dc0fea433275df4c1f41791121fdc3414e;hpb=c760a920d5e8cdc47677e44ac53d062ddd63f481;p=oota-llvm.git diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 3c9df8dc0fe..172ede02e6a 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -130,7 +130,7 @@ href="http://www.eagercon.com/dwarf/dwarf3std.htm">Dwarf 3 standard).

When a program is being debugged, a debugger interacts with the user and turns the stored debug information into source-language specific information. As such, a debugger must be aware of the source-language, and is thus tied to -a specific language of family of languages.

+a specific language or family of languages.

@@ -142,7 +142,7 @@ a specific language of family of languages.

The role of debug information is to provide meta information normally stripped away during the compilation process. This meta information provides an -llvm user a relationship between generated code and the original program source +LLVM user a relationship between generated code and the original program source code.

Currently, debug information is consumed by the DwarfWriter to produce dwarf @@ -175,12 +175,12 @@ source-level state of the program, regardless of which LLVM optimizations have been run, and without any modification to the optimizations themselves. However, some optimizations may impact the ability to modify the current state of the program with a debugger, such as setting program variables, or calling -function that have been deleted. +functions that have been deleted.

  • LLVM optimizations gracefully interact with debugging information. If they are not aware of debug information, they are automatically disabled as necessary in the cases that would invalidate the debug info. This retains the LLVM -features making it easy to write new transformations.
  • +features, making it easy to write new transformations.
  • As desired, LLVM optimizations can be upgraded to be aware of the LLVM debugging information, allowing them to update the debugging information as they @@ -747,7 +747,7 @@ provide debug information at various points in generated code.

    This intrinsic is used to provide correspondence between the source file and the generated code. The first argument is the line number (base 1), second -argument si the column number (0 if unknown) and the third argument the source +argument is the column number (0 if unknown) and the third argument the source %llvm.dbg.compile_unit* cast to a { }*. Code following a call to this intrinsic will have been defined in close proximity of the line, column and file. This information holds until @@ -767,10 +767,13 @@ href="#format_common_stoppoint">lvm.dbg.stoppoint.

    This intrinsic is used to link the debug information in %llvm.dbg.subprogram to the function. It also -defines the beginning of the function's declarative region (scope.) The -intrinsic should be called early in the function after the all the alloca -instructions. It should be paired off with a closing %llvm.dbg.subprogram to the function. It +defines the beginning of the function's declarative region (scope). It also +implies a call to %llvm.dbg.stoppoint which defines a +source line "stop point". The intrinsic should be called early in the function +after the all the alloca instructions. It should be paired off with a closing +%llvm.dbg.region.end. The function's single argument is the %llvm.dbg.subprogram.type.

    @@ -991,7 +994,7 @@ another scope).

    It is worth noting that this scoping mechanism is used to control scoping of all declarations, not just variable declarations. For example, the scope of a -C++ using declaration is controlled with this couldchange how name lookup is +C++ using declaration is controlled with this and could change how name lookup is performed.