summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Merey <amerey@redhat.com>2022-04-27 16:41:24 -0400
committerAaron Merey <amerey@redhat.com>2022-05-02 16:15:06 -0400
commit95929abb498786d9dce36bb94b6c3f1d63178956 (patch)
treed0401f4ea63126a7beb6c1a78bb976e29233e099
parent03ada39ea590fec3bd722e9ea776049213da8b58 (diff)
downloadbinutils-gdb-95929abb498786d9dce36bb94b6c3f1d63178956.tar.gz
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.
-rw-r--r--gdb/debuginfod-support.c7
-rw-r--r--gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp17
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"