From 95929abb498786d9dce36bb94b6c3f1d63178956 Mon Sep 17 00:00:00 2001 From: Aaron Merey Date: Wed, 27 Apr 2022 16:41:24 -0400 Subject: [PATCH] gdb/debuginfod: Whitespace-only URL should disable debuginfod Currently debuginfod is disabled when the string of server URLs is unset or set to be the empty string (via the $DEBUGINFOD_URLS environment variable or the 'set debuginfod urls' gdb command). Extend this functionality so that a whitespace-only URL also disables debuginfod. Modify a testcase to verify that a whitespace-only URL disables debuginfod. --- gdb/debuginfod-support.c | 7 ++++--- .../gdb.debuginfod/fetch_src_and_symbols.exp | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c index 4ce2e786b6a..dffcd782e7d 100644 --- a/gdb/debuginfod-support.c +++ b/gdb/debuginfod-support.c @@ -173,10 +173,11 @@ get_debuginfod_client () static bool debuginfod_is_enabled () { - const char *urls = getenv (DEBUGINFOD_URLS_ENV_VAR); + const char *urls = skip_spaces (getenv (DEBUGINFOD_URLS_ENV_VAR)); - if (urls == nullptr || urls[0] == '\0' - || debuginfod_enabled == debuginfod_off) + if (debuginfod_enabled == debuginfod_off + || urls == nullptr + || *urls == '\0') return false; if (debuginfod_enabled == debuginfod_ask) diff --git a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp index bd90bcd0cfe..74d026464b9 100644 --- a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp +++ b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp @@ -309,7 +309,8 @@ proc local_url { } { clean_restart # Disable confirmation to avoid having to deal with a query. See # test_urls. - gdb_test_multiple "with confirm off -- file $binfile" "notice empty URL" { + set file_cmd "with confirm off -- file $binfile" + gdb_test_multiple $file_cmd "notice empty URL" { -re -wrap "This GDB supports auto-downloading.*" { fail $gdb_test_name } @@ -318,9 +319,17 @@ proc local_url { } { } } - test_urls " " \ - "" \ - "notice whitespace URL" + # Whitespace-only URLS disables Debuginfod. + setenv DEBUGINFOD_URLS " " + clean_restart + gdb_test_multiple $file_cmd "notice whitespace URL" { + -re -wrap "This GDB supports auto-downloading.*" { + fail $gdb_test_name + } + -re -wrap "" { + pass $gdb_test_name + } + } set url "http://127.0.0.1:$port" -- 2.30.2