diff options
| author | Enrico Granata <egranata@apple.com> | 2012-08-09 19:33:34 +0000 |
|---|---|---|
| committer | Enrico Granata <egranata@apple.com> | 2012-08-09 19:33:34 +0000 |
| commit | 7ec18e3d10aeded985ab2fcb0781d17a80ad0df5 (patch) | |
| tree | 1b99f1d79c3231115af2a1928c51e94267a9b966 /lldb/source/Core | |
| parent | 10c6072d615a45617cf3e26c9b5b8f7f4d0046ef (diff) | |
| download | bcm5719-llvm-7ec18e3d10aeded985ab2fcb0781d17a80ad0df5.tar.gz bcm5719-llvm-7ec18e3d10aeded985ab2fcb0781d17a80ad0df5.zip | |
<rdar://problem/10449092> Adding a new uppercase hex format specifier. This commit also changes the short names for formats so that uppercase hex can be 'X', which was previously assigned to hex float. hex float now has no short name.
llvm-svn: 161606
Diffstat (limited to 'lldb/source/Core')
| -rw-r--r-- | lldb/source/Core/DataExtractor.cpp | 40 | ||||
| -rw-r--r-- | lldb/source/Core/FormatManager.cpp | 3 | ||||
| -rw-r--r-- | lldb/source/Core/ValueObject.cpp | 1 |
3 files changed, 25 insertions, 19 deletions
diff --git a/lldb/source/Core/DataExtractor.cpp b/lldb/source/Core/DataExtractor.cpp index 24d1dc12c27..7cfe16991df 100644 --- a/lldb/source/Core/DataExtractor.cpp +++ b/lldb/source/Core/DataExtractor.cpp @@ -1675,27 +1675,31 @@ DataExtractor::Dump (Stream *s, default: case eFormatDefault: case eFormatHex: - if (item_byte_size <= 8) - { - s->Printf("0x%*.*llx", 2 * item_byte_size, 2 * item_byte_size, GetMaxU64Bitfield(&offset, item_byte_size, item_bit_size, item_bit_offset)); - } - else + case eFormatHexUppercase: { - assert (item_bit_size == 0 && item_bit_offset == 0); - s->PutCString("0x"); - const uint8_t *bytes = (const uint8_t* )GetData(&offset, item_byte_size); - if (bytes) + bool wantsuppercase = (item_format == eFormatHexUppercase); + if (item_byte_size <= 8) { - uint32_t idx; - if (m_byte_order == eByteOrderBig) - { - for (idx = 0; idx < item_byte_size; ++idx) - s->Printf("%2.2x", bytes[idx]); - } - else + s->Printf(wantsuppercase ? "0x%*.*llX" : "0x%*.*llx", 2 * item_byte_size, 2 * item_byte_size, GetMaxU64Bitfield(&offset, item_byte_size, item_bit_size, item_bit_offset)); + } + else + { + assert (item_bit_size == 0 && item_bit_offset == 0); + s->PutCString("0x"); + const uint8_t *bytes = (const uint8_t* )GetData(&offset, item_byte_size); + if (bytes) { - for (idx = 0; idx < item_byte_size; ++idx) - s->Printf("%2.2x", bytes[item_byte_size - 1 - idx]); + uint32_t idx; + if (m_byte_order == eByteOrderBig) + { + for (idx = 0; idx < item_byte_size; ++idx) + s->Printf(wantsuppercase ? "%2.2X" : "%2.2x", bytes[idx]); + } + else + { + for (idx = 0; idx < item_byte_size; ++idx) + s->Printf(wantsuppercase ? "%2.2X" : "%2.2x", bytes[item_byte_size - 1 - idx]); + } } } } diff --git a/lldb/source/Core/FormatManager.cpp b/lldb/source/Core/FormatManager.cpp index f9509cb01e7..c35c0b3cd26 100644 --- a/lldb/source/Core/FormatManager.cpp +++ b/lldb/source/Core/FormatManager.cpp @@ -42,6 +42,7 @@ g_format_infos[] = { eFormatDecimal , 'd' , "decimal" }, { eFormatEnum , 'E' , "enumeration" }, { eFormatHex , 'x' , "hex" }, + { eFormatHexUppercase , 'X' , "uppercase hex" }, { eFormatFloat , 'f' , "float" }, { eFormatOctal , 'o' , "octal" }, { eFormatOSType , 'O' , "OSType" }, @@ -64,7 +65,7 @@ g_format_infos[] = { eFormatComplexInteger , 'I' , "complex integer" }, { eFormatCharArray , 'a' , "character array" }, { eFormatAddressInfo , 'A' , "address" }, - { eFormatHexFloat , 'X' , "hex float" }, + { eFormatHexFloat , '\0' , "hex float" }, { eFormatInstruction , 'i' , "instruction" }, { eFormatVoid , 'v' , "void" } }; diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp index 127152e3bb4..8016bab3d2e 100644 --- a/lldb/source/Core/ValueObject.cpp +++ b/lldb/source/Core/ValueObject.cpp @@ -1426,6 +1426,7 @@ ValueObject::DumpPrintableRepresentation(Stream& s, (custom_format == eFormatComplexFloat) || (custom_format == eFormatDecimal) || (custom_format == eFormatHex) || + (custom_format == eFormatHexUppercase) || (custom_format == eFormatFloat) || (custom_format == eFormatOctal) || (custom_format == eFormatOSType) || |

