From: Yao Qi Date: Mon, 12 Dec 2016 09:09:43 +0000 (+0000) Subject: Remove assert on exec_bfd in cris_delayed_get_disassembler X-Git-Tag: gdb-7.12.1-release~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d47caa54a3fbdcf90b68c240b214d59d8befda7c;p=thirdparty%2Fbinutils-gdb.git Remove assert on exec_bfd in cris_delayed_get_disassembler cris_delayed_get_disassembler has an assert that exec_bfd can't be NULL, but this assert can be triggered like this, (gdb) set architecture cris The target architecture is assumed to be cris (gdb) disassemble 0x0,+4 Dump of assembler code from 0x0 to 0x4: 0x00000000: ../../binutils-gdb/gdb/cris-tdep.c:3798: internal-error: int cris_delayed_get_disassembler(bfd_vma, disassemble_info*): Assertion `exec_bfd != NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. however, cris_get_disassembler does have code to handle the case that bfd is NULL, /* If there's no bfd in sight, we return what is valid as input in all contexts if fed back to the assembler: disassembly *with* register prefix. Unfortunately this will be totally wrong for v32. */ if (abfd == NULL) return print_insn_cris_with_register_prefix; This patch is to remove this assert. gdb: 2016-12-12 Yao Qi PR tdep/20955 * cris-tdep.c (cris_delayed_get_disassembler): Remove the assert. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2f5a97892e2..ee33cb518ad 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2016-12-12 Yao Qi + + PR tdep/20955 + * cris-tdep.c (cris_delayed_get_disassembler): Remove the + assert. + 2016-12-09 Yao Qi PR tdep/20954 diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 1d2952472b4..56ff1f5eb18 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3787,10 +3787,7 @@ static int cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info) { int (*print_insn) (bfd_vma addr, struct disassemble_info *info); - /* FIXME: cagney/2003-08-27: It should be possible to select a CRIS - disassembler, even when there is no BFD. Does something like - "gdb; target remote; disassmeble *0x123" work? */ - gdb_assert (exec_bfd != NULL); + print_insn = cris_get_disassembler (exec_bfd); gdb_assert (print_insn != NULL); return print_insn (addr, info);