frame: add frame_id_build_unavailable_stack_special

Add a function to build a frame_id for a frame with unavailable stack
and with a special identifier address.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* frame.h (frame_id_build_unavailable_stack_special): New.
	* frame.c (frame_id_build_unavailable_stack_special): New.
This commit is contained in:
Markus Metzger 2013-12-18 14:13:54 +01:00
parent c2170eeffa
commit 8372a7cb96
3 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
* frame.h (frame_id_build_unavailable_stack_special): New.
* frame.c (frame_id_build_unavailable_stack_special): New.
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
* amd64-tdep.c (amd64_classify_insn_at, amd64_insn_is_call)

View File

@ -528,6 +528,22 @@ frame_id_build_unavailable_stack (CORE_ADDR code_addr)
return id;
}
/* See frame.h. */
struct frame_id
frame_id_build_unavailable_stack_special (CORE_ADDR code_addr,
CORE_ADDR special_addr)
{
struct frame_id id = null_frame_id;
id.stack_status = FID_STACK_UNAVAILABLE;
id.code_addr = code_addr;
id.code_addr_p = 1;
id.special_addr = special_addr;
id.special_addr_p = 1;
return id;
}
struct frame_id
frame_id_build (CORE_ADDR stack_addr, CORE_ADDR code_addr)
{

View File

@ -193,6 +193,14 @@ extern struct frame_id frame_id_build_special (CORE_ADDR stack_addr,
address is set to indicate a wild card. */
extern struct frame_id frame_id_build_unavailable_stack (CORE_ADDR code_addr);
/* Construct a frame ID representing a frame where the stack address
exists, but is unavailable. CODE_ADDR is the frame's constant code
address (typically the entry point). SPECIAL_ADDR is the special
identifier address. */
extern struct frame_id
frame_id_build_unavailable_stack_special (CORE_ADDR code_addr,
CORE_ADDR special_addr);
/* Construct a wild card frame ID. The parameter is the frame's constant
stack address (typically the outer-bound). The code address as well
as the special identifier address are set to indicate wild cards. */