From 80d269391b93449a7a61322326730b117d3211d9 Mon Sep 17 00:00:00 2001
From: Yao Qi <yao@codesourcery.com>
Date: Mon, 16 Apr 2012 15:38:53 +0000
Subject: gdb/gdbserver/ 	* tracepoint.c (cmd_qtstart): Download
 tracepoints even when they are 	duplicated on address.

---
 gdb/gdbserver/ChangeLog    |  5 +++++
 gdb/gdbserver/tracepoint.c | 15 ++++++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 61d45a5..1c9b9d8 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,10 @@
 2012-04-16  Yao Qi  <yao@codesourcery.com>
 
+	* tracepoint.c (cmd_qtstart): Download tracepoints even when they are
+	duplicated on address.
+
+2012-04-16  Yao Qi  <yao@codesourcery.com>
+
 	* tracepoint.c (COPY_FIELD_TO_BUF): New macro.
 	(struct tracepoint_action_ops) <send>: New field.
 	(m_tracepoint_action_send, r_tracepoint_action_send): New.
diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
index a0fd39e..2d5cb05 100644
--- a/gdb/gdbserver/tracepoint.c
+++ b/gdb/gdbserver/tracepoint.c
@@ -3244,17 +3244,26 @@ cmd_qtstart (char *packet)
 
 	  if (tpoint->type == fast_tracepoint)
 	    {
+	      int use_agent_p
+		= use_agent && agent_capability_check (AGENT_CAPA_FAST_TRACE);
+
 	      if (prev_ftpoint != NULL
 		  && prev_ftpoint->address == tpoint->address)
-		clone_fast_tracepoint (tpoint, prev_ftpoint);
+		{
+		  if (use_agent_p)
+		    tracepoint_send_agent (tpoint);
+		  else
+		    download_tracepoint_1 (tpoint);
+
+		  clone_fast_tracepoint (tpoint, prev_ftpoint);
+		}
 	      else
 		{
 		  /* Tracepoint is installed successfully?  */
 		  int installed = 0;
 
 		  /* Download and install fast tracepoint by agent.  */
-		  if (use_agent
-		      && agent_capability_check (AGENT_CAPA_FAST_TRACE))
+		  if (use_agent_p)
 		    installed = !tracepoint_send_agent (tpoint);
 		  else
 		    {
-- 
cgit v1.1