This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/gdb-7.12-branch] Remove assert on exec_bfd in cris_delayed_get_disassembler


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d47caa54a3fbdcf90b68c240b214d59d8befda7c

commit d47caa54a3fbdcf90b68c240b214d59d8befda7c
Author: Yao Qi <yao.qi@linaro.org>
Date:   Mon Dec 12 09:09:43 2016 +0000

    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.

Diff:
---
 gdb/ChangeLog   | 6 ++++++
 gdb/cris-tdep.c | 5 +----
 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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]