Re: [patch] Change trace buffer size(v5)

Abid, Hafiz
2013-05-03T15:08:54Z

[-- Attachment #1: Type: text/plain, Size: 1373 bytes --]

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'.

[-- Attachment #2: test.patch --]
[-- Type: text/x-patch, Size: 1358 bytes --]

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
+ }
+ }
}
}