IR and AsmPrinter parts for handling of DW_OP_entry_values DWARF operation.
Authors: @asowda, @NikolaPrica, @djtodoro, @ivanbaev
Differential D60866
[DWARF] Handle DW_OP_entry_value operand djtodoro on Apr 18 2019, 6:13 AM. Authored by
Details IR and AsmPrinter parts for handling of DW_OP_entry_values DWARF operation. Authors: @asowda, @NikolaPrica, @djtodoro, @ivanbaev
Diff Detail Event TimelineComment Actions This looks mostly good, IMO what's missing is
Comment Actions
Thanks!
Done.
Done.
Since there are a lot of places using With* it is better doing this as a separate commit. I am working on the patch. :)
Comment Actions @aprantl Thanks again for the comments! Let us summarize the whole picture of the feature here. In .debug_info section DW_TAG_call_site_parameter information with its attributes allows us to print @entry value from a debugger (e.g. #1 foo (val=<optimized out>, val@entry=5)). That information we try to generate during AsmPrinter phase. The second thing of the feature is using @entry for representing real value (DBG_VALUE) of a parameter (additional input in .debug_loc). It is done by generating additional DW_OP_entry_value in LiveDebugValues. So, it will allow us to see situations in a backtrace such as #1 foo (val=val@entry=5). In addition, we see that GCC in some situations generate DW_OP_entry_value for representing call site parameters value (see DwarfDebug.cpp file), but that is an enhancement, not a fundamental thing.
|