• Home
  • Raw
  • Download

Lines Matching +full:if +full:- +full:no +full:- +full:files +full:- +full:found

1 '\"! tbl | nroff \-man
17 debuginfod \- debuginfo-related http file-server daemon
24 \fBdebuginfod\fP serves debuginfo-related artifacts over HTTP. It
25 periodically scans a set of directories for ELF/DWARF files and their
26 associated source code, as well as archive files containing the above, to
28 clients use the HTTP webapi, to fetch these files by the same buildid.
33 \fBdebuginfod-find\fP would. If successful, it locally caches then
38 (see the \fB\-L\fP option). Duplicate PATHs are ignored. You may use
41 thread enumerates all matching files (see the \fB\-I\fP and \fB\-X\fP
43 \fB\-c\fP option) wait at the work queue to analyze files in parallel.
45 If the \fB\-F\fP option is given, each file is scanned as an ELF/DWARF
46 file. Source files are matched with DWARF files based on the
48 source files listed in the DWARF may be a path \fIanywhere\fP in the
51 as a source file.) If this is a concern, audit your binaries with
55 % eu-readelf -wline BINARY | sed -n '/^Directory.table/,/^File.name.table/p'
57 % eu-readelf -wline BINARY | sed -n '/^Directory.table/,/^Line.number/p'
59 % debuginfod -vvv -d :memory: -F BINARY 2>&1 | grep 'recorded.*source'
63 If any of the \fB\-R\fP, \fB-U\fP, or \fB-Z\fP options is given, each
65 files. Archive files are recognized by extension. If \-R is given,
66 ".rpm" files are scanned; if \-U is given, ".deb" and ".ddeb" files
67 are scanned; if \-Z is given, the listed extensions are scanned.
68 Because of complications such as DWZ-compressed debuginfo, may require
69 \fItwo\fP traversal passes to identify all source code. Source files
70 for RPMs are only served from other RPMs, so the caution for \-F does
72 mechanisms, debuginfod cannot resolve source files for DEB/DDEB at
75 If no PATH is listed, or none of the scanning options is given, then
79 \fBdebuginfod\fP will only serve content from a read-only index and
85 .B "\-F"
89 .B "\-Z EXT" "\-Z EXT=CMD"
90 Activate an additional pattern in archive scanning. Files with name
91 extension EXT (include the dot) will be processed. If CMD is given,
94 the file is read as if CMD were "cat". Since debuginfod internally
95 uses \fBlibarchive\fP to read archive files, it can accept a wide
96 range of archive formats and compression modes. The default is no
100 .B "\-R"
102 Equivalent to \fB\%\-Z\~.rpm=cat\fP, since libarchive can natively
103 process RPM archives. If your version of libarchive is much older
106 with \fB\%\-Z\ .rpm='(rpm2cpio|zstdcat)<'\fP instead of \fB\-R\fP.
109 .B "\-U"
111 Equivalent to \fB\%\-Z\ .deb='dpkg-deb\ \-\-fsys\-tarfile\fP'
112 \fB\%\-Z\ .ddeb='dpkg-deb\ \-\-fsys\-tarfile'\fP.
115 .B "\-d FILE" "\-\-database=FILE"
122 testing the magic string ":memory:" can be used to use an one-time
123 memory-only database. The default database file is
127 .B "\-\-passive"
129 requests, including participating in federation. It performs no
130 scanning, no grooming, and so only opens the sqlite database
131 read-only. This way a database can be safely shared between a active
137 .B "\-D SQL" "\-\-ddl=SQL"
140 useful to tune performance-related pragmas or indexes. May be
144 .B "\-p NUM" "\-\-port=NUM"
147 opened, if possible. The webapi is documented below. The default
151 .B "\-I REGEX" "\-\-include=REGEX" "\-X REGEX" "\-\-exclude=REGEX"
156 canonicalization. By default, all files are included and none are
158 excluded. (The \fIcontents\fP of archive files are not subject to
163 .B "\-t SECONDS" "\-\-rescan\-time=SECONDS"
166 before doing it again. A rescan for unchanged files is fast (because
170 scan, independent of the rescan time (including if it was zero),
171 interrupting a groom pass (if any).
174 .B "\-r"
175 Apply the -I and -X during groom cycles, so that files excluded by the regexes are removed from the…
177 .B "\-g SECONDS" "\-\-groom\-time=SECONDS"
181 scanned files, only to see if they are still present and current, so
182 it can deindex obsolete files. See also the \fIDATA MANAGEMENT\fP
186 independent of the groom time (including if it was zero), interrupting
187 a rescan pass (if any)..
190 .B "\-G"
191 Run an extraordinary maximal-grooming pass at debuginfod startup.
193 debuginfo-unrelated content from the archive-related parts of the index.
194 It should not be run if any recent archive-related indexing operations
198 do maximal-grooming. See also the \fIDATA MANAGEMENT\fP section.
201 .B "\-c NUM" "\-\-concurrency=NUM"
203 together to process archives & files located by the traversal thread.
204 This important for controlling CPU-intensive operations like parsing
209 .B "\-C" "\-C=NUM" "\-\-connection\-pool" "\-\-connection\-pool=NUM"
215 no option, \-C use a fixed thread pool sized automatically
216 \-C=NUM use a fixed thread pool sized NUM, minimum 2
220 of processors. The second mode is suitable for tuned load-limiting
224 .B "\-L"
226 including across devices - as in \fIfind\ -L\fP. The default is to
228 device, and ignore symlinks - as in \fIfind\ -P\ -xdev\fP. Caution: a
233 .B "\-\-fdcache\-fds=NUM" "\-\-fdcache\-mbs=MB"
234 Configure limits on a cache that keeps recently extracted files from
235 archives. Up to NUM requested files and up to a total of MB megabytes
240 most recently used extracted files are kept. Grooming cleans out this
244 .B "\-\-fdcache\-prefetch\-fds=NUM" "\-\-fdcache\-prefetch\-mbs=MB"
245 .B "\-\-fdcache\-prefetch=NUM2"
247 In addition to the main fdcache, up to NUM2 other files from an
250 (mbs) are allocated to the prefetch fdcache. If unspecified, these
258 .B "\-\-fdcache\-mintmp=NUM"
260 The filesystem holding the caches is checked periodically. If the
264 are intended to give an operator notice about storage scarcity - which
265 can translate to RAM scarcity if the disk happens to be on a RAM
269 .B "\-\-forwarded\-ttl\-limit=NUM"
270 Configure limits of X-Forwarded-For hops. if X-Forwarded-For
275 .B "\-\-disable\-source\-scan"
277 If a setup has no access to source code, the source info is not
281 .B "\-v"
287 .\" Much of the following text is duplicated with debuginfod-find.1
296 custom http headers are added to the response. For files in the
297 database X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE are added.
298 X-DEBUGINFOD-FILE is simply the unescaped filename and
299 X-DEBUGINFOD-SIZE is the size of the file. For files found in archives,
300 in addition to X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE,
301 X-DEBUGINFOD-ARCHIVE is added. X-DEBUGINFOD-ARCHIVE is the name of the
302 archive the file was found in.
309 % readelf -n /bin/ls | grep -A4 build.id
346 compilation-directory, followed by a mandatory "/".
362 Note: the client should %-escape characters in /SOURCE/FILE that are
370 debuginfo file matching BUILDID. If the debuginfo file can't be found
372 the section from the executable matching BUILDID. If the section is
390 of data to record all debuginfo-related data of potentially a great
391 many files. This section offers some advice about the implications.
394 ELF/DWARF files, it stores their names and referenced source file
398 takes more space because the source files often reside in separate
403 gzip-compressed cpio files), the sqlite index database tends to be
405 assembled out of a great many source files, or packages that carry
406 much debuginfo-unrelated content. It may be even larger during the
407 indexing phase due to temporary sqlite write-ahead-logging files;
409 be helpful to apply tight \-I or \-X regular-expression constraints to
410 exclude files from scanning that you know have no debuginfo-relevant
414 rescans its target directories, and any new content found is added to
415 the database. Old content, such as data for files that have
417 at a periodic \fIgrooming\fP pass. This means that the sqlite files
420 one-shot \fImaximal grooming\fP pass is available. It removes
421 information debuginfo-unrelated data from the archive content index
422 such as file names found in archives ("archive sdef" records) that are
423 not referred to as source files from any binaries find in archives
426 size as free space. Worse: it may result in missing source-code info
431 of error messages on -ENOSPC is ugly and nagging. But, like for most
432 other errors, debuginfod will resume when resources permit.) If
436 sqlite offers several performance-related options in the form of
437 pragmas. Some may be useful to fine-tune the defaults plus the
438 debuginfod extras. The \-D option may be useful to tell debuginfod to
442 via \-D, if you're searching for peak performance. The "optimize",
444 debuginfod. The default settings are performance- rather than
445 reliability-oriented, so a hardware crash might corrupt the database.
449 As debuginfod changes in the future, we may have no choice but to
450 change the database schema in an incompatible manner. If this
453 will not be wasted for retaining a no-longer-useable dataset.
455 In summary, if your system can bear a 0.5%-3% index-to-archive-dataset
457 worry about disk space. If a system crash corrupts the database,
462 disabled, and the index database remains read-only. This makes the
464 simple one-way replication, and data management considerations are
472 a denial-of-service in terms of RAM, CPU, disk I/O, or network I/O.
474 HTTPS reverse-proxy front-end that enforces site policies for
482 servers should include only trustworthy ones. If accessed across HTTP
488 .so man7/debuginfod-client-config.7
490 .SH ADDITIONAL FILES
498 .I "debuginfod-find(1)"