Exception safety in ravenscar-thread.c
This changes some code in ravenscar-thread.c to use scoped_restore. I am not sure if it matters in practice, but this makes these methods exception-safe in case the methods lower in the target stack can throw. gdb/ChangeLog 2019-02-15 Tom Tromey <tromey@adacore.com> * ravenscar-thread.c (ravenscar_thread_target::stopped_by_sw_breakpoint) (ravenscar_thread_target::stopped_by_hw_breakpoint) (ravenscar_thread_target::stopped_by_watchpoint) (ravenscar_thread_target::stopped_data_address) (ravenscar_thread_target::core_of_thread): Use scoped_restore.
This commit is contained in:
parent
e397fd39c6
commit
5b6ea500d5
|
@ -1,3 +1,11 @@
|
|||
2019-02-15 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* ravenscar-thread.c (ravenscar_thread_target::stopped_by_sw_breakpoint)
|
||||
(ravenscar_thread_target::stopped_by_hw_breakpoint)
|
||||
(ravenscar_thread_target::stopped_by_watchpoint)
|
||||
(ravenscar_thread_target::stopped_data_address)
|
||||
(ravenscar_thread_target::core_of_thread): Use scoped_restore.
|
||||
|
||||
2019-02-15 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* ravenscar-thread.c: Fix some typos.
|
||||
|
|
|
@ -464,13 +464,9 @@ ravenscar_thread_target::prepare_to_store (struct regcache *regcache)
|
|||
bool
|
||||
ravenscar_thread_target::stopped_by_sw_breakpoint ()
|
||||
{
|
||||
ptid_t saved_ptid = inferior_ptid;
|
||||
bool result;
|
||||
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
|
||||
result = beneath ()->stopped_by_sw_breakpoint ();
|
||||
inferior_ptid = saved_ptid;
|
||||
return result;
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid);
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (inferior_ptid);
|
||||
return beneath ()->stopped_by_sw_breakpoint ();
|
||||
}
|
||||
|
||||
/* Implement the to_stopped_by_hw_breakpoint target_ops "method". */
|
||||
|
@ -478,13 +474,9 @@ ravenscar_thread_target::stopped_by_sw_breakpoint ()
|
|||
bool
|
||||
ravenscar_thread_target::stopped_by_hw_breakpoint ()
|
||||
{
|
||||
ptid_t saved_ptid = inferior_ptid;
|
||||
bool result;
|
||||
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
|
||||
result = beneath ()->stopped_by_hw_breakpoint ();
|
||||
inferior_ptid = saved_ptid;
|
||||
return result;
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid);
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (inferior_ptid);
|
||||
return beneath ()->stopped_by_hw_breakpoint ();
|
||||
}
|
||||
|
||||
/* Implement the to_stopped_by_watchpoint target_ops "method". */
|
||||
|
@ -492,13 +484,9 @@ ravenscar_thread_target::stopped_by_hw_breakpoint ()
|
|||
bool
|
||||
ravenscar_thread_target::stopped_by_watchpoint ()
|
||||
{
|
||||
ptid_t saved_ptid = inferior_ptid;
|
||||
bool result;
|
||||
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
|
||||
result = beneath ()->stopped_by_watchpoint ();
|
||||
inferior_ptid = saved_ptid;
|
||||
return result;
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid);
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (inferior_ptid);
|
||||
return beneath ()->stopped_by_watchpoint ();
|
||||
}
|
||||
|
||||
/* Implement the to_stopped_data_address target_ops "method". */
|
||||
|
@ -506,13 +494,9 @@ ravenscar_thread_target::stopped_by_watchpoint ()
|
|||
bool
|
||||
ravenscar_thread_target::stopped_data_address (CORE_ADDR *addr_p)
|
||||
{
|
||||
ptid_t saved_ptid = inferior_ptid;
|
||||
bool result;
|
||||
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
|
||||
result = beneath ()->stopped_data_address (addr_p);
|
||||
inferior_ptid = saved_ptid;
|
||||
return result;
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid);
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (inferior_ptid);
|
||||
return beneath ()->stopped_data_address (addr_p);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -528,13 +512,9 @@ ravenscar_thread_target::mourn_inferior ()
|
|||
int
|
||||
ravenscar_thread_target::core_of_thread (ptid_t ptid)
|
||||
{
|
||||
ptid_t saved_ptid = inferior_ptid;
|
||||
int result;
|
||||
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
|
||||
result = beneath ()->core_of_thread (inferior_ptid);
|
||||
inferior_ptid = saved_ptid;
|
||||
return result;
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid);
|
||||
inferior_ptid = get_base_thread_from_ravenscar_task (inferior_ptid);
|
||||
return beneath ()->core_of_thread (inferior_ptid);
|
||||
}
|
||||
|
||||
/* Observer on inferior_created: push ravenscar thread stratum if needed. */
|
||||
|
|
Loading…
Reference in New Issue