This is the mail archive of the gdb-patches@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]

Re: [patch 1/5] Call update_global_location_list conditionally in install_breakpoint


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


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