[all-commits] [llvm/llvm-project] d8e86a: [dsymutil] Add option to filter debug map objects ...
Roy Shi via All-commits
all-commits at lists.llvm.org
Wed Mar 4 12:57:19 PST 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d8e86a5cc0d5f0775faf5fc039a0c27e16dbdd61
https://github.com/llvm/llvm-project/commit/d8e86a5cc0d5f0775faf5fc039a0c27e16dbdd61
Author: Roy Shi <royitaqi at users.noreply.github.com>
Date: 2026-03-04 (Wed, 04 Mar 2026)
Changed paths:
M llvm/docs/CommandGuide/dsymutil.rst
A llvm/test/tools/dsymutil/AArch64/allow-disallow.test
A llvm/test/tools/dsymutil/Inputs/allow-disallow/a.out.arm64
A llvm/test/tools/dsymutil/Inputs/allow-disallow/empty.yaml
A llvm/test/tools/dsymutil/Inputs/allow-disallow/one.yaml
A llvm/test/tools/dsymutil/Inputs/allow-disallow/two.yaml
A llvm/test/tools/dsymutil/Inputs/private/tmp/allow-disallow/1.o
A llvm/test/tools/dsymutil/Inputs/private/tmp/allow-disallow/2.o
A llvm/test/tools/dsymutil/Inputs/private/tmp/allow-disallow/3.o
M llvm/test/tools/dsymutil/cmdline.test
M llvm/tools/dsymutil/DebugMap.cpp
M llvm/tools/dsymutil/DebugMap.h
M llvm/tools/dsymutil/MachODebugMapParser.cpp
M llvm/tools/dsymutil/Options.td
M llvm/tools/dsymutil/dsymutil.cpp
M llvm/tools/dsymutil/dsymutil.h
Log Message:
-----------
[dsymutil] Add option to filter debug map objects by allow/disallow-list (#182083)
# Motivation
When using `dsymutil` to generate dSYM for large binaries, sometimes we
want to keep only some of the object files. This has the benefits of
reduced dSYM size and improved performance of LLDB and other tools which
consume the dSYM.
The current way to achieve this is to use YAML input (the `dsymutil -y`
option). However, it doesn't really solve the problem:
1. The whole debug map has to be parsed somewhere else first, before
filtered down to the wanted parts.
2. Said info is written then read by `dsymutil`. The I/O is redundant.
# Change
This patch propose a new way, by adding new options (`dsymutil --allow
<path>` and `--disallow <path>`), which will only process object files
that pass the allow/disallow list.
Important details:
* The input file is YAML. See test files for format.
* Currently, only object files are filtered. The design allows to extend
the filtering to other aspects of the debug map in the future (e.g.
functions).
* If `--oso-prepend-path` is specified, it applies to the entries in the
input file. I.e. Entries in the input file should exact match that of
N_OSO entries.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list