Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew STUBBS <andrew.stubbs@st.com>
To: Andrew STUBBS <andrew.stubbs@st.com>, gdb-patches@sources.redhat.com
Subject: Re: [PATCH] Disable thread specific breakpoints when thread dies
Date: Fri, 13 Jan 2006 17:35:00 -0000	[thread overview]
Message-ID: <43C7E466.9080703@st.com> (raw)
In-Reply-To: <20060112162659.GA16141@nevyn.them.org>

[-- Attachment #1: Type: text/plain, Size: 963 bytes --]

Daniel Jacobowitz wrote:
>>> You shouldn't need to use the target method here.  Does valid_thread_id
>>> work?
>>>
>>> Also, please remember the space before opening parentheses.
>> The thread still seems to have a valid ID after it has died. You can 
>> even do 'b 8 t 4' after the program has exited. It does give an error 
>> for threads which never existed though.
> 
> Why does that happen?  It is presumably a bug.
> 

I have looked into this. The problem is that the threads are only 
deleted from the table when 'info threads' is used. The target method 
works because that queries the target, not GDB's internal state, and 
always gets the right answer (at least in our target interface).

I am happy, therefore, that the attached patch, with valid_thread_id(), 
is correct, and will work once this other problem has been solved (or if 
the user types 'info threads').

OK to commit?

I'll have a look for real problem next week probably.

Andrew Stubbs

[-- Attachment #2: thread-break-3.patch --]
[-- Type: text/plain, Size: 888 bytes --]

2006-01-13  Andrew Stubbs  <andrew.stubbs@st.com>

	* breakpoint.c (insert_breakpoints): Check that a thread exists
	before inserting thread specific breakpoints.

Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c	2006-01-03 18:23:49.000000000 +0000
+++ src/gdb/breakpoint.c	2006-01-13 16:34:50.000000000 +0000
@@ -1142,6 +1142,12 @@ insert_breakpoints (void)
       if (!breakpoint_enabled (b->owner))
 	continue;
 
+      /* There is no point inserting thread-specific breakpoints if the
+	 thread no longer exists.  */
+      if (b->owner->thread != -1
+	  && !valid_thread_id (b->owner->thread))
+	continue;
+
       /* FIXME drow/2003-10-07: This code should be pushed elsewhere when
 	 hardware watchpoints are split into multiple loc breakpoints.  */
       if ((b->loc_type == bp_loc_hardware_watchpoint

  reply	other threads:[~2006-01-13 17:35 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-09 19:06 Andrew STUBBS
2005-11-13 21:13 ` Daniel Jacobowitz
2005-11-14 16:34   ` Andrew STUBBS
2005-11-14 17:11     ` Daniel Jacobowitz
2005-11-15 18:55       ` Andrew STUBBS
2005-11-16 16:23         ` Andrew STUBBS
2005-11-17  4:22           ` Daniel Jacobowitz
2005-11-17 16:34             ` Andrew STUBBS
2006-01-12 16:25               ` Andrew STUBBS
2006-01-13  4:19                 ` Michael Snyder
2006-01-13  4:31                   ` Daniel Jacobowitz
2006-01-12 16:27               ` Daniel Jacobowitz
2006-01-13 17:35                 ` Andrew STUBBS [this message]
2006-01-13 20:11                   ` Mark Kettenis
2006-01-14 15:46                     ` Daniel Jacobowitz
2006-01-14 15:56                       ` Mark Kettenis
2006-01-14 16:06                   ` Daniel Jacobowitz
2006-01-16 12:57                     ` Andrew STUBBS
2006-01-16 16:19                       ` Andrew STUBBS
2006-01-20 14:56                         ` Andrew STUBBS
2006-01-20 15:00                           ` Daniel Jacobowitz
2006-01-20 22:41                         ` Daniel Jacobowitz
2006-02-02  2:30                           ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=43C7E466.9080703@st.com \
    --to=andrew.stubbs@st.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox