diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 33f822bdb5..f3e90134bc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,8 +1,17 @@ 2012-03-05 Tristan Gingold - * osabi.c (gdb_osabi_names): Add OpenVMS. - (generic_elf_osabi_sniffer): Likewise. - * defs.h (gdb_osabi): Add GDB_OSABI_OPENVMS. + * 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. + +2012-03-05 Tristan Gingold + + * osabi.c (gdb_osabi_names): Add OpenVMS. + (generic_elf_osabi_sniffer): Likewise. + * defs.h (gdb_osabi): Add GDB_OSABI_OPENVMS. 2012-03-04 Jan Kratochvil diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index f3e483fcab..3c7357afc5 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,7 @@ +2012-03-05 Tristan Gingold + + * gdb.texinfo (General Query Packets): Document xfer:uib:read. + 2012-03-03 Yao Qi * gdb.texinfo (In-Process Agent): New node. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 62c92e9116..945b68d3dd 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -35220,6 +35220,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{-} @@ -35359,6 +35364,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}). @@ -35654,6 +35663,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 61bb2bb3cf..45fec177cb 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -1254,6 +1254,7 @@ enum { PACKET_qXfer_threads, PACKET_qXfer_statictrace_read, PACKET_qXfer_traceframe_info, + PACKET_qXfer_uib, PACKET_qGetTIBAddr, PACKET_qGetTLSAddr, PACKET_qSupported, @@ -3834,6 +3835,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 }, { "QAgent", PACKET_DISABLE, remote_supported_packet, PACKET_QAgent}, @@ -8484,6 +8487,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; } @@ -11316,6 +11324,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 850cb38810..ed2bcdd81a 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, ... */ };