[all-commits] [llvm/llvm-project] c08f61: [lldb] Instantiate lazily named classes on macOS V...
Jonas Devlieghere via All-commits
all-commits at lists.llvm.org
Tue Jun 21 18:51:53 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c08f61b45e3b93c25bc0405a489a382a54a5d941
https://github.com/llvm/llvm-project/commit/c08f61b45e3b93c25bc0405a489a382a54a5d941
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2022-06-21 (Tue, 21 Jun 2022)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Log Message:
-----------
[lldb] Instantiate lazily named classes on macOS Ventura.
Recent revisions of the Objective-C runtime changed
objc_debug_class_getNameRaw() in a way that no longer triggers lazy
names to be instantiated. This has the unintended side-effect of making
generic bridged Swift classes, such as _SwiftDeferredNSDictionary<U,V>
to become invisible to the Objective-C runtime.
This patch detects this situation and forces the names to be
instantiated by calling class_getName() and discarding the result before
calling objc_debug_class_getNameRaw() again.
Many thanks to Mike Ash for outlining the solution and Adrian for
authoring the downstream patch.
rdar://95245318
Differential revision: https://reviews.llvm.org/D128306
Commit: c866f8544c929578a49e0b222f2171da71c9f415
https://github.com/llvm/llvm-project/commit/c866f8544c929578a49e0b222f2171da71c9f415
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2022-06-21 (Tue, 21 Jun 2022)
Changed paths:
M lldb/include/lldb/Target/Target.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
M lldb/source/Target/Target.cpp
M lldb/source/Target/TargetProperties.td
Log Message:
-----------
[lldb] Add a setting to specify the preferred dynamic class info extractor o
Add a setting to configure how LLDB parses dynamic Objective-C class
metadata. By default LLDB will choose the most appropriate method for
the target OS.
Differential revision: https://reviews.llvm.org/D128312
Compare: https://github.com/llvm/llvm-project/compare/7a9ad257694c...c866f8544c92
More information about the All-commits
mailing list