aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorChristina Schimpe <christina.schimpe@intel.com>2021-11-26 18:23:48 +0000
committerChristina Schimpe <christina.schimpe@intel.com>2023-01-30 12:45:31 +0100
commitfe4c3ca0036b37ea43be1c36728b323f195ef1bb (patch)
treed370dbdef4f70cc7694e634642feaead7175b4d0 /gdb/testsuite
parentff52c0736a637fec4938f4b957bc8847c709b13c (diff)
downloadbinutils-fe4c3ca0036b37ea43be1c36728b323f195ef1bb.zip
binutils-fe4c3ca0036b37ea43be1c36728b323f195ef1bb.tar.gz
binutils-fe4c3ca0036b37ea43be1c36728b323f195ef1bb.tar.bz2
gdb: Add per-remote target variables for memory read and write config
This patch adds per-remote target variables for the configuration of memory read- and write packet size. It is a further change to commit "gdb: Make global feature array a per-remote target array" to apply the fixme notes described in commit 5b6d1e4 "Multi-target support". The former global variables for that configuration are still available to allow the command line configuration for all future remote connections. Similar to the command line configuration of the per- remote target feature array, the commands - set remotewritesize (deprecated) - set remote memory-read-packet-size - set remote memory-write-packet-size will configure the current target (if available). If no target is available, the default configuration for future remote connections is adapted. The show command will display the current remote target's packet size configuration. If no remote target is selected, the default configuration for future connections will be shown. It is required to adapt the test gdb.base/remote.exp which is failing for --target_board=native-extended-gdbserver. With that board GDB connects to gdbserver at gdb start time. Due to this patch two loggings "The target may not be able to.." are shown if the command 'set remote memory-write-packet-size fixed' is executed while a target is connected for the current inferior. To fix this, the clean_restart command is moved to a later time point of the test. It is sufficient to be connected to the server when "runto_main" is executed. Now the connection time is similar to a testrun with --target_board=native-gdbserver. To allow the user to distinguish between the packet-size configuration for future remote connections and for the currently selected target, the commands' loggings are adapted.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/gdb.base/remote.exp45
1 files changed, 28 insertions, 17 deletions
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index b9b05de..3dc5f8f 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -39,31 +39,37 @@ gdb_test "disconnect" ".*"
#
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
+ "The memory-write-packet-size on future remote targets is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
"write-packet default"
gdb_test "set remote memory-write-packet-size" \
- "Argument required .integer, `fixed' or `limited'.\." \
+ "Argument required .integer, \"fixed\" or \"limit\".\." \
"set write-packet - NULL"
-gdb_test_no_output "set remote memory-write-packet-size 20"
+gdb_test "set remote memory-write-packet-size 20" \
+ "The memory-write-packet-size on future remote targets is set to \"20\"."
+
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 20. The actual limit will be further reduced dependent on the target\." \
+ "The memory-write-packet-size on future remote targets is 20. The actual limit will be further reduced dependent on the target\." \
"set write-packet - small"
-gdb_test_no_output "set remote memory-write-packet-size 1"
+gdb_test "set remote memory-write-packet-size 1" \
+ "The memory-write-packet-size on future remote targets is set to \"1\"."
+
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 1. The actual limit will be further reduced dependent on the target\." \
+ "The memory-write-packet-size on future remote targets is 1. The actual limit will be further reduced dependent on the target\." \
"set write-packet - very-small"
-gdb_test_no_output "set remote memory-write-packet-size 0"
+gdb_test "set remote memory-write-packet-size 0" \
+ "The memory-write-packet-size on future remote targets is set to \"0\"."
+
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
+ "The memory-write-packet-size on future remote targets is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
"write-packet default again"
set test "set remote memory-write-packet-size fixed"
gdb_test_multiple $test $test {
- -re "Change the packet size. .y or n. " {
+ -re "Change the packet size for future remote targets. .y or n. " {
gdb_test_multiple "y" $test {
-re "$gdb_prompt $" {
pass $test
@@ -71,13 +77,16 @@ gdb_test_multiple $test $test {
}
}
}
+
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 0 \\(default\\). Packets are fixed at 16384 bytes\." \
+ "The memory-write-packet-size on future remote targets is 0 \\(default\\). Packets are fixed at 16384 bytes\." \
"write-packet default fixed"
-gdb_test_no_output "set remote memory-write-packet-size limit"
+gdb_test "set remote memory-write-packet-size limit" \
+ "The memory-write-packet-size on future remote targets is set to \"limit\"."
+
gdb_test "show remote memory-write-packet-size" \
- "The memory-write-packet-size is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
+ "The memory-write-packet-size on future remote targets is 0 \\(default\\). The actual limit will be further reduced dependent on the target\." \
"write-packet default limit again"
#
@@ -89,7 +98,8 @@ proc gdb_load_timed {executable class writesize} {
set test "timed download `[file tail $executable]' - $class, $writesize"
if {$writesize != ""} {
- gdb_test_no_output "set remote memory-write-packet-size $writesize" \
+ gdb_test "set remote memory-write-packet-size $writesize" \
+ "The memory-write-packet-size on future remote targets is set to \"$writesize\"." \
"$test - set packet size"
send_gdb "set remote memory-write-packet-size $class\n"
@@ -130,8 +140,6 @@ proc gdb_load_timed {executable class writesize} {
pass $test
}
-clean_restart $binfile
-
# These download tests won't actually download anything on !is_remote
# target boards, but we run them anyway because it's simpler, and
# harmless.
@@ -156,6 +164,8 @@ gdb_load_timed $binfile "limit" 0
# Get the size of random_data table (defaults to 48K).
set sizeof_random_data [get_sizeof "random_data" 48*1024]
+clean_restart $binfile
+
#
# Part THREE: Check the upload behavour
#
@@ -179,10 +189,11 @@ if {$sizeof_random_data > 16380} {
# Read a chunk just larger than the packet size (reduce the packet
# size to make life easier)
-gdb_test_no_output "set remote memory-read-packet-size 16"
+gdb_test "set remote memory-read-packet-size 16" \
+ "The memory-read-packet-size on the current remote target is set to \"16\"."
gdb_test "show remote memory-read-packet-size" \
- "The memory-read-packet-size is 16. Packets are limited to 20 bytes."
+ "The memory-read-packet-size on the current remote target is 16. Packets are limited to 20 bytes."
gdb_test "x/17ub random_data" \
"<random_data>:\[ \t\]+60\[ \t\]+74\[ \t\]+216\[ \t\]+38\[ \t\]+149\[ \t\]+49\[ \t\]+207\[ \t\]+44.*<random_data\\+8>:\[ \t\]+124\[ \t\]+38\[ \t\]+93\[ \t\]+125\[ \t\]+232\[ \t\]+67\[ \t\]+228\[ \t\]+56.*<random_data\\+16>:\[ \t\]+161"