2013-05-19 16:44:05 +00:00
|
|
|
http://sourceware.org/ml/gdb-patches/2013-05/msg00628.html
|
|
|
|
Subject: [RFA 4/7] GDB support for new gdbserver functionality
|
2012-08-18 07:41:09 +00:00
|
|
|
|
|
|
|
|
2013-05-19 16:44:05 +00:00
|
|
|
--CaPKgh3XHpq3rEUV
|
|
|
|
Content-Type: text/plain; charset=us-ascii
|
|
|
|
Content-Disposition: inline
|
|
|
|
|
|
|
|
This patch adds client support for the new gdbserver functionality
|
|
|
|
provided by patch 3 of this series.
|
|
|
|
|
|
|
|
--CaPKgh3XHpq3rEUV
|
|
|
|
Content-Type: text/plain; charset=us-ascii
|
|
|
|
Content-Disposition: attachment; filename="rtld-probes-4-remote.patch"
|
|
|
|
|
|
|
|
2013-05-16 Gary Benson <gbenson@redhat.com>
|
|
|
|
|
|
|
|
* target.h (target_ops): New field
|
|
|
|
"to_augmented_libraries_svr4_read".
|
|
|
|
(target_augmented_libraries_svr4_read): New macro.
|
|
|
|
* target.c (update_current_target): Handle
|
|
|
|
to_augmented_libraries_svr4_read.
|
|
|
|
* remote.c (remote_state): New field
|
|
|
|
"augmented_libraries_svr4_read".
|
|
|
|
(remote_augmented_libraries_svr4_read_feature): New function.
|
|
|
|
(remote_protocol_features): Add entry for
|
|
|
|
"augmented-libraries-svr4-read".
|
|
|
|
(remote_augmented_libraries_svr4_read): New function.
|
|
|
|
(init_remote_ops): Initialize
|
|
|
|
remote_ops.to_augmented_libraries_svr4_read.
|
|
|
|
|
|
|
|
diff --git a/gdb/target.h b/gdb/target.h
|
|
|
|
index e937d39..a8587e8 100644
|
|
|
|
--- a/gdb/target.h
|
|
|
|
+++ b/gdb/target.h
|
|
|
|
@@ -941,6 +941,10 @@ struct target_ops
|
|
|
|
(inclusive) to function END (exclusive). */
|
|
|
|
void (*to_call_history_range) (ULONGEST begin, ULONGEST end, int flags);
|
2012-08-18 07:41:09 +00:00
|
|
|
|
2013-05-19 16:44:05 +00:00
|
|
|
+ /* Nonzero if TARGET_OBJECT_LIBRARIES_SVR4 may be read with a
|
|
|
|
+ non-empty annex. */
|
|
|
|
+ int (*to_augmented_libraries_svr4_read) (void);
|
2012-08-18 07:41:09 +00:00
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
int to_magic;
|
|
|
|
/* Need sub-structure for target machine related rather than comm related?
|
|
|
|
*/
|
|
|
|
@@ -1809,6 +1813,9 @@ extern char *target_fileio_read_stralloc (const char *filename);
|
|
|
|
#define target_can_use_agent() \
|
|
|
|
(*current_target.to_can_use_agent) ()
|
|
|
|
|
|
|
|
+#define target_augmented_libraries_svr4_read() \
|
|
|
|
+ (*current_target.to_augmented_libraries_svr4_read) ()
|
2012-08-18 07:41:09 +00:00
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
/* Command logging facility. */
|
|
|
|
|
|
|
|
#define target_log_command(p) \
|
|
|
|
diff --git a/gdb/target.c b/gdb/target.c
|
|
|
|
index 8653dac..519b97f 100644
|
|
|
|
--- a/gdb/target.c
|
|
|
|
+++ b/gdb/target.c
|
|
|
|
@@ -731,6 +731,7 @@ update_current_target (void)
|
|
|
|
INHERIT (to_traceframe_info, t);
|
|
|
|
INHERIT (to_use_agent, t);
|
|
|
|
INHERIT (to_can_use_agent, t);
|
|
|
|
+ INHERIT (to_augmented_libraries_svr4_read, t);
|
|
|
|
INHERIT (to_magic, t);
|
|
|
|
INHERIT (to_supports_evaluation_of_breakpoint_conditions, t);
|
|
|
|
INHERIT (to_can_run_breakpoint_commands, t);
|
|
|
|
@@ -975,6 +976,9 @@ update_current_target (void)
|
|
|
|
de_fault (to_can_use_agent,
|
|
|
|
(int (*) (void))
|
|
|
|
return_zero);
|
|
|
|
+ de_fault (to_augmented_libraries_svr4_read,
|
|
|
|
+ (int (*) (void))
|
|
|
|
+ return_zero);
|
|
|
|
de_fault (to_execution_direction, default_execution_direction);
|
|
|
|
|
|
|
|
#undef de_fault
|
|
|
|
diff --git a/gdb/remote.c b/gdb/remote.c
|
|
|
|
index 51bf025..e1cf8a4 100644
|
|
|
|
--- a/gdb/remote.c
|
|
|
|
+++ b/gdb/remote.c
|
|
|
|
@@ -343,6 +343,10 @@ struct remote_state
|
|
|
|
/* True if the stub can collect strings using tracenz bytecode. */
|
|
|
|
int string_tracing;
|
|
|
|
|
|
|
|
+ /* True if the stub supports qXfer:libraries-svr4:read with a
|
|
|
|
+ non-empty annex. */
|
|
|
|
+ int augmented_libraries_svr4_read;
|
2012-08-18 07:41:09 +00:00
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
/* Nonzero if the user has pressed Ctrl-C, but the target hasn't
|
|
|
|
responded to that. */
|
|
|
|
int ctrlc_pending_p;
|
|
|
|
@@ -3931,6 +3935,16 @@ remote_string_tracing_feature (const struct protocol_feature *feature,
|
|
|
|
rs->string_tracing = (support == PACKET_ENABLE);
|
|
|
|
}
|
|
|
|
|
2012-08-18 07:41:09 +00:00
|
|
|
+static void
|
2013-05-19 16:44:05 +00:00
|
|
|
+remote_augmented_libraries_svr4_read_feature
|
|
|
|
+ (const struct protocol_feature *feature,
|
|
|
|
+ enum packet_support support, const char *value)
|
2012-08-18 07:41:09 +00:00
|
|
|
+{
|
2013-05-19 16:44:05 +00:00
|
|
|
+ struct remote_state *rs = get_remote_state ();
|
2012-08-18 07:41:09 +00:00
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
+ rs->augmented_libraries_svr4_read = (support == PACKET_ENABLE);
|
2012-08-18 07:41:09 +00:00
|
|
|
+}
|
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
static struct protocol_feature remote_protocol_features[] = {
|
|
|
|
{ "PacketSize", PACKET_DISABLE, remote_packet_size, -1 },
|
|
|
|
{ "qXfer:auxv:read", PACKET_DISABLE, remote_supported_packet,
|
|
|
|
@@ -3941,6 +3955,8 @@ static struct protocol_feature remote_protocol_features[] = {
|
|
|
|
PACKET_qXfer_libraries },
|
|
|
|
{ "qXfer:libraries-svr4:read", PACKET_DISABLE, remote_supported_packet,
|
|
|
|
PACKET_qXfer_libraries_svr4 },
|
|
|
|
+ { "augmented-libraries-svr4-read", PACKET_DISABLE,
|
|
|
|
+ remote_augmented_libraries_svr4_read_feature, -1 },
|
|
|
|
{ "qXfer:memory-map:read", PACKET_DISABLE, remote_supported_packet,
|
|
|
|
PACKET_qXfer_memory_map },
|
|
|
|
{ "qXfer:spu:read", PACKET_DISABLE, remote_supported_packet,
|
|
|
|
@@ -11343,6 +11359,14 @@ remote_read_btrace (struct btrace_target_info *tinfo,
|
|
|
|
return btrace;
|
|
|
|
}
|
|
|
|
|
|
|
|
+static int
|
|
|
|
+remote_augmented_libraries_svr4_read (void)
|
2012-08-18 07:41:09 +00:00
|
|
|
+{
|
2013-05-19 16:44:05 +00:00
|
|
|
+ struct remote_state *rs = get_remote_state ();
|
2012-08-18 07:41:09 +00:00
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
+ return rs->augmented_libraries_svr4_read;
|
2012-08-18 07:41:09 +00:00
|
|
|
+}
|
|
|
|
+
|
2013-05-19 16:44:05 +00:00
|
|
|
static void
|
|
|
|
init_remote_ops (void)
|
|
|
|
{
|
|
|
|
@@ -11465,6 +11489,8 @@ Specify the serial device it is connected to\n\
|
|
|
|
remote_ops.to_disable_btrace = remote_disable_btrace;
|
|
|
|
remote_ops.to_teardown_btrace = remote_teardown_btrace;
|
|
|
|
remote_ops.to_read_btrace = remote_read_btrace;
|
|
|
|
+ remote_ops.to_augmented_libraries_svr4_read =
|
|
|
|
+ remote_augmented_libraries_svr4_read;
|
2012-08-18 07:41:09 +00:00
|
|
|
}
|
|
|
|
|
2013-05-19 16:44:05 +00:00
|
|
|
/* Set up the extended remote vector by making a copy of the standard
|
|
|
|
|
|
|
|
--CaPKgh3XHpq3rEUV--
|
|
|
|
|