compare-sections.exp has two cases that are not handled appropriately:
1) value read with msb set
2) error while patching that section
This patch adapts the "get value of read-only section" test to print
the value as an unsigned integer to fix 1) and test for the error
message to not set the written variable if read-only section cannot
be written to so as to solve 2).
2017-09-26 Thomas Preud'homme <
[email protected]>
Pedro Alves <
[email protected]>
gdb/testsuite/
* gdb.base/compare-sections.exp (get value of read-only section): Read
as unsigned value.
(corrupt read-only section): Likewise and don't set written if patching
failed.
+
+ * gdb.base/compare-sections.exp (get value of read-only section): Read
+ as unsigned value.
+ (corrupt read-only section): Likewise and don't set written if patching
+ failed.
+
* gdb.python/py-thrhandle.c, gdb.python/py-thrhandle.exp: New
set orig -1
set test "get value of read-only section"
- gdb_test_multiple "print /d *(unsigned char *) $ro_address" "$test" {
+ gdb_test_multiple "print /u *(unsigned char *) $ro_address" "$test" {
-re " = (\[0-9\]*).*$gdb_prompt $" {
set orig $expect_out(1,string)
pass "$test"
# Write PATCH to memory.
set written -1
set test "corrupt read-only section"
- gdb_test_multiple "print /d *(unsigned char *) $ro_address = $patch" "$test" {
+ gdb_test_multiple "print /u *(unsigned char *) $ro_address = $patch" "$test" {
+ -re " = .*Cannot access memory at address $ro_address.*$gdb_prompt $" {
+ pass "$test (cannot write)"
+ }
-re " = (\[0-9\]*).*$gdb_prompt $" {
set written $expect_out(1,string)
pass "$test"