public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object
@ 2010-03-10 17:33 danny dot geist at gmail dot com
  2010-03-10 19:15 ` [Bug breakpoints/11368] " tromey at redhat dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: danny dot geist at gmail dot com @ 2010-03-10 17:33 UTC (permalink / raw)
  To: gdb-prs

I hacked this out. 
1. The call (print) command. Sets up a cleanup marker to clean everything
(including breakpoints) during the call command execution. Some breakpoints are
generated (gdb internal). 
2. Then the called function  loads a shared object. At this point gdb gets a
load shared object event. gdb then decides to reset all breakpoints.
3. The reset breakpoint function deletes all breakpoints and their dynamic
memory. HOWEVER it does so bypassing the intended cleanup mecahnism in gdb which
utilizes cleanup lists.
4. Thus a situation happens where the cleanup list entries point to already
deleted locations.
5. When the called function exits the control is returned to the gdb call
command. The command finalizes with a cleanup using the cleanup lists and tries
to free already free'ed memory - and hits an exception.

-- 
           Summary: breakpoint deleted twice when using call command that
                    loads shared object
           Product: gdb
           Version: 7.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: breakpoints
        AssignedTo: unassigned at sourceware dot org
        ReportedBy: danny dot geist at gmail dot com
                CC: gdb-prs at sourceware dot org
GCC target triplet: i686-pc-linux-gnu


http://sourceware.org/bugzilla/show_bug.cgi?id=11368

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug breakpoints/11368] breakpoint deleted twice when using call command that loads shared object
  2010-03-10 17:33 [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object danny dot geist at gmail dot com
@ 2010-03-10 19:15 ` tromey at redhat dot com
  2010-03-10 19:57 ` danny dot geist at gmail dot com
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-03-10 19:15 UTC (permalink / raw)
  To: gdb-prs


------- Additional Comments From tromey at redhat dot com  2010-03-10 19:15 -------
I'm already working on this.
This is also: https://bugzilla.redhat.com/show_bug.cgi?id=562975
Also this thread: http://sourceware.org/ml/gdb-patches/2010-02/msg00625.html
And, finally, a workaround is set unwind-on-terminating-exception off


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at sourceware dot|tromey at redhat dot com
                   |org                         |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-03-10 19:15:16
               date|                            |


http://sourceware.org/bugzilla/show_bug.cgi?id=11368

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug breakpoints/11368] breakpoint deleted twice when using call command that loads shared object
  2010-03-10 17:33 [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object danny dot geist at gmail dot com
  2010-03-10 19:15 ` [Bug breakpoints/11368] " tromey at redhat dot com
@ 2010-03-10 19:57 ` danny dot geist at gmail dot com
  2010-03-10 20:00 ` tromey at redhat dot com
  2010-03-25 20:54 ` tromey at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: danny dot geist at gmail dot com @ 2010-03-10 19:57 UTC (permalink / raw)
  To: gdb-prs


------- Additional Comments From danny dot geist at gmail dot com  2010-03-10 19:57 -------
(In reply to comment #1)
> I'm already working on this.
> This is also: https://bugzilla.redhat.com/show_bug.cgi?id=562975
> Also this thread: http://sourceware.org/ml/gdb-patches/2010-02/msg00625.html
> And, finally, a workaround is set unwind-on-terminating-exception off
> 

Yes. Looks identical. Should I mark the bug as duplicate? This is the first time
I have logged a bug for gdb.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11368

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug breakpoints/11368] breakpoint deleted twice when using call command that loads shared object
  2010-03-10 17:33 [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object danny dot geist at gmail dot com
  2010-03-10 19:15 ` [Bug breakpoints/11368] " tromey at redhat dot com
  2010-03-10 19:57 ` danny dot geist at gmail dot com
@ 2010-03-10 20:00 ` tromey at redhat dot com
  2010-03-25 20:54 ` tromey at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-03-10 20:00 UTC (permalink / raw)
  To: gdb-prs


------- Additional Comments From tromey at redhat dot com  2010-03-10 20:00 -------
There's no good way to mark it as a dup of a bug in some other bugzilla,
and anyway this one is the master for gdb.  So let's just leave this open.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11368

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug breakpoints/11368] breakpoint deleted twice when using call command that loads shared object
  2010-03-10 17:33 [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object danny dot geist at gmail dot com
                   ` (2 preceding siblings ...)
  2010-03-10 20:00 ` tromey at redhat dot com
@ 2010-03-25 20:54 ` tromey at redhat dot com
  3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-03-25 20:54 UTC (permalink / raw)
  To: gdb-prs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2010-03-25 20:49 -------
Subject: Bug 11368

CVSROOT:	/cvs/src
Module name:	src
Changes by:	tromey@sourceware.org	2010-03-25 20:48:53

Modified files:
	gdb            : ChangeLog breakpoint.c breakpoint.h infcall.c 
	                 infcmd.c inferior.h infrun.c 

Log message:
	PR gdb/11327, PR gdb/11328, PR breakpoints/11368:
	* infrun.c (handle_inferior_event): Change initialization of
	stop_stack_dummy.
	(handle_inferior_event): Change assignment to stop_stack_dummy.
	(normal_stop): Update use of stop_stack_dummy.
	(struct inferior_status) <stop_stack_dummy>: Change type.
	* inferior.h (stop_stack_dummy): Update.
	* infcmd.c (stop_stack_dummy): Change type.
	* infcall.c (cleanup_delete_std_terminate_breakpoint): New
	function.
	(call_function_by_hand): Call set_std_terminate_breakpoint.
	Rewrite std::terminate handling.
	* breakpoint.h (enum bptype) <bp_std_terminate,
	bp_std_terminate_master>: New.
	(enum stop_stack_kind): New.
	(struct bpstat_what) <call_dummy>: Change type.
	(set_std_terminate_breakpoint, delete_std_terminate_breakpoint):
	Declare.
	* breakpoint.c (create_std_terminate_master_breakpoint): New
	function.
	(update_breakpoints_after_exec): Handle bp_std_terminate_master.
	Call create_std_terminate_master_breakpoint.
	(print_it_typical): Handle new breakpoint kinds.
	(bpstat_stop_status): Handle bp_std_terminate_master.
	(bpstat_what): Correctly set call_dummy field.  Handle
	bp_std_terminate_master and bp_std_terminate.
	(print_one_breakpoint_location): Update.
	(allocate_bp_location): Update.
	(set_std_terminate_breakpoint): New function.
	(delete_std_terminate_breakpoint): Likewise.
	(create_thread_event_breakpoint): Update.
	(delete_command): Update.
	(breakpoint_re_set_one): Update.
	(breakpoint_re_set): Call create_std_terminate_master_breakpoint.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.11530&r2=1.11531
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.c.diff?cvsroot=src&r1=1.467&r2=1.468
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.h.diff?cvsroot=src&r1=1.112&r2=1.113
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infcall.c.diff?cvsroot=src&r1=1.128&r2=1.129
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infcmd.c.diff?cvsroot=src&r1=1.262&r2=1.263
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/inferior.h.diff?cvsroot=src&r1=1.142&r2=1.143
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infrun.c.diff?cvsroot=src&r1=1.434&r2=1.435


------- Additional Comments From tromey at redhat dot com  2010-03-25 20:54 -------
I checked in the fix.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|7.1                         |7.2


http://sourceware.org/bugzilla/show_bug.cgi?id=11368

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-03-25 20:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-10 17:33 [Bug breakpoints/11368] New: breakpoint deleted twice when using call command that loads shared object danny dot geist at gmail dot com
2010-03-10 19:15 ` [Bug breakpoints/11368] " tromey at redhat dot com
2010-03-10 19:57 ` danny dot geist at gmail dot com
2010-03-10 20:00 ` tromey at redhat dot com
2010-03-25 20:54 ` tromey at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).