[PATCH] D75270: [DebugInfo] Do not emit entry values for composite locations

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 27 17:15:21 PST 2020


vsk accepted this revision.
vsk added a comment.
This revision is now accepted and ready to land.

Fixing the assertion failure in this way sgtm. Re:

  DW_OP_entry_value(DW_OP_regx sub_reg0), DW_OP_stack_value, DW_OP_piece 8, DW_OP_entry_value(DW_OP_regx sub_reg1), DW_OP_stack_value, DW_OP_piece 8, ...

It sounds like you expect debuggers to have some difficulty handling this expression. How come? I didn't understand this part.

My lack of familiarity with DWARF is showing now, but would `DW_OP_entry_value(DW_OP_regx sub_reg0, DW_OP_piece 8, DW_OP_regx sub_reg1, DW_OP_piece 8)` be valid (sorry if I've left out any necessary OP_stack_values).

> The question then becomes how the call site should look; should a
>  composite location description be emitted there, and we then leave it up
>  to the debugger to match those two composite location descriptions?

This seems reasonable to me, but I feel like I'm missing something here..

> Another alternative could be to emit a call site parameter entry for
>  each sub-register,

I believe this would complicate the debugger support significantly, hopefully there's a simpler way to do this. Right now lldb just does a 'memcmp' to figure out whether to use an entry value. If there were a separate call site parameter entry for each subregister in the caller that forms a register used in the callee, that would have to change into a more complicated merging operation.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75270/new/

https://reviews.llvm.org/D75270





More information about the llvm-commits mailing list