aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-04-10 15:11:12 +0000
committerPedro Alves <palves@redhat.com>2013-04-10 15:11:12 +0000
commitf81d112039fa5c836e446d8f79331fdaa35d76ab (patch)
tree7f629e7ff028ac4c5eadfd3ba5777203615d0d1f /gdb/testsuite
parent2f9d54cfcef6c6085ff4bfcbf42c963527606d89 (diff)
downloadgdb-f81d112039fa5c836e446d8f79331fdaa35d76ab.zip
gdb-f81d112039fa5c836e446d8f79331fdaa35d76ab.tar.gz
gdb-f81d112039fa5c836e446d8f79331fdaa35d76ab.tar.bz2
Accept "set foo unlimited" in integer/uinteger/zuinteger_unlimited commands.
Currently, several commands take "0" or "-1" to mean "unlimited". "show" knows when to print "unlimited": (gdb) show height Number of lines gdb thinks are in a page is 45. (gdb) set height 0 (gdb) show height Number of lines gdb thinks are in a page is unlimited. However, the user can't herself specify "unlimited" directly: (gdb) set height unlimited No symbol table is loaded. Use the "file" command. (gdb) This patch addresses that, by adjusting the set handler for all integer/uinteger/zuinteger_unlimited commands to accept literal "unlimited". It also installs a completer. Presently, we complete on symbols by default, and at <http://sourceware.org/ml/gdb-patches/2013-03/msg00864.html> I've shown a WIP prototype that tried to keep that half working in these commands. In the end, it turned out to be more complicated than justifiable, IMO. It's super rare to want to pass the value of a variable/symbol in the program to a GDB set/show knob. That'll still work, it's just that we won't assist with completion anymore. This patch just sticks with the simple, and completes on "unlimited", and nothing else. This simplification means that "set he<tab><tab>" is all it takes to get to: "set height unlimited" The patch then goes through all integer/uinteger/zuinteger_unlimited commands in the tree, and updates both the online help and the manual to mention that "unlimited" is accepted in addition to 0/-1. In the cases where the command had no online help text at all, this adds it. I've tried to make the texts read in a way that "unlimited" is suggested before "0" or "-1" is. Tested on x86_64 Fedora 17. gdb/ 2013-04-10 Pedro Alves <palves@redhat.com> * cli/cli-decode.c (integer_unlimited_completer): New function. (add_setshow_integer_cmd, add_setshow_uinteger_cmd) (add_setshow_zuinteger_unlimited_cmd): Install the "unlimited" completer. * cli/cli-setshow.c: Include "cli/cli-utils.h". (is_unlimited_literal): New function. (do_set_command): Handle literal "unlimited" arguments. * frame.c (_initialize_frame) <set backtrace limit>: Document "unlimited". * printcmd.c (_initialize_printcmd) <set print max-symbolic-offset>: Add help text. * record-full.c (_initialize_record_full) <set record full insn-number-max>: Likewise. * record.c (_initialize_record) <set record instruction-history-size, set record function-call-history-size>: Add help text. * ser-tcp.c (_initialize_ser_tcp) <set tcp connect-timeout>: Add help text. * tracepoint.c (_initialize_tracepoint) <set trace-buffer-size>: Likewise. * source.c (_initialize_source) <set listsize>: Add help text. * utils.c (initialize_utils) <set height, set width>: Likewise. <set pagination>: Mention "set height unlimited". * valprint.c (_initialize_valprint) <set print elements, set print repeats>: Document "unlimited". gdb/doc/ 2013-04-10 Pedro Alves <palves@redhat.com> * gdb.texinfo (Process Record and Replay): Document that "set record full insn-number-max", "set record instruction-history-size" and "set record function-call-history-size" accept "unlimited". (Backtrace): Document that "set backtrace limit" accepts "unlimited". (List): Document that "set listsize" accepts "unlimited". (Print Settings)" Document that "set print max-symbolic-offset", "set print elements" and "set print repeats" accept "unlimited". (Starting and Stopping Trace Experiments): Document that "set trace-buffer-size" accepts "unlimited". (Remote Configuration): Document that "set tcp connect-timeout" accepts "unlimited". (Command History): Document that "set history size" accepts "unlimited". (Screen Size): Document that "set height" and "set width" accepts "unlimited". Adjust "set pagination"'s description to suggest "set height unlimited" instead of "set height 0". gdb/testsuite/ 2013-04-10 Pedro Alves <palves@redhat.com> * gdb.base/completion.exp: Test "set height", "set listsize" and "set trace-buffer-size" completion. * gdb.base/setshow.exp: Test "set height unlimited". * gdb.trace/trace-buffer-size.exp: Test "set trace-buffer-size unlimited".
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/completion.exp16
-rw-r--r--gdb/testsuite/gdb.base/setshow.exp5
-rw-r--r--gdb/testsuite/gdb.trace/trace-buffer-size.exp4
4 files changed, 31 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 92d8ff3..90a83b0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2013-04-10 Pedro Alves <palves@redhat.com>
+
+ * gdb.base/completion.exp: Test "set height", "set listsize" and
+ "set trace-buffer-size" completion.
+ * gdb.base/setshow.exp: Test "set height unlimited".
+ * gdb.trace/trace-buffer-size.exp: Test "set trace-buffer-size
+ unlimited".
+
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.trace/actions.exp: Save trace data to CTF.
diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp
index 7b664bf..008cb0a 100644
--- a/gdb/testsuite/gdb.base/completion.exp
+++ b/gdb/testsuite/gdb.base/completion.exp
@@ -720,6 +720,22 @@ foreach target_name { "core" "tfile" "exec" } {
"target ${target_name} ./gdb.base/completion\\.exp.*"
}
+#
+# "set foo unlimited" completion.
+#
+
+# A var_uinteger command.
+gdb_test "complete set height " "set height unlimited"
+gdb_test "complete set height u" "set height unlimited"
+
+# A var_integer command.
+gdb_test "complete set listsize " "set listsize unlimited"
+gdb_test "complete set listsize unl" "set listsize unlimited"
+
+# A var_zuinteger_unlimited command.
+gdb_test "complete set trace-buffer-size " "set trace-buffer-size unlimited"
+gdb_test "complete set trace-buffer-size unl" "set trace-buffer-size unlimited"
+
# Restore globals modified in this test...
set timeout $oldtimeout1
diff --git a/gdb/testsuite/gdb.base/setshow.exp b/gdb/testsuite/gdb.base/setshow.exp
index eadd1f5..d33d6c7 100644
--- a/gdb/testsuite/gdb.base/setshow.exp
+++ b/gdb/testsuite/gdb.base/setshow.exp
@@ -162,8 +162,9 @@ gdb_test "show environment FOOBARBAZ" "FOOBARBAZ = grbxgrbxgrbx.*" "show enviro
gdb_test_no_output "set height 100" "set height 100"
#test show height 100
gdb_test "show height" "Number of lines gdb thinks are in a page is 100..*" "show height"
-# back to infinite height to avoid pagers
-gdb_test_no_output "set height 0" ""
+# Back to infinite height to avoid pagers. While at it, check that
+# literal "unlimited" works just as well as 0.
+gdb_test_no_output "set height unlimited"
#test set history expansion on
gdb_test_no_output "set history expansion on" "set history expansion on"
#test show history expansion on
diff --git a/gdb/testsuite/gdb.trace/trace-buffer-size.exp b/gdb/testsuite/gdb.trace/trace-buffer-size.exp
index e8c6a95..0916df7 100644
--- a/gdb/testsuite/gdb.trace/trace-buffer-size.exp
+++ b/gdb/testsuite/gdb.trace/trace-buffer-size.exp
@@ -64,10 +64,14 @@ gdb_test "show trace-buffer-size $BUFFER_SIZE" \
"Requested size of trace buffer is $BUFFER_SIZE.*" \
"show trace buffer size"
+# -1 means "no limit on GDB's end. Let the target choose."
gdb_test_no_output \
"set trace-buffer-size -1" \
"set trace buffer size 2"
+# "unlimited" means the same.
+gdb_test_no_output "set trace-buffer-size unlimited"
+
# Test that tstatus gives us default buffer size now.
gdb_test "tstatus" \
".*Trace buffer has $decimal bytes of $default_size bytes free.*" \