aarch64-tdep.c:379: internal-error: CORE_ADDR aarch64_analyze_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, aarch64_prologue_cache*, {anonymous}::abstract_instruction_reader&): Assertion `inst.operands[0].qualifier == AARCH64_OPND_QLF_S_D' failed
Simon Marchi
simon.marchi@polymtl.ca
Tue Apr 3 12:23:00 GMT 2018
On 2018-04-03 06:01, Dmitry Antipov wrote:
> On 04/03/2018 04:35 AM, Simon Marchi wrote:
>
>> So it looks like the GDB code assumes that no-one would ever save the
>> whole registers, because it is not necessary. GDB should not use
>> gdb_assert and crash on bad input. I don't know what it should do
>> instead in that specific case, that's the part that takes more time to
>> think about :).
>
> I think that "ABI violation" is not always a synonym for "bad input"
> :-), and we definitely don't want the debugger to crash on some
> handwritten
> inline assembler trick, for example. BTW, LLVM project debugger lldb
> seems uses more relaxed approach and allows STP with FP quadword
> operands in
> function prologues, see
> https://github.com/llvm-mirror/lldb/blob/master/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp.
>
> Dmitry
I agree.
Simon
More information about the Gdb
mailing list