Skip to content

Commit eddbaa2

Browse files
Merge pull request #10791 from adrian-prantl/cfstringref
[lldb] Register a summary formatter for CoreFoundation.CFStringRef
2 parents f2964c2 + 2e4a5a0 commit eddbaa2

File tree

5 files changed

+29
-0
lines changed

5 files changed

+29
-0
lines changed

lldb/source/Plugins/Language/Swift/FoundationValueTypes.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ bool lldb_private::formatters::swift::NotificationName_SummaryProvider(
8686
return true;
8787
}
8888

89+
8990
bool lldb_private::formatters::swift::URL_SummaryProvider(
9091
ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) {
9192
static ConstString g__url("_url");

lldb/source/Plugins/Language/Swift/SwiftLanguage.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,12 @@ LoadFoundationValueTypesFormatters(lldb::TypeCategoryImplSP swift_category_sp) {
657657
"Foundation.Date summary provider", ConstString("Foundation.Date"),
658658
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
659659

660+
lldb_private::formatters::AddCXXSummary(
661+
swift_category_sp,
662+
lldb_private::formatters::NSStringSummaryProvider,
663+
"CFStringRef summary provider",
664+
ConstString("CoreFoundation.CFStringRef"),
665+
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
660666
lldb_private::formatters::AddCXXSummary(
661667
swift_category_sp,
662668
lldb_private::formatters::swift::NotificationName_SummaryProvider,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SWIFT_SOURCES := main.swift
2+
SWIFT_OBJC_INTEROP := 1
3+
include Makefile.rules
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import lldb
2+
from lldbsuite.test.lldbtest import *
3+
from lldbsuite.test.decorators import *
4+
import lldbsuite.test.lldbutil as lldbutil
5+
6+
class TestSwiftFoundationTypeCFStringRef(TestBase):
7+
NO_DEBUG_INFO_TESTCASE = True
8+
@swiftTest
9+
@skipUnlessFoundation
10+
def test(self):
11+
self.build()
12+
lldbutil.run_to_source_breakpoint(self, 'break here',
13+
lldb.SBFileSpec('main.swift'))
14+
self.expect("frame variable short", substrs=["Hello"])
15+
self.expect("frame variable long", substrs=["longer"])
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import Foundation
2+
let short = "Hello" as CFString
3+
let long = "This is definitely much longer" as CFString
4+
print("break here")

0 commit comments

Comments
 (0)