[Lldb-commits] [lldb] [lldb] Enable SanitizersAllocationTraces=tagged in darwin-mte-launcher (PR #186326)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Mar 12 23:48:39 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Jonas Devlieghere (JDevlieghere)
<details>
<summary>Changes</summary>
Collect allocation traces for tagged memory when using the `darwin-mte-launcher` to help debug MTE crashes.
---
Full diff: https://github.com/llvm/llvm-project/pull/186326.diff
1 Files Affected:
- (modified) lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp (+19-8)
``````````diff
diff --git a/lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp b/lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp
index 8f55e09f5c60b..ae11e4741e16a 100644
--- a/lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp
+++ b/lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp
@@ -14,6 +14,24 @@
using namespace llvm;
+static std::vector<const char *> get_extended_env(const char *envp[]) {
+ // Copy over the current environment.
+ std::vector<const char *> new_envp;
+ for (const char **e = envp; *e; ++e)
+ new_envp.push_back(*e);
+
+ // Python's allocator (pymalloc) is not aware of Memory Tagging Extension
+ // (MTE) and crashes.
+ // https://bugs.python.org/issue43593
+ new_envp.push_back("PYTHONMALLOC=malloc");
+
+ // Collect allocation traces for tagged memory.
+ new_envp.push_back("SanitizersAllocationTraces=tagged");
+
+ new_envp.push_back(nullptr);
+ return new_envp;
+}
+
int main(int argc, const char *argv[], const char *envp[]) {
const char *program = argv[1];
const char **new_args = &argv[1];
@@ -45,14 +63,7 @@ int main(int argc, const char *argv[], const char *envp[]) {
return EXIT_FAILURE;
}
- // Python's allocator (pymalloc) is not aware of Memory Tagging Extension
- // (MTE) and crashes.
- // https://bugs.python.org/issue43593
- std::vector<const char *> new_envp;
- for (const char **e = envp; *e; ++e)
- new_envp.push_back(*e);
- new_envp.push_back("PYTHONMALLOC=malloc");
- new_envp.push_back(nullptr);
+ std::vector<const char *> new_envp = get_extended_env(envp);
pid_t pid;
ret = posix_spawn(&pid, program, /*file_actions=*/nullptr, &attr,
``````````
</details>
https://github.com/llvm/llvm-project/pull/186326
More information about the lldb-commits
mailing list