aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2019-02-27 18:48:36 +0000
committerPedro Alves <palves@redhat.com>2019-02-27 18:48:36 +0000
commit8ed252144a29fb6370b828d84419d5c59d23dae2 (patch)
tree6cc5175c56e095ab018901fa82622fa42fc88814 /gdb
parent23031e319207140e76a9c18e308995fe28322b58 (diff)
downloadgdb-8ed252144a29fb6370b828d84419d5c59d23dae2.zip
gdb-8ed252144a29fb6370b828d84419d5c59d23dae2.tar.gz
gdb-8ed252144a29fb6370b828d84419d5c59d23dae2.tar.bz2
Make 'show width/height' display "unlimited" when capped for readline
When we cap the height/width sizes before passing to readline, tweak the corresponding command variable to show "unlimited": (gdb) set height 0x8000 (gdb) show height Number of lines gdb thinks are in a page is unlimited. Instead of the current output: (gdb) set height 0x8000 (gdb) show height Number of lines gdb thinks are in a page is 32768. gdb/ChangeLog: 2019-02-27 Pedro Alves <palves@redhat.com> * utils.c (set_screen_size): When we cap the height/width sizes, tweak the corresponding command variable to show "unlimited": gdb/testsuite/ChangeLog: 2019-02-27 Pedro Alves <palves@redhat.com> * gdb.base/page.exp: Add tests for "set/show width/height" with "infinite" values.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/page.exp24
-rw-r--r--gdb/utils.c10
4 files changed, 42 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 02602b2..1dc6356 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-27 Pedro Alves <palves@redhat.com>
+
+ * utils.c (set_screen_size): When we cap the height/width sizes,
+ tweak the corresponding command variable to show "unlimited":
+
2019-02-27 Saagar Jha <saagar@saagarjha.com>
Pedro Alves <palves@redhat.com>
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 477165a..b5177c7 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-27 Pedro Alves <palves@redhat.com>
+
+ * gdb.base/page.exp: Add tests for "set/show width/height" with
+ "infinite" values.
+
2019-02-27 Tom Tromey <tromey@adacore.com>
* lib/gdb.exp (skip_python_tests_prompt): Don't check for Python
diff --git a/gdb/testsuite/gdb.base/page.exp b/gdb/testsuite/gdb.base/page.exp
index 10ebf0d..8f1698c 100644
--- a/gdb/testsuite/gdb.base/page.exp
+++ b/gdb/testsuite/gdb.base/page.exp
@@ -94,6 +94,30 @@ gdb_expect_list "paged count for interrupt" \
gdb_test "q" "Quit" "quit while paging"
+# Check that width/height of sqrt(INT_MAX) is treated as unlimited, as
+# well as "0" and explicit "unlimited".
+foreach_with_prefix size {"0" "0x80000000" "unlimited"} {
+
+ # Alternate between "non-unlimited" values and "unlimited" values,
+ # to make sure we're not seeing stale internal state.
+
+ gdb_test "set width 200"
+ gdb_test "show width" \
+ "Number of characters gdb thinks are in a line is 200\\."
+
+ gdb_test "set height 200"
+ gdb_test "show height" \
+ "Number of lines gdb thinks are in a page is 200\\."
+
+ gdb_test "set width $size"
+ gdb_test "show width unlimited" \
+ "Number of characters gdb thinks are in a line is unlimited\\."
+
+ gdb_test "set height $size"
+ gdb_test "show height unlimited" \
+ "Number of lines gdb thinks are in a page is unlimited\\."
+}
+
gdb_exit
return 0
diff --git a/gdb/utils.c b/gdb/utils.c
index 069da23..60af31f 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1394,10 +1394,16 @@ set_screen_size (void)
const int sqrt_int_max = INT_MAX >> (sizeof (int) * 8 / 2);
if (rows <= 0 || rows > sqrt_int_max)
- rows = sqrt_int_max;
+ {
+ rows = sqrt_int_max;
+ lines_per_page = UINT_MAX;
+ }
if (cols <= 0 || cols > sqrt_int_max)
- cols = sqrt_int_max;
+ {
+ cols = sqrt_int_max;
+ chars_per_line = UINT_MAX;
+ }
/* Update Readline's idea of the terminal size. */
rl_set_screen_size (rows, cols);