This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v9 06/29] frame: add frame_id_build_unavailable_stack_special
- From: Markus Metzger <markus dot t dot metzger at intel dot com>
- To: jan dot kratochvil at redhat dot com, palves at redhat dot com
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 19 Dec 2013 17:44:36 +0100
- Subject: [PATCH v9 06/29] frame: add frame_id_build_unavailable_stack_special
- Authentication-results: sourceware.org; auth=none
- References: <1387471499-29444-1-git-send-email-markus dot t dot metzger at intel dot com>
Add a function to build a frame_id for a frame with unavailable stack
and with a special identifier address.
2013-12-19 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.
---
gdb/frame.c | 16 ++++++++++++++++
gdb/frame.h | 8 ++++++++
2 files changed, 24 insertions(+)
diff --git a/gdb/frame.c b/gdb/frame.c
index 99c2309..8facdc00 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -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)
{
diff --git a/gdb/frame.h b/gdb/frame.h
index 8b6755e..00943ad 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -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. */
--
1.8.3.1