[PATCH] Disable thread specific breakpoints when thread dies
Andrew STUBBS
andrew.stubbs@st.com
Thu Jan 12 16:25:00 GMT 2006
Ping.
Since valid_thread_id did not work am I OK to commit this one. It has
been on hold since mid Novemeber.
Thanks
Andrew
Andrew Stubbs wrote:
> Daniel Jacobowitz wrote:
>
>> On Wed, Nov 16, 2005 at 02:52:17PM +0000, Andrew STUBBS wrote:
>>
>>> + /* There is no point inserting thread-specific breakpoints if the
>>> + thread no longer exists. */
>>> + if (b->owner->thread != -1
>>> + && !target_thread_alive(thread_id_to_pid(b->owner->thread)))
>>> + continue;
>>
>>
>>
>> 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.
>
> Here is the patch again with the spaces fixed.
>
> Andrew
>
>
>
> ------------------------------------------------------------------------
>
> 2005-11-17 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 2005-11-17 15:47:04.000000000 +0000
> +++ src/gdb/breakpoint.c 2005-11-17 15:47:42.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
> + && !target_thread_alive (thread_id_to_pid (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
More information about the Gdb-patches
mailing list