Re: RFA: New port: ia64-hp-openvms (2/3) - v2

Tristan Gingold
2012-02-21T16:05:13Z

On Feb 14, 2012, at 6:35 PM, Pedro Alves wrote:

> On 02/10/2012 01:22 PM, Tristan Gingold wrote:
>>
>> 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.
>
> New packets need new documentation. There should be a
> new call to add_packet_config_cmd call in _initialize_remote.

Hi,

here is the new version, with the call to add_packet_config_cmd and the doc added.

> And ... where's the code that actually reads this new object?

[You have found it].

Thanks,
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.
(_initialize_remote): Call add_packet_config_cmd for
xfer:uib packet.

doc/
2012-02-15 Tristan Gingold <gingold@adacore.com>

* gdb.texinfo (General Query Packets): Document xfer:uib.

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 73779a7..29c539b 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -35063,6 +35063,11 @@ These are the currently defined stub features and their properties:
@tab @samp{-}
@tab Yes

+@item @samp{qXfer:uib:read}
+@tab No
+@tab @samp{-}
+@tab Yes
+
@item @samp{qXfer:fdpic:read}
@tab No
@tab @samp{-}
@@ -35192,6 +35197,10 @@ The remote stub understands the @samp{qXfer:threads:read} packet
The remote stub understands the @samp{qXfer:traceframe-info:read}
packet (@pxref{qXfer traceframe info read}).

+@item qXfer:uib:read
+The remote stub understands the @samp{qXfer:uib:read}
+packet (@pxref{qXfer unwind info block}).
+
@item qXfer:fdpic:read
The remote stub understands the @samp{qXfer:fdpic:read}
packet (@pxref{qXfer fdpic loadmap read}).
@@ -35479,6 +35488,14 @@ Return a description of the current traceframe's contents.
This packet is not probed by default; the remote stub must request it,
by supplying an appropriate @samp{qSupported} response (@pxref{qSupported}).

+@item qXfer:uib:read:@var{pc}:@var{offset},@var{length}
+@anchor{qXfer unwind info block}
+
+Return the unwind information block for @var{pc}. This packet is used
+on OpenVMS/ia64 to ask the kernel unwind information.
+
+This packet is not probed by default.
+
@item qXfer:fdpic:read:@var{annex}:@var{offset},@var{length}
@anchor{qXfer fdpic loadmap read}
Read contents of @code{loadmap}s on the target system. The
diff --git a/gdb/remote.c b/gdb/remote.c
index 14c343b..5822376 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,
@@ -8426,6 +8429,11 @@ 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;
}
@@ -11217,6 +11225,9 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
(&remote_protocol_packets[PACKET_qXfer_traceframe_info],
"qXfer:trace-frame-info:read", "traceframe-info", 0);

+ add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_uib],
+ "qXfer:uib:read", "unwind-info-block", 0);
+
add_packet_config_cmd (&remote_protocol_packets[PACKET_qGetTLSAddr],
"qGetTLSAddr", "get-thread-local-storage-address",
0);
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, ... */
};