aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-12-12 09:09:43 +0000
committerYao Qi <yao.qi@linaro.org>2016-12-12 09:11:24 +0000
commitd47caa54a3fbdcf90b68c240b214d59d8befda7c (patch)
tree50521cb098ba4f80ea6e74ab25d0b5d3412d09ef /gdb
parenta3c5766547a7bea4b1901fdad0b22c061c52eb8b (diff)
downloadgdb-d47caa54a3fbdcf90b68c240b214d59d8befda7c.zip
gdb-d47caa54a3fbdcf90b68c240b214d59d8befda7c.tar.gz
gdb-d47caa54a3fbdcf90b68c240b214d59d8befda7c.tar.bz2
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 <yao.qi@linaro.org> PR tdep/20955 * cris-tdep.c (cris_delayed_get_disassembler): Remove the assert.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/cris-tdep.c5
2 files changed, 7 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2f5a978..ee33cb5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2016-12-12 Yao Qi <yao.qi@linaro.org>
+
+ PR tdep/20955
+ * cris-tdep.c (cris_delayed_get_disassembler): Remove the
+ assert.
+
2016-12-09 Yao Qi <yao.qi@linaro.org>
PR tdep/20954
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index 1d29524..56ff1f5 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);