Skip to content

Commit 9112593

Browse files
committed
[lldb] Add summary formatter for _BridgedURL
Data wise, `_BridgedURL` is a wrapper around `NSURL`. This fixes printing of these bridged URLs by simply delegating to the inner `NSURL` (`_url`).
1 parent 6d67f0b commit 9112593

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,10 @@ LoadFoundationValueTypesFormatters(lldb::TypeCategoryImplSP swift_category_sp) {
703703
"URL summary provider", ConstString("Foundation._SwiftURL"),
704704
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
705705

706+
lldb_private::formatters::AddStringSummary(
707+
swift_category_sp, "${var._url}", ConstString("Foundation._BridgedURL"),
708+
TypeSummaryImpl::Flags(summary_flags).SetDontShowChildren(true));
709+
706710
lldb_private::formatters::AddCXXSummary(
707711
swift_category_sp,
708712
lldb_private::formatters::swift::IndexPath_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+
SWIFTFLAGS_EXTRAS := -parse-as-library
3+
include Makefile.rules
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import lldb
2+
from lldbsuite.test.lldbtest import *
3+
from lldbsuite.test.decorators import *
4+
from lldbsuite.test import lldbutil
5+
6+
7+
class TestCase(TestBase):
8+
@swiftTest
9+
@skipUnlessFoundation
10+
def test(self):
11+
self.build()
12+
lldbutil.run_to_source_breakpoint(
13+
self, "break here", lldb.SBFileSpec("main.swift")
14+
)
15+
16+
self.expect("v url", substrs=['url = "file:///tmp"'])
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import Foundation
2+
3+
@main enum Entry {
4+
static func main() {
5+
let nsurl = NSURL(fileURLWithPath: "/tmp")
6+
let url = nsurl as URL
7+
print("break here", url)
8+
}
9+
}

0 commit comments

Comments
 (0)