[lldb-dev] Reading eValueTypeLoadAddress with missing compiler type

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Mon Sep 18 13:23:36 PDT 2017


A DW_TAG_subprogram's usually has a DW_AT_frame_base DWARF expression that describes where the frame is. That evaluates to something and doesn't require any type. I am guessing you now have a variable that is relative to that frame base and that variable's type is not valid. This can be due to many reasons, most likely is the compiler may have redacted your type when trying to save space. Can you confirm this is what is happening?


> On Sep 18, 2017, at 12:25 PM, Leonardo Bianconi via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> 
> Hi all!
> 
> I'm facing an issue with a value of lldb_private::Value::eValueTypeLoadAddress type, which cannot be loaded from memory because the compiler type was not filled.
> That happens obtaining the fame base, which is based on "DW_OP_call_frame_cfa" case (DWARFExpression.cpp:2825).
> After obtain the base frame, when resolving the value (Value.cpp:612), as the compiler type is invalid, the value is not read from memory, and the frame base keep as its address.
> 
> How can I solve this issue?
> I looked in many files, and couldn't find how to fill the compiler type in the "DWARFExpression::Evaluate" method.
> 
> 
> Thanks,
> Leonardo Bianconi.
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev



More information about the lldb-dev mailing list