Re: 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
Dmitry Antipov <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
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