Files
clang-p2996/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
Med Ismail Bennani 8f5beb4c4b [lldb/Dataformatter] Add support for CoreFoundation Dictionaries and Sets.
This patch improves data formatting for CoreFoundation containers:
CFDictionary and CFSet.

These data formatters make the containers and their children appear in Xcode's
variables view (and on the command line) without having to expand the
data structure.

Previous implementation only supported showing the container's element count.

```
(lldb) frame var dict
(__NSCFDictionary *) dict = 0x00000001004062b0 2 key/value pairs

(lldb) frame var set
(__NSCFSet *) set = 0x0000000100406330 2 elements
```
Now the variable can be dereferenced to dispaly the container's children:

```
(lldb) frame var *dict
(__NSCFDictionary) *dict = {
  [0] = {
    key = 0x0000000100004050 @"123"
    value = 0x0000000100004090 @"456"
  }
  [1] = {
    key = 0x0000000100004030 @"abc"
    value = 0x0000000100004070 @"def"
  }
}

(lldb) frame var *set
(__NSCFSet) *set = {
  [0] = 0x0000000100004050 @"123"
  [1] = 0x0000000100004030 @"abc"
}
```

rdar://39882287

Differential Revision: https://reviews.llvm.org/D78396

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2020-04-27 22:10:11 +02:00

41 lines
763 B
CMake

set(EXTRA_CXXFLAGS "")
if (CXX_SUPPORTS_NO_GNU_ANONYMOUS_STRUCT)
set(EXTRA_CXXFLAGS ${EXTRA_CXXFLAGS} -Wno-gnu-anonymous-struct)
endif ()
if (CXX_SUPPORTS_NO_NESTED_ANON_TYPES)
set(EXTRA_CXXFLAGS ${EXTRA_CXXFLAGS} -Wno-nested-anon-types)
endif ()
add_lldb_library(lldbPluginObjCLanguage PLUGIN
ObjCLanguage.cpp
CF.cpp
CFBasicHash.cpp
Cocoa.cpp
CoreMedia.cpp
NSArray.cpp
NSDictionary.cpp
NSError.cpp
NSException.cpp
NSIndexPath.cpp
NSSet.cpp
NSString.cpp
LINK_LIBS
lldbCore
lldbDataFormatters
lldbExpression
lldbHost
lldbSymbol
lldbTarget
lldbUtility
lldbPluginAppleObjCRuntime
lldbPluginClangCommon
lldbPluginTypeSystemClang
CLANG_LIBS
clangAST
EXTRA_CXXFLAGS ${EXTRA_CXXFLAGS}
)