aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2021-01-20 22:02:33 +0100
committerTom de Vries <tdevries@suse.de>2021-01-20 22:02:33 +0100
commit7c794afd542aa6cca8263d137abc3767a48019f1 (patch)
tree8100806628737af70ffe40e4551a131cce6dbf46
parent1402665c8f4327b303b8d152c698fe821874f3eb (diff)
downloadgdb-7c794afd542aa6cca8263d137abc3767a48019f1.zip
gdb-7c794afd542aa6cca8263d137abc3767a48019f1.tar.gz
gdb-7c794afd542aa6cca8263d137abc3767a48019f1.tar.bz2
[gdb/testsuite] Fix gdb.python/py-format-string.exp with -m32
When running test-case gdb.python/py-format-string.exp with target board unix/-m32, we run into: ... (gdb) python print \ (gdb.parse_and_eval ('a_base_ref').format_string (deref_refs=True))^M @0xffffc468: {_vptr.Base = 0x80487e0 <vtable for Deriv+8>, a = 42, \ static a_static_member = 2019}^M (gdb) FAIL: gdb.python/py-format-string.exp: format_string: \ lang_cpp: a_base_ref with option deref_refs: deref_refs=true ... while with -m64, we have instead: ... @0x7fffffffd170: {_vptr.Base = 0x400910 <vtable for Deriv+16>, a = 42, \ static a_static_member = 2019}^M (gdb) PASS: gdb.python/py-format-string.exp: format_string: \ lang_cpp: a_base_ref with option deref_refs: deref_refs=true ... The vtable contains pointer entries which are 4-byte for -m32 and 8-byte for -m64, so it's not surprising the offsets (Deriv+8 vs. Deriv+16) differ. Fix this by allow Deriv+$decimal. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-01-20 Tom de Vries <tdevries@suse.de> * gdb.python/py-format-string.exp: Allow Deriv+$decimal as vtable offset.
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.python/py-format-string.exp6
2 files changed, 9 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b197b0b..a8a6de9 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2021-01-20 Tom de Vries <tdevries@suse.de>
+ * gdb.python/py-format-string.exp: Allow Deriv+$decimal as vtable
+ offset.
+
+2021-01-20 Tom de Vries <tdevries@suse.de>
+
* lib/gdb.exp (skip_rust_tests): Skip if multilib_flags contains -m32.
2021-01-20 Sergio Durigan Junior <sergiodj@sergiodj.net>
diff --git a/gdb/testsuite/gdb.python/py-format-string.exp b/gdb/testsuite/gdb.python/py-format-string.exp
index 8163df7..160e9019 100644
--- a/gdb/testsuite/gdb.python/py-format-string.exp
+++ b/gdb/testsuite/gdb.python/py-format-string.exp
@@ -534,6 +534,7 @@ proc test_deref_refs {} {
global current_lang
global default_pointer_regexp
global default_ref_regexp
+ global decimal
check_var_with_bool_opt "deref_refs" "a_point_t"
check_var_with_bool_opt "deref_refs" "a_point_t_pointer"
@@ -551,7 +552,7 @@ proc test_deref_refs {} {
if { $current_lang == "c++" } {
check_var_with_bool_opt "deref_refs" "a_point_t_ref"
check_var_with_bool_opt "deref_refs" "a_base_ref" \
- "${default_ref_regexp}: \\{_vptr\[.\$\]Base = ${default_pointer_regexp} <vtable for Deriv\\+16>, a = 42, static a_static_member = 2019\\}"
+ "${default_ref_regexp}: \\{_vptr\[.\$\]Base = ${default_pointer_regexp} <vtable for Deriv\\+$decimal>, a = 42, static a_static_member = 2019\\}"
}
}
@@ -923,6 +924,7 @@ proc test_mixed {} {
global current_lang
global default_ref_regexp
global default_pointer_regexp
+ global decimal
check_format_string "a_point_t" \
"raw=True, format='x'" \
@@ -947,7 +949,7 @@ proc test_mixed {} {
check_format_string "a_base_ref" \
"deref_refs=True, static_members=False" \
- "${default_ref_regexp}: \\{_vptr\[.\$\]Base = ${default_pointer_regexp} <vtable for Deriv\\+16>, a = 42\\}"
+ "${default_ref_regexp}: \\{_vptr\[.\$\]Base = ${default_pointer_regexp} <vtable for Deriv\\+$decimal>, a = 42\\}"
}
}