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]

gdb and binutils branch master updated. 6be47f0c48cbd58921a25e7493ca79a6f596dffe


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  6be47f0c48cbd58921a25e7493ca79a6f596dffe (commit)
      from  b97e87cc01703e2e612b1fc21c54f90b1a0f4519 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

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

commit 6be47f0c48cbd58921a25e7493ca79a6f596dffe
Author: Keith Seitz <keiths@redhat.com>
Date:   Wed Jun 11 13:26:50 2014 -0700

    Fix for PR mi/15863
    
    If an MI client creates a varobj and attempts to update the root
    /before/ the inferior is started, gdb will throw an internal error:
    
    (gdb)
    -var-create * - batch_flag
    ^done,name="var1",numchild="0",value="0",type="int",has_more="0"
    (gdb)
    -var-update var1
    ^done,changelist=[]
    (gdb)
    -var-update *
    ~"../../src/gdb/thread.c:628: internal-error: is_thread_state: Assertion `tp' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugging session? "
    ~"(y or n) "
    
    The function that handles the varobj update in the failing case,
    mi_cmd_var_udpate_iter, checks if the thread/inferior is stopped before
    attempting to update the varobj. It calls is_stopped (inferior_ptid)
    which calls is_thread_state:
    
        tp = find_thread_ptid (ptid);
        gdb_assert (tp);
    
    When there is no inferior, ptid is null_ptid, and find_thread_ptid (null_ptid)
    returns NULL and the assertion is triggered.
    
    This patch changes mi_cmd_var_update_iter to behave the same way
    "-var-update var1" does: by calling the thread "stopped" if
    there is no inferior (and thereby calling varobj_update_one).
    
    ChangeLog
    2014-06-16  Keith Seitz  <keiths@redhat.com>
    
    	PR mi/15863
    	* mi/mi-cmd-var.c (mi_cmd_var_update_iter): Do not attempt
    	to update the varobj if inferior_ptid is null_ptid.
    
    testsuite/ChangeLog
    2014-06-16  Keith Seitz  <keiths@redhat.com>
    
    	PR mi/15863
    	* gdb.mi/mi-var-cmd.exp: Add test for -var-update before
    	the inferior is started.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog                       |    6 ++++++
 gdb/mi/mi-cmd-var.c                 |    4 +++-
 gdb/testsuite/ChangeLog             |    6 ++++++
 gdb/testsuite/gdb.mi/mi-var-cmd.exp |    6 ++++++
 4 files changed, 21 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
gdb and binutils


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