clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

DWARF already has support for this using location lists. I would rather see 
this done by having the DWARF parser modify the DWARF expression to be a 
location list based. I don't mean have the compiler change, but just how we 
store the location in the variable. This would mean the ONLY change will be in 
the DWARF parser. We don't need to track any ranges or anything in the variable 
this way.

So if you have a variable:

  DW_TAG_subprogram:
  DW_AT_name("main")
  DW_AT_low_pc(0x1000)
  DW_AT_high_pc(0x2000)
  
      DW_TAG_variable:
      DW_AT_name("a")
      DW_AT_start_scope (0x20)
      DW_AT_location (0x11 0x22 0x33) (location is described by a block of 
DW_OP_expression bytes)

Then we would make a location list expression where the DWARFExpression's type 
is switched from:

NonLocationList with bytes of 0x11, 0x22, 0x33

over to a DWARFExpression whose type is:

RegularLocationList with [0x1020-0x2000): 0x11, 0x22, 0x33

If that doesn't make sense let me know. If we do this, then the ONLY change is 
in the DWARF parser since we already support location list based expressions.


http://reviews.llvm.org/D17449



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to