]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
debuginfod: add --disable-source-scan option
authorMichael Trapp <michael.trapp@sap.com>
Fri, 3 Jun 2022 16:54:17 +0000 (12:54 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Fri, 3 Jun 2022 16:54:17 +0000 (12:54 -0400)
--disable-source-scan disables scanning of the dwarf source info
of debuginfo sections. The source info is not required in setups
without source code access.

Signed-off-by: Michael Trapp <michael.trapp@sap.com>
debuginfod/debuginfod.cxx
doc/debuginfod.8

index 13980ced559559c6abc75e7dbe38b09f6f8f0406..51f4302ba37dea33d9d388c341e3a2347eebc5b0 100644 (file)
@@ -381,6 +381,8 @@ static const struct argp_option options[] =
    {"forwarded-ttl-limit", ARGP_KEY_FORWARDED_TTL_LIMIT, "NUM", 0, "Limit of X-Forwarded-For hops, default 8.", 0},
 #define ARGP_KEY_PASSIVE 0x1008
    { "passive", ARGP_KEY_PASSIVE, NULL, 0, "Do not scan or groom, read-only database.", 0 },
+#define ARGP_KEY_DISABLE_SOURCE_SCAN 0x1009
+   { "disable-source-scan", ARGP_KEY_DISABLE_SOURCE_SCAN, NULL, 0, "Do not scan dwarf source info.", 0 },
    { NULL, 0, NULL, 0, NULL, 0 },
   };
 
@@ -430,6 +432,7 @@ static long fdcache_mintmp;
 static long fdcache_prefetch_mbs;
 static long fdcache_prefetch_fds;
 static unsigned forwarded_ttl_limit = 8;
+static bool scan_source_info = true;
 static string tmpdir;
 static bool passive_p = false;
 
@@ -632,6 +635,9 @@ parse_opt (int key, char *arg,
         // other conflicting options tricky to check
         argp_failure(state, 1, EINVAL, "inconsistent options with passive mode");
       break;
+    case ARGP_KEY_DISABLE_SOURCE_SCAN:
+      scan_source_info = false;
+      break;
       // case 'h': argp_state_help (state, stderr, ARGP_HELP_LONG|ARGP_HELP_EXIT_OK);
     default: return ARGP_ERR_UNKNOWN;
     }
@@ -2705,7 +2711,8 @@ elf_classify (int fd, bool &executable_p, bool &debuginfo_p, string &buildid, se
               startswith (section_name, ".zdebug_line"))
             {
               debuginfo_p = true;
-              dwarf_extract_source_paths (elf, debug_sourcefiles);
+              if (scan_source_info)
+                dwarf_extract_source_paths (elf, debug_sourcefiles);
               break; // expecting only one .*debug_line, so no need to look for others
             }
           else if (startswith (section_name, ".debug_") ||
index 95b827e9cc351d73dcd2247eaa5c34b8e282f53f..a94315ad84d4b5e6bb84f03955053c8090e1e365 100644 (file)
@@ -273,6 +273,12 @@ Configure limits of X-Forwarded-For hops. if X-Forwarded-For
 exceeds N hops, it will not delegate a local lookup miss to
 upstream debuginfods. The default limit is 8.
 
+.TP
+.B "\-\-disable\-source\-scan"
+Disable scan of the dwarf source info of debuginfo sections.
+If a setup has no access to source code, the source info is not
+required.
+
 .TP
 .B "\-v"
 Increase verbosity of logging to the standard error file descriptor.