[Lldb-commits] [lldb] r280692 - Added the "frame diagnose" command and use its output to make crash info better.
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Tue Sep 6 03:21:05 PDT 2016
On 6 September 2016 at 05:48, Sean Callanan via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
> +
> + struct Operand
> + {
> + enum class Type {
> + Invalid = 0,
> + Register,
> + Immediate,
> + Dereference,
> + Sum,
> + Product
> + } m_type = Type::Invalid;
> + std::vector<const Operand> m_children;
Hi Sean,
this broke the build on linux, as libstdc++ fails to instantiate a
vector of const objects (I can't say I blame it). I've changed the
definition to non-const to make it build. Feel free to change if you
see a better way to handle that.
> + ValueObjectSP
> + GetValueForDereferincingOffset(StackFrame &frame, ValueObjectSP &base, int64_t offset)
> + {
> + // base is a pointer to something
> + // offset is the thing to add to the pointer
> + // We return the most sensible ValueObject for the result of *(base+offset)
> +
> + if (!base->IsPointerOrReferenceType())
> + {
> + return ValueObjectSP();
> + }
> +
> + Error error;
> + ValueObjectSP pointee = base->Dereference(error);
> +
> + if (offset >= pointee->GetByteSize())
I also noticed that the compiler is emitting a warning about
comparison of integers with different signs. Based on a cursory
examination I think this could be a genuine problem, but I have no
idea how to fix it. It would be great if you could look into that.
regards,
pavel
More information about the lldb-commits
mailing list