mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-02 02:45:37 +08:00
2009-10-01 Phil Muldoon <pmuldoon@redhat.com>
* infcall.c (call_function_by_hand): Add a new cleanup branch for std::terminate breakpoints.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2009-10-01 Phil Muldoon <pmuldoon@redhat.com>
|
||||||
|
|
||||||
|
* infcall.c (call_function_by_hand): Add a new cleanup branch for
|
||||||
|
std::terminate breakpoints.
|
||||||
|
|
||||||
2009-09-29 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2009-09-29 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): New variable buf.
|
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): New variable buf.
|
||||||
|
@ -441,6 +441,7 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
|
|||||||
struct gdbarch *gdbarch;
|
struct gdbarch *gdbarch;
|
||||||
struct breakpoint *terminate_bp = NULL;
|
struct breakpoint *terminate_bp = NULL;
|
||||||
struct minimal_symbol *tm;
|
struct minimal_symbol *tm;
|
||||||
|
struct cleanup *terminate_bp_cleanup = NULL;
|
||||||
ptid_t call_thread_ptid;
|
ptid_t call_thread_ptid;
|
||||||
struct gdb_exception e;
|
struct gdb_exception e;
|
||||||
const char *name;
|
const char *name;
|
||||||
@ -772,7 +773,7 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
|
|||||||
|
|
||||||
/* Register a clean-up for unwind_on_terminating_exception_breakpoint. */
|
/* Register a clean-up for unwind_on_terminating_exception_breakpoint. */
|
||||||
if (terminate_bp)
|
if (terminate_bp)
|
||||||
make_cleanup_delete_breakpoint (terminate_bp);
|
terminate_bp_cleanup = make_cleanup_delete_breakpoint (terminate_bp);
|
||||||
|
|
||||||
/* - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP -
|
/* - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP -
|
||||||
If you're looking to implement asynchronous dummy-frames, then
|
If you're looking to implement asynchronous dummy-frames, then
|
||||||
@ -987,6 +988,11 @@ When the function is done executing, GDB will silently stop."),
|
|||||||
internal_error (__FILE__, __LINE__, _("... should not be here"));
|
internal_error (__FILE__, __LINE__, _("... should not be here"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we get here and the std::terminate() breakpoint has been set,
|
||||||
|
it has to be cleaned manually. */
|
||||||
|
if (terminate_bp)
|
||||||
|
do_cleanups (terminate_bp_cleanup);
|
||||||
|
|
||||||
/* If we get here the called FUNCTION ran to completion,
|
/* If we get here the called FUNCTION ran to completion,
|
||||||
and the dummy frame has already been popped. */
|
and the dummy frame has already been popped. */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user