History log of /external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
52f792329be5db8e38961350589e97e8f2823acd 12-Jul-2013 Greg Clayton <gclayton@apple.com> Huge change to clean up types.

A long time ago we start with clang types that were created by the symbol files and there were many functions in lldb_private::ClangASTContext that helped. Later we create ClangASTType which contains a clang::ASTContext and an opauque QualType, but we didn't switch over to fully using it. There were a lot of places where we would pass around a raw clang_type_t and also pass along a clang::ASTContext separately. This left room for error.

This checkin change all type code over to use ClangASTType everywhere and I cleaned up the interfaces quite a bit. Any code that was in ClangASTContext that was type related, was moved over into ClangASTType. All code that used these types was switched over to use all of the new goodness.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
237bbc15b73b4244279e4e155d54d804baadfd81 19-Jun-2013 Enrico Granata <egranata@apple.com> <rdar://problem/14005652>

Fixing a bug with the NSString data formatter where some strings would be truncated



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
884288bcb6824452a3c64eb772c0976501acc47a 03-Jun-2013 Matt Kopec <Matt.Kopec@intel.com> Fix various build warnings.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
7b61b79d4a6a606b8efc11d7a8b2aa63a9880d46 31-May-2013 Enrico Granata <egranata@apple.com> An NSData with 0 bytes in it would report a summary of “0 byte”
Making sure that I get my English right by saying “0 bytes” instead

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
d9222720d49a2f82234f5f9d3ffd0afe086b7251 18-May-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13928053>

Fix the fact that an empty NSString (e.g. one obtained from @"" would show no summary)



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
829526245fc45b968bb7d0beef6f2d8b01bb52e5 15-May-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13821289>

Changes to the libc++ std::string data formatter

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
39ebb982b3f9de4a15744078e9c6ba231187b5dc 26-Apr-2013 Enrico Granata <egranata@apple.com> Make a synthetic children provider for the ObjC Class type



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
bf5d9d4730cd1fedef4ff02ed25cc47be06e0c8a 23-Apr-2013 Enrico Granata <egranata@apple.com> char32_t should use an uppercase U as its prefix

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
66cd2b51a3e5003e2692215277525f79bb86c55b 23-Apr-2013 Enrico Granata <egranata@apple.com> The new ReadStringFromMemory() API does not work correctly with NSStrings that have an explicit length and no NULL terminator
This checkin reverts NSString to the old behavior when appropriate, and cleans up the syntax to call the UTF Reader&Dumper function
Incidentally, add a "-d" command-line flag to redo.py with the same semantics as "-d" in dotest.py



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
d387b462eecb908af265ecc7006781b4532073ad 19-Apr-2013 Greg Clayton <gclayton@apple.com> Fixed some linux buildbot warnings.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
347d722127cc6a19b077244305c3d350ea4ef80e 19-Apr-2013 Ashok Thirumurthi <ashok.thirumurthi@intel.com> Provided a variant of ReadCStringFromMemory that supports null terminators of any character width.
This prevents unbounded reads (i.e. reads of GetMaximumSizeOfStringSummary() bytes)
from causing test failures (i.e. due to ptrace EIO or EFAULT on Linux).

Note that ReadCStringFromMemory is marked as deprecated because the loop that calls
ReadMemory does not continue until the string has been completely read.
The expected behavior is to read until until max_bytes or a null terminator.

Note: As discussed on lldb-dev, further testing will be performed with ReadStringFromMemory
before further changes are made for users of ReadCStringFromMemory.

Thanks to Enrico, Matt and Andy for their review feedback.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
54f30207231b5b9fe4ed6ca05f6774618326b27d 03-Apr-2013 Enrico Granata <egranata@apple.com> Fixing a silly bug that would cause string summaries not to show up :-)

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
fb1493d5c569100d8c029162a6b5d30413a14570 02-Apr-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13415737>

Fixing a bug where LLDB was not handling correctly CFStrings that have an explicit length but no NULL terminator
The data formatter was showing garbled data as part of the summary
The fix is to explicitly figure out the explicit length if we need to (bitfields tell us when that is the case) and use that as a size delimiter



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
d32acdb74c50f6fc3a2aab0619a75f2bc4c05a30 28-Mar-2013 Enrico Granata <egranata@apple.com> Hardening the vector iterator synthetic child(ren) provider against item-not-in-cluster asserts

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
cc5d27417b9f958d596a438290a9adb17674b487 19-Mar-2013 Enrico Granata <egranata@apple.com> The formatters for std::shared_ptr, std::weak_ptr, std::list, std::vector and std::map as provided by libc++ are now written in C++ instead of Python
std::deque is still in Python but is much less commonly used



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
cba09f60618744e2155bc97c9049fa9c797698ad 19-Mar-2013 Enrico Granata <egranata@apple.com> This checkin removes the last Cocoa formatters that were implemented in Python and reimplements them in C++. The Python Cocoa formatters are not shipped as part of LLDB anymore, but still exist in the source repository for user reference. Python formatters still exist for STL classes and users can still define their own Python formatters

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
5782daebac56f3d5b8effdc4e6db7de93630b3c5 16-Mar-2013 Enrico Granata <egranata@apple.com> C++ formatters for NSTimeZone and for CFBitVector

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
3818e6ac2211921db522abedd43746c1de3e82b5 16-Mar-2013 Enrico Granata <egranata@apple.com> NS(Mutable)IndexSet formatter moves from Python to C++

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
dc1df6b2fd7d359753b2bcfcf2decb114f465a1d 16-Mar-2013 Enrico Granata <egranata@apple.com> Converting more data formatters to C++ - NSBundle, CFBinaryHeap, NSMachPort and NSNotification

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
280b30f0315211c54ce1c34366b586e9700629f4 15-Mar-2013 Enrico Granata <egranata@apple.com> Porting the Objective-C Class data type’s summary from Python to C++

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
b70c6ef20cd49bd7b33736e7534db717ae75e96f 15-Mar-2013 Enrico Granata <egranata@apple.com> Moving CFBag and NSBundle summaries from Python to C++

Temporarily disabled non-code-running summaries for CF*Dictionary and NSCountedSet

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
f3a217e676b9aa7cadbec2216cf0d69f16ce57a3 21-Feb-2013 Enrico Granata <egranata@apple.com> Cleanup of the NSString data formatter



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
32d7ee3d2969211e104a27fcfcd636f249b26559 21-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/4529976>

Adding data formatters for iterators for std::map and std::vector (both libc++ and libstdcpp)
This does not include reverse iterators since they are both trickier (due to requirements the standard imposes on them) and much less useful



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
04d3bb2436e3cbecd3d461715aaf5cc99e93c828 19-Feb-2013 Enrico Granata <egranata@apple.com> Fixing the lack of a space in an expression that was causing sheer unhappiness.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
ea68753ef4b8cca81cf3f5aef7bbf1ebb152a832 16-Feb-2013 Enrico Granata <egranata@apple.com> NSSet formatter is now C++ code
Split some NS* formatters in their own source files
Refactored a utility function for the C++ formatters to use
Fixed the skip-summary test case to be explicit about requiring libstdc++ for operation



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
1f9df7804f59193fdfbba3d73bb81f99c689f486 15-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/13204647>

The SEL data formatter was working hard to ensure that pointers-to-selectors could be formatted by the same block of code. In that effort, we were taking the address-of a SEL.
This operation fails when the SEL lives in a register, and was causing problems.
The formatter has been fixed to work correctly without assuming &selector will be a valid object.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
2fd26158cadd9abd1592c5b72ac60c6e1e31c43f 09-Feb-2013 Enrico Granata <egranata@apple.com> Fixing a logic flaw with NSURL summary. This was caught by running the test suite in 32bit mode

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
0cd33406723ceed5c08d41ff6946006298f3f133 08-Feb-2013 Greg Clayton <gclayton@apple.com> Fixed a store to data that isn't needed and that also could end up writing beyond the end of the buffer. This was found by the address sanitizer.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
979c4b526eb31cbed5475ec62ef10fe53cbf8c45 08-Feb-2013 Enrico Granata <egranata@apple.com> This checkin implements the data formatter for NSURL in C++ code



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
dcffc1a667665936b3dd33a9861a3de9d1d35636 08-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/12898191>

Added a summary for NSMutableAttributedString
In the process, converted formatters for other NSString-based classes over to C++ code



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
689696c19cbf0fa8a09e2461f0aaa37409782e3b 04-Feb-2013 Enrico Granata <egranata@apple.com> <rdar://problem/12953018>

Synthetic children and summary for std::vector<bool> (for both libcxx and libstdcpp).
std::vector<bool> is a special case and is custom-implemented to be a vector of bits, which means we failed to handle it with the standard std::vector<T> formatter.
This checkin provides custom formatters that work correctly



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
53d268ca5382af7fdfca320ed647ddaee63c9f7d 30-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> llvm/Basic/ConvertUTF.h now exposes all functions without macro tricks


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
2a64f9ad2f6abf7a43bb03346a5af50f9df204f7 30-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> UTF conversion routines were moved from clang/Basic to llvm/Support


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp
f509c5ec066599a3399fced39ea36996184939e8 29-Jan-2013 Enrico Granata <egranata@apple.com> <rdar://problem/12978143>

Data formatters now cache themselves.
This commit provides a new formatter cache mechanism. Upon resolving a formatter (summary or synthetic), LLDB remembers the resolution for later faster retrieval.
Also moved the data formatters subsystem from the core to its own group and folder for easier management, and done some code reorganization.
The ObjC runtime v1 now returns a class name if asked for the dynamic type of an object. This is required for formatters caching to work with the v1 runtime.
Lastly, this commit disposes of the old hack where ValueObjects had to remember whether they were queried for formatters with their static or dynamic type.
Now the ValueObjectDynamicValue class works well enough that we can use its dynamic value setting for the same purpose.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/DataFormatters/CXXFormatterFunctions.cpp