This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch 1/5] Call update_global_location_list conditionally in install_breakpoint
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: Yao Qi <yao at codesourcery dot com>
- Date: Wed, 16 Nov 2011 19:03:26 +0000
- Subject: Re: [patch 1/5] Call update_global_location_list conditionally in install_breakpoint
- References: <4EC20E2E.6010402@codesourcery.com> <4EC214F0.4070104@codesourcery.com>
On Tuesday 15 November 2011 07:29:52, Yao Qi wrote:
> During `pending tracepoint' work, we find install_breakpoint calls
> update_global_location_list(1), which may throw error, and we have (at
> the end of create_break() ):
>
> /* That's it. Discard the cleanups for data inserted into the
> breakpoint. */
> discard_cleanups (bkpt_chain);
> /* But cleanup everything else. */
> do_cleanups (old_chain);
>
> /* error call may happen here - have BKPT_CHAIN already discarded. */
> update_global_location_list (1);
>
> return 1;
>
> So, we should make sure that install_breakpoint called in
> create_breakpoint doesn't call update_global_location_list(1), so that
> update_global_location_list can be deferred to call at the end of
> create_breakpoint.
>
> In this patch, we add a new parameter to determine to call
> update_global_location_list. We pass 0 to install_breakpoint when it is
> used in create_breakpoint and its callee.
Okay.
> * ada-lang.c (create_ada_exception_catchpoint):
> * breakpoint.c (install_breakpoint): Add one more parameter so that
> update_global_location_list is called conditionally.
> (create_fork_vfork_event_catchpoint): Update.
> (create_syscall_event_catchpoint): Update.
> (create_breakpoint_sal): Update.
> (create_breakpoint_sal): Update. Call do_cleanups before
> install_breakpoint.
> * breakpoint.h (install_breakpoint): Update declaration.
--
Pedro Alves