2011-02-16 Yao Qi <yao@qiyaows>

* infrun.c (get_displaced_step_closure_by_addr): New.
	* inferior.h: Declare it.
	* arm-tdep.c: (arm_pc_is_thumb): Call
	get_displaced_step_closure_by_addr.  Adjust MEMADDR if it
	returns non-NULL.
This commit is contained in:
Yao Qi 2011-02-16 14:54:42 +00:00
parent 3dfcbbd281
commit a42244dbec
4 changed files with 42 additions and 0 deletions

View file

@ -1078,6 +1078,24 @@ add_displaced_stepping_state (int pid)
return state;
}
/* If inferior is in displaced stepping, and ADDR equals to starting address
of copy area, return corresponding displaced_step_closure. Otherwise,
return NULL. */
struct displaced_step_closure*
get_displaced_step_closure_by_addr (CORE_ADDR addr)
{
struct displaced_step_inferior_state *displaced
= get_displaced_stepping_state (ptid_get_pid (inferior_ptid));
/* If checking the mode of displaced instruction in copy area. */
if (displaced && !ptid_equal (displaced->step_ptid, null_ptid)
&& (displaced->step_copy == addr))
return displaced->step_closure;
return NULL;
}
/* Remove the displaced stepping state of process PID. */
static void