[all-commits] [llvm/llvm-project] 30183c: [lldb] Don't run code for CanJIT() while creating ...
Jonas Devlieghere via All-commits
all-commits at lists.llvm.org
Fri Oct 2 17:55:50 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 30183cb96ab0fb33d4f7aebd5126e75b852f3ba3
https://github.com/llvm/llvm-project/commit/30183cb96ab0fb33d4f7aebd5126e75b852f3ba3
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-10-03 (Sat, 03 Oct 2026)
Changed paths:
M lldb/include/lldb/Target/Process.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Target/Process.cpp
A lldb/test/API/functionalities/gdb_remote_client/TestObjCRuntimeNoInferiorCall.py
A lldb/test/API/functionalities/gdb_remote_client/libobjc.A.dylib.yaml
Log Message:
-----------
[lldb] Don't run code for CanJIT() while creating the ObjC runtime (#227555)
When libobjc lacks class_getMethodImplementation, the ObjC trampoline
handler calls CanJIT() to decide whether to warn. Without the _M
packet, CanJIT() allocated memory by calling mmap in the inferior.
Setting up that call unwinds the stack, which asks for the ObjC
runtime. The runtime isn't registered yet, so LLDB creates another one
and recurses until the stack overflows.
Ask the process plugin whether it can allocate memory instead of
trying it. ProcessGDBRemote probes the _M packet and otherwise checks
for an mmap symbol, neither of which runs code in the inferior.
rdar://188335027
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