[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