This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RFA: New port: ia64-hp-openvms (2/3)
- From: Tristan Gingold <gingold at adacore dot com>
- To: "gdb-patches at sourceware dot org ml" <gdb-patches at sourceware dot org>
- Cc: Rupp Douglas <rupp at adacore dot com>
- Date: Fri, 10 Feb 2012 14:22:56 +0100
- Subject: RFA: New port: ia64-hp-openvms (2/3)
- References: <6AD2487F-8409-4F4E-93A6-9DB7FD195E71@adacore.com>
The easiest way to get the unwind entry is to ask to the OpenVMS kernel, as this always work.
Might not be optimal for the user application, but it is bullet-proof.
Tristan.
2012-02-10 Tristan Gingold <gingold@adacore.com>
* target.h (target_object): Add TARGET_OBJECT_OPENVMS_UIB.
* remote.c (PACKET_qXfer_uib): New enum value.
(remote_protocol_features): Add entry for PACKET_qXfer_uib.
(remote_xfer_partial): Handle TARGET_OBJECT_OPENVMS_UIB.
diff --git a/gdb/remote.c b/gdb/remote.c
index 3187ac0..7787864 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1250,6 +1250,7 @@ enum {
PACKET_qXfer_threads,
PACKET_qXfer_statictrace_read,
PACKET_qXfer_traceframe_info,
+ PACKET_qXfer_uib,
PACKET_qGetTIBAddr,
PACKET_qGetTLSAddr,
PACKET_qSupported,
@@ -3830,6 +3831,8 @@ static struct protocol_feature remote_protocol_features[] = {
remote_enable_disable_tracepoint_feature, -1 },
{ "qXfer:fdpic:read", PACKET_DISABLE, remote_supported_packet,
PACKET_qXfer_fdpic },
+ { "qXfer:uib:read", PACKET_DISABLE, remote_supported_packet,
+ PACKET_qXfer_uib },
{ "QDisableRandomization", PACKET_DISABLE, remote_supported_packet,
PACKET_QDisableRandomization },
{ "tracenz", PACKET_DISABLE,
@@ -8417,6 +8420,12 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
case TARGET_OBJECT_FDPIC:
return remote_read_qxfer (ops, "fdpic", annex, readbuf, offset, len,
&remote_protocol_packets[PACKET_qXfer_fdpic]);
+
+ case TARGET_OBJECT_OPENVMS_UIB:
+ return remote_read_qxfer
+ (ops, "uib", annex, readbuf, offset, len,
+ &remote_protocol_packets[PACKET_qXfer_uib]);
+
default:
return -1;
}
diff --git a/gdb/target.h b/gdb/target.h
index d4605ae..5f642be 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -280,7 +280,9 @@ enum target_object
/* Load maps for FDPIC systems. */
TARGET_OBJECT_FDPIC,
/* Darwin dynamic linker info data. */
- TARGET_OBJECT_DARWIN_DYLD_INFO
+ TARGET_OBJECT_DARWIN_DYLD_INFO,
+ /* OpenVMS Unwind Information Block. */
+ TARGET_OBJECT_OPENVMS_UIB
/* Possible future objects: TARGET_OBJECT_FILE, ... */
};