FIND-DEBUGINFO(1)
π NAME π
find-debuginfo β finds debuginfo and processes it π (yes bestie, that's the whole job description, and she does it)
π¦ SYNOPSIS π¦
find-debuginfo [OPTION]... [builddir]
πΈ DESCRIPTION πΈ
automagically generates debug info and file lists β¨
Like, automagically. That's the word. She just does it. No cap. πͺ
π OPTIONS π
Here's the whole roster, in all her flag-draped glory:
[--strict-build-id] [-g] [-r] [-m] [-i] [-n] [-q] [-v] [--keep-section
SECTION] [--remove-section SECTION] [--g-libs] [--no-ar-files] [-j N]
[--jobs N] [-o debugfiles.list] [-S debugsourcefiles.list] [-O PATH]
[--output-dir PATH] [--run-dwz] [--dwz-low-mem-die-limit N]
[--dwz-max-die-limit N] [--dwz-single-file-mode] [--build-id-seed SEED]
[--unique-debug-suffix SUFFIX] [--unique-debug-src-base BASE] [[-l
filelist]... [-p 'pattern'] -o debuginfo.list] [--check-elf]
[--check-elf-strict] [builddir]
Now let's actually break it down, one flag at a time, because you deserve to know. π
-gβ says to usestrip -ginstead of full strip on DSOs or EXEs.--g-libsβ says to usestrip -ginstead of full strip ONLY on DSOs.
β οΈ Major tea: options-gand--g-libsare mutually exclusive. Pick one, you cannot have both, that's the rule. π
-rβ says to useeu-strip --reloc-debug-sections.--keep-sectionSECTION,--remove-sectionSECTION β use these to explicitly keep a (non-allocated) section in the main executable, or explicitly remove it into the.debugfile. SECTION is an extended wildcard pattern. Both options can be given more than once, so go off. π--strict-build-idβ says to exit with failure status if any ELF binary processed fails to contain a build-id note. She's not playing around. π€-mβ says to include a.gnu_debugdatasection (MiniDebugInfo) in the main binary. Cute little extra data, slay.-iβ says to include a.gdb_indexsection in the.debugfile.-nβ says to not recompute the build-id.-j,--jobsN β will spawn N processes to do the debuginfo extraction in parallel. Multitasking queen. π₯-oβ a single-oswitch before any-lor-pswitches simply renames the primary output file fromdebugfiles.listto something else. A-oswitch that follows a-pswitch or some-lswitches produces an additional output file with the debuginfo for the files in the-lfilelist file, or whose names match the-ppattern. And heads up: the-pargument is angrep -E-style regexp matching the file name, and it must not use anchors (^or$). No anchors, bestie, she said what she said. π«-OPATH,--output-dirPATH β instructs find-debuginfo to store all output files in the PATH directory. If not given, all output files will be stored inbuilddir.--run-dwzβ instructs find-debuginfo to run thedwzutility if available, and--dwz-low-mem-die-limitand--dwz-max-die-limitprovide detailed limits. Seedwz(1)-land-Loption for details. Use--dwz-single-file-modeto disable multi-file mode, seedwz(1)-mfor more details.--build-id-seedSEED β if given thendebugeditis called to update the build-ids it finds adding the SEED as seed to recalculate the build-id hash. This makes sure the build-ids in the ELF files are unique between versions and releases of the same package. (Use--build-id-seed "%{VERSION}-%{RELEASE}".) β¨--unique-debug-suffixSUFFIX β if given then the debug files created for<FILE>will be named<FILE>-<SUFFIX>.debug. This makes sure.debugare unique between package version, release and architecture. (Use--unique-debug-suffix "-%{VERSION}-%{RELEASE}.%{_arch}".) π--unique-debug-src-baseBASE β if given then the source directory will be called/usr/debug/src/<BASE>. This makes sure the debug source dirs are unique between package version, release and architecture (Use--unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}").--no-ar-filesβ if given, then static libraries will be ignored. Otherwise, they receive only with source-path rewriting and collection. They are not stripped, since they have no persistent build-ids to accommodate eventual reunification. (Lowkey a whole lore reason, okay.) π-q,--quietβ silences all non-error output from the script.-v,--verboseβ add more output for all files processed.
When neither -q or -v is given then only output for each pass is given. That's the middle ground, the main character default. β
--check-elf,--check-elf-strictβ will runeu-elflint --gnuon the ELF and AR files before and after processing the files. Including on the generated separate.debugfiles. When--check-elf-strictis given then ifeu-elflintreports any errors find-debuginfo will exit with a failure status. With just--check-elfgiven anyeu-elflintoutput will be logged but not change the exit status.
One last lil' rule for the road π£οΈ: all file names in switches are relative to builddir (. if not given).
π ok and that's the whole page, bestie β find-debuginfo 5.4, October 2026, mwah, slay, periodt ππ β¨
π¦ where this page comes from
- arch rolling: debugedit 5.4-1 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND LGPL-2.0-or-later
- centos-stream 10: debugedit 5.4-1.el10 Β· GPL-3.0-or-later AND GPL-2.0-or-later AND LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms