In cases where the Objective-C ivar symbols are stripped out,
authorSean Callanan <scallanan@apple.com>
Thu, 15 Nov 2012 02:02:04 +0000 (02:02 +0000)
committerSean Callanan <scallanan@apple.com>
Thu, 15 Nov 2012 02:02:04 +0000 (02:02 +0000)
commite0b23b5198baa1499edaf0209c164e81007c4dfe
tree84dc4e81c828133899b75fb134f8f9541eb7008f
parenta660ae4421ed77fdbfe7fb461f78b9a13c5fc12b
In cases where the Objective-C ivar symbols are stripped out,
expressions that refer to ivars will not work because Clang
emits IR that refers to them to get the ivar offsets.
However, it is possible to search the runtime for these values.

I have added support for reading the relevant tables to the
Objective-C runtime, and extended ClangExpressionDeclMap to
query that information if and only if it doesn't find the symbols
in the binary.

Also added a testcase.

<rdar://problem/12628122>

llvm-svn: 168018
lldb/include/lldb/Expression/ClangExpressionDeclMap.h
lldb/include/lldb/Target/ObjCLanguageRuntime.h
lldb/source/Expression/ClangExpressionDeclMap.cpp
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeVendor.cpp
lldb/test/lang/objc/objc-ivar-stripped/Makefile [new file with mode: 0644]
lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py [new file with mode: 0644]
lldb/test/lang/objc/objc-ivar-stripped/main.m [new file with mode: 0644]