This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Change trace buffer size(v5)
- From: "Abid, Hafiz" <hafiz_abid at mentor dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: Yao Qi <yao at codesourcery dot com>, <gdb-patches at sourceware dot org>, <stan at codesourcery dot com>, <eliz at gnu dot org>
- Date: Fri, 3 May 2013 16:08:43 +0100
- Subject: Re: [patch] Change trace buffer size(v5)
On 03/05/13 15:04:52, Pedro Alves wrote:
On 05/03/2013 12:38 PM, Abid, Hafiz wrote:
> Hi Pedro,
> Thanks for letting me know. There is a testcase in
status-stop.exp(test_tstart_tstart) to check this case but it is not
working as intended. I will work on a patch.
Thanks.
--
Pedro Alves
Hi Pedro,
I have attached a patch. It calls 'stop_tracing' from the QTinit
handler. I was wondering that setting 'tracing' to 0 may be enough. But
stop_tracing seems to do a lot of other things which may be required.
So I thought it is better to go with it. Another possibility is to let
QTBuffer:size handler return ok if the new size is equal to current
size irrespective of the value of 'tracing'.
As I mentioned earlier, a testcase was already present for this
scenario but it was missing the error message that came after we press
'y'. I have handled it but would like to know if there is a better way
to do it. I saw no regression on native-gdbserver run.
Regards,
Abid
gdb/testsuite/ChangeLog:
2013-05-03 Hafiz Abid Qadeer <abidh@codesourcery.com>
* status-stop.exp (test_tstart_tstart): Check for error
returned by the second 'tstart' command.
gdb/gdbserver/ChangeLog:
2013-05-03 Hafiz Abid Qadeer <abidh@codesourcery.com>
* tracepoint.c (cmd_qtinit): Call 'stop_tracing'.
diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
index 419765b..1ff6114 100644
--- a/gdb/gdbserver/tracepoint.c
+++ b/gdb/gdbserver/tracepoint.c
@@ -2354,6 +2354,8 @@ cmd_qtinit (char *packet)
/* Make sure we don't try to read from a trace frame. */
current_traceframe = -1;
+ stop_tracing ();
+
trace_debug ("Initializing the trace");
clear_installed_tracepoints ();
diff --git a/gdb/testsuite/gdb.trace/status-stop.exp b/gdb/testsuite/gdb.trace/status-stop.exp
index bca03d2..33c1eb9 100644
--- a/gdb/testsuite/gdb.trace/status-stop.exp
+++ b/gdb/testsuite/gdb.trace/status-stop.exp
@@ -66,6 +66,7 @@ proc test_tstart_tstop_tstart { } {
proc test_tstart_tstart { } {
with_test_prefix "tstart_tstart" {
+ global gdb_prompt
global executable
global hex
@@ -79,9 +80,13 @@ proc test_tstart_tstart { } {
gdb_test "trace func1" "Tracepoint \[0-9\] at $hex: file.*"
gdb_test_no_output "tstart"
- gdb_test "tstart" "" "tstart again" \
- "A trace is running already. Start a new run\\? \\(y or n\\) " \
- "y"
+ set test "tstart again"
+ gdb_test_multiple "tstart" $test {
+ -re "A trace is running already. Start a new run.*y or n.*" {
+ # Send 'y' and make sure that we don't get any error.
+ gdb_test_no_output "y" $test
+ }
+ }
}
}