[Lldb-commits] [PATCH] D77843: [lldb/DataFormatters] Delete GetStringPrinterEscapingHelper
Vedant Kumar via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Apr 9 18:12:05 PDT 2020
vsk created this revision.
vsk added reviewers: JDevlieghere, davide.
Herald added a subscriber: mgorny.
Herald added a project: LLDB.
Languages can have different ways of formatting special characters.
E.g. when debugging C++ code a string might look like "\b", but when
debugging Swift code the same string would look like "\u{8}".
To make this work, plugins override GetStringPrinterEscapingHelper.
However, because there's a large amount of subtly divergent work done in
each override, we end up with large amounts of duplicated code. And all
the memory smashers fixed in one copy of the logic (see D73860 <https://reviews.llvm.org/D73860>) don't
get fixed in the others.
IMO the GetStringPrinterEscapingHelper is overly general and hard to
use. I propose deleting it and replacing it with an EscapeStyle enum,
which can be set as needed by each plugin.
A fix for some swift-lldb memory smashers falls out fairly naturally
from this deletion (https://github.com/apple/llvm-project/pull/1046). As
the swift logic becomes really tiny, I propose moving it upstream as
part of this change. I've added unit tests to cover it.
rdar://61419673
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D77843
Files:
lldb/include/lldb/DataFormatters/StringPrinter.h
lldb/include/lldb/Target/Language.h
lldb/source/DataFormatters/StringPrinter.cpp
lldb/source/Plugins/Language/ObjC/NSString.cpp
lldb/source/Target/Language.cpp
lldb/unittests/DataFormatter/CMakeLists.txt
lldb/unittests/DataFormatter/StringPrinterTests.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77843.256459.patch
Type: text/x-patch
Size: 32502 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200410/923f8b85/attachment-0001.bin>
More information about the lldb-commits
mailing list