
This commit changes the output of 'show endian'. Here is a session before this commit: (gdb) show endian The target endianness is set automatically (currently little endian) (gdb) set endian big The target is assumed to be big endian (gdb) show endian The target is assumed to be big endian (gdb) After this commit the session now looks like this: (gdb) show endian The target endianness is set automatically (currently little endian). (gdb) set endian big The target is set to big endian. (gdb) show endian The target is set to big endian. (gdb) The changes are: 1. Each line ends with '.', and 2. After setting the endianness GDB is now a little more assertive; 'target is set to' not 'target is assumed to be', the user did just tell us after all!
94 lines
3.6 KiB
Text
94 lines
3.6 KiB
Text
# Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# Test automatic endianness selection.
|
|
|
|
standard_testfile
|
|
|
|
set en_auto "The target endianness is set automatically"
|
|
set en_set "The target is set to"
|
|
|
|
clean_restart
|
|
|
|
# First check that the automatic endianness is updated
|
|
# with the `set endian' command.
|
|
gdb_test "set endian auto" \
|
|
"$en_auto \\\(currently \(\?:big\|little\) endian\\\)\\." \
|
|
"default target endianness"
|
|
gdb_test "set endian big" "$en_set big endian\\." \
|
|
"set target endianness"
|
|
gdb_test "set endian auto" "$en_auto \\\(currently big endian\\\)\\." \
|
|
"auto target endianness"
|
|
gdb_test "set endian little" "$en_set little endian\\." \
|
|
"set target endianness little"
|
|
gdb_test "set endian auto" "$en_auto \\\(currently little endian\\\)\\." \
|
|
"auto target endianness little"
|
|
gdb_test "set endian big" "$en_set big endian\\." \
|
|
"set target endianness big"
|
|
gdb_test "set endian auto" "$en_auto \\\(currently big endian\\\)\\." \
|
|
"auto target endianness big"
|
|
|
|
if { [build_executable ${testfile}.exp $testfile] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot build executable"
|
|
}
|
|
|
|
if { [gdb_file_cmd $binfile] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot select executable"
|
|
}
|
|
set test "get target endianness"
|
|
if { [gdb_test_multiple "show endian" "$test" {
|
|
-re "$en_auto \\\(currently \(big\|little\) endian\\\)\\..*$gdb_prompt" {
|
|
set endian $expect_out(1,string)
|
|
pass "$test"
|
|
}
|
|
}] } {
|
|
gdb_suppress_entire_file \
|
|
"$pf_prefix cannot determine executable endianness"
|
|
set endian ""
|
|
}
|
|
|
|
# Now check that the automatic endianness is updated
|
|
# according to the executable selected.
|
|
if { [gdb_unload] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot unselect executable"
|
|
}
|
|
gdb_test "set endian big" "$en_set big endian\\." \
|
|
"override target endianness big"
|
|
gdb_test "set endian auto" "$en_auto \\\(currently big endian\\\)\\." \
|
|
"override auto target endianness big"
|
|
if { [gdb_file_cmd $binfile] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot select executable"
|
|
}
|
|
gdb_test "show endian" "$en_auto \\\(currently $endian endian\\\)\\." \
|
|
"previously big default executable endianness"
|
|
if { [gdb_unload] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot unselect executable"
|
|
}
|
|
gdb_test "show endian" "$en_auto \\\(currently $endian endian\\\)\\." \
|
|
"previously big default no executable endianness"
|
|
gdb_test "set endian little" "$en_set little endian\\." \
|
|
"override target endianness little"
|
|
gdb_test "set endian auto" "$en_auto \\\(currently little endian\\\)\\." \
|
|
"override auto target endianness little"
|
|
if { [gdb_file_cmd $binfile] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot select executable"
|
|
}
|
|
gdb_test "show endian" "$en_auto \\\(currently $endian endian\\\)\\." \
|
|
"previously little default executable endianness"
|
|
if { [gdb_unload] } {
|
|
gdb_suppress_entire_file "$pf_prefix cannot unselect executable"
|
|
}
|
|
gdb_test "show endian" "$en_auto \\\(currently $endian endian\\\)\\." \
|
|
"previously little default no executable endianness"
|