From: Tom de Vries Date: Mon, 7 Oct 2024 08:44:45 +0000 (+0200) Subject: [gdb/testsuite] Fix gdb.python/py-inferior.exp with -fsanitize=thread X-Git-Tag: gdb-16-branchpoint~722 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11fe8653a97a2d113eb58680021c657a68d5d362;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Fix gdb.python/py-inferior.exp with -fsanitize=thread With a gdb build with -fsanitize=thread, and test-case gdb.python/py-inferior.exp I run into: ... (gdb) python gdb.selected_inferior().read_memory (0, 0xffffffffffffffff)^M ERROR: ThreadSanitizer: requested allocation size 0xffffffffffffffff exceeds \ maximum supported size of 0x10000000000^M ... There's already a workaround for this using ASAN_OPTIONS, and apparently the same is needed for TSAN_OPTIONS. Add the allocator_may_return_null=1 workaround also in TSAN_OPTIONS. Likewise in gdb.dap/memory.exp. Tested on x86_64-linux. --- diff --git a/gdb/testsuite/gdb.dap/memory.exp b/gdb/testsuite/gdb.dap/memory.exp index 7082706e11c..c4e4fb3238b 100644 --- a/gdb/testsuite/gdb.dap/memory.exp +++ b/gdb/testsuite/gdb.dap/memory.exp @@ -25,11 +25,12 @@ if {[build_executable ${testfile}.exp $testfile] == -1} { return } -save_vars { env(ASAN_OPTIONS) } { +save_vars { env(ASAN_OPTIONS) env(TSAN_OPTIONS) } { # The request readMemory with count 18446744073709551615 triggers address # sanitizer. Suppress the error, leaving us with just this warning: # WARNING: AddressSanitizer failed to allocate 0xffffffffffffffff bytes set_sanitizer ASAN_OPTIONS allocator_may_return_null 1 + set_sanitizer TSAN_OPTIONS allocator_may_return_null 1 if {[dap_initialize] == ""} { return diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp index ee30390e29f..58475bded0f 100644 --- a/gdb/testsuite/gdb.python/py-inferior.exp +++ b/gdb/testsuite/gdb.python/py-inferior.exp @@ -27,12 +27,13 @@ if { [gdb_compile_pthreads ${srcdir}/${subdir}/${srcfile} ${binfile} executable } # Start with a fresh gdb. -save_vars { env(ASAN_OPTIONS) } { +save_vars { env(ASAN_OPTIONS) env(TSAN_OPTIONS) } { # The call to gdb.selected_inferior().read_memory (0, 0xffffffffffffffff) # triggers address sanitizer. Suppress the error, leaving us with just # this warning: # WARNING: AddressSanitizer failed to allocate 0xffffffffffffffff bytes set_sanitizer ASAN_OPTIONS allocator_may_return_null 1 + set_sanitizer TSAN_OPTIONS allocator_may_return_null 1 clean_restart ${testfile} }