forked from OSchip/llvm-project
a37caebc2d
Summary: 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) 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 Reviewers: JDevlieghere, davide Subscribers: mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77843 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
CXXFunctionPointer.cpp | ||
DataVisualization.cpp | ||
DumpValueObjectOptions.cpp | ||
FormatCache.cpp | ||
FormatClasses.cpp | ||
FormatManager.cpp | ||
FormattersHelpers.cpp | ||
LanguageCategory.cpp | ||
StringPrinter.cpp | ||
TypeCategory.cpp | ||
TypeCategoryMap.cpp | ||
TypeFormat.cpp | ||
TypeSummary.cpp | ||
TypeSynthetic.cpp | ||
ValueObjectPrinter.cpp | ||
VectorType.cpp |