diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-12-12 09:09:43 +0000 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-12-12 09:09:43 +0000 |
commit | d36cab83a963f5bb3773e0218cc02f63b0851d0b (patch) | |
tree | 9b58509f75e45f551aba1180a78c8d5250d142e8 /gdb | |
parent | 029e9d52de3ac7fe984dc079ebd24506fd1eace7 (diff) | |
download | gdb-d36cab83a963f5bb3773e0218cc02f63b0851d0b.zip gdb-d36cab83a963f5bb3773e0218cc02f63b0851d0b.tar.gz gdb-d36cab83a963f5bb3773e0218cc02f63b0851d0b.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/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/cris-tdep.c | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f115283..e25f025 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 Pedro Alves <palves@redhat.com> * Makefile.in (ALL_TARGET_OBS): Remove vax-obsd-tdep.o. diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 084ff49..f2d9eed 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3792,10 +3792,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); |