diff options
author | Enrico Granata <granata.enrico@gmail.com> | 2011-07-12 22:56:10 +0000 |
---|---|---|
committer | Enrico Granata <granata.enrico@gmail.com> | 2011-07-12 22:56:10 +0000 |
commit | f4efecd9587a54e331e14b90f53ef9f2bdfcfc93 (patch) | |
tree | dc88ed6dcb21a374f270d88684ca781e7cc49f46 /lldb/source/Core/FormatManager.cpp | |
parent | 5d11676eef4727474e6141e390c8fd20a54f1e1a (diff) | |
download | bcm5719-llvm-f4efecd9587a54e331e14b90f53ef9f2bdfcfc93.tar.gz bcm5719-llvm-f4efecd9587a54e331e14b90f53ef9f2bdfcfc93.zip |
smarter summary strings:
- formats %s %char[] %c and %a now work to print 0-terminated c-strings if they are applied to a char* or char[] even without the [] operator (e.g. ${var%s})
- array formats (char[], intN[], ..) now work when applied to an array of a scalar type even without the [] operator (e.g. ${var%int32_t[]})
LLDB will not crash because of endless loop when trying to obtain a summary for an object that has no value and references itself in its summary string
In many cases, a wrong summary string will now display an "<error>" message instead of giving out an empty string
llvm-svn: 135007
Diffstat (limited to 'lldb/source/Core/FormatManager.cpp')
-rw-r--r-- | lldb/source/Core/FormatManager.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lldb/source/Core/FormatManager.cpp b/lldb/source/Core/FormatManager.cpp index ece30068e4d..040b9cd9ebd 100644 --- a/lldb/source/Core/FormatManager.cpp +++ b/lldb/source/Core/FormatManager.cpp @@ -187,3 +187,33 @@ FormatNavigator<lldb::RegularExpressionSP, SummaryFormat>::Delete(const char* ty } return false; } + +lldb::Format +FormatManager::GetSingleItemFormat(lldb::Format vector_format) +{ + switch(vector_format) + { + case eFormatVectorOfChar: + return eFormatCharArray; + + case eFormatVectorOfSInt8: + case eFormatVectorOfSInt16: + case eFormatVectorOfSInt32: + case eFormatVectorOfSInt64: + return eFormatDecimal; + + case eFormatVectorOfUInt8: + case eFormatVectorOfUInt16: + case eFormatVectorOfUInt32: + case eFormatVectorOfUInt64: + case eFormatVectorOfUInt128: + return eFormatHex; + + case eFormatVectorOfFloat32: + case eFormatVectorOfFloat64: + return eFormatFloat; + + default: + return lldb::eFormatInvalid; + } +} |