summaryrefslogtreecommitdiffstats
path: root/lldb/source/DataFormatters
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix CMake build by including ValueObjectPrinter.cpp in list of sourcesDaniel Malea2013-09-301-0/+1
| | | | llvm-svn: 191703
* <rdar://problem/14393032>Enrico Granata2013-09-301-0/+533
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DumpValueObject() 2.0 This checkin restores pre-Xcode5 functionality to the "po" (expr -O) command: - expr now has a new --description-verbosity (-v) argument, which takes either compact or full as a value (-v is the same as -vfull) When the full mode is on, "po" will show the extended output with type name, persistent variable name and value, as in (lldb) expr -O -v -- foo (id) $0 = 0x000000010010baf0 { 1 = 2; 2 = 3; } When -v is omitted, or -vcompact is passed, the Xcode5-style output will be shown, as in (lldb) expr -O -- foo { 1 = 2; 2 = 3; } - for a non-ObjectiveC object, LLDB will still try to retrieve a summary and/or value to display (lldb) po 5 5 -v also works in this mode (lldb) expr -O -vfull -- 5 (int) $4 = 5 On top of that, this is a major refactoring of the ValueObject printing code. The functionality is now factored into a ValueObjectPrinter class for easier maintenance in the future DumpValueObject() was turned into an instance method ValueObject::Dump() which simply calls through to the printer code, Dump_Impl has been removed Test case to follow llvm-svn: 191694
* Convert to UNIX line endings.Joerg Sonnenberger2013-09-251-24/+24
| | | | llvm-svn: 191367
* Updated CMakeLists to match XCode projectRichard Mitton2013-09-121-0/+1
| | | | llvm-svn: 190573
* <rdar://problem/14071463>Enrico Granata2013-09-122-1/+138
| | | | | | | | SVN r189964 provided a sample Python script to inspect unordered(multi){set|map} with synthetic children, contribued by Jared Grubb This checkin converts that sample script to a C++ provider built into LLDB A test case is also provided llvm-svn: 190564
* Use standard boolean operators.Virgile Bello2013-08-271-3/+3
| | | | llvm-svn: 189367
* MingW compilation (windows). Includes various refactoring to improve ↵Virgile Bello2013-08-231-0/+2
| | | | | | portability. llvm-svn: 189107
* clean up about 22 warnings messagesMichael Sartain2013-08-071-4/+4
| | | | llvm-svn: 187900
* Disabling the introspecting summary for __NSCFSet (essentially, for CF*SetRef)Enrico Granata2013-07-151-2/+2
| | | | llvm-svn: 186362
* Huge change to clean up types.Greg Clayton2013-07-118-115/+112
| | | | | | | | 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. llvm-svn: 186130
* Adding a summary for ObjC blocksEnrico Granata2013-07-101-0/+7
| | | | llvm-svn: 186023
* Remove the #define USE_CACHE since the formatters cache has been operational ↵Enrico Granata2013-06-261-23/+7
| | | | | | | | for a while now and has not caused issues that warrant disabling it Also, print the cache hits statistics if the log is in debugging mode vs. LLDB being a debug build - this should make it easier to gather useful metrics on cache success rate for real users llvm-svn: 184900
* <rdar://problem/14005652>Enrico Granata2013-06-191-105/+2
| | | | | | Fixing a bug with the NSString data formatter where some strings would be truncated llvm-svn: 184336
* Sort out a number of mismatched integer types in order to cut down the ↵Andy Gibbs2013-06-191-1/+1
| | | | | | number of compiler warnings. llvm-svn: 184333
* <rdar://problem/12717717>Enrico Granata2013-06-182-14/+26
| | | | | | | Modifying our data formatters matching algorithm to ensure that "const X*" is treated as equivalent to "X*" Also, a couple improvements to the "lldb types" logging llvm-svn: 184215
* Removing a redundant writeEnrico Granata2013-06-121-3/+0
| | | | llvm-svn: 183814
* Remove eFormatHalfFloat as it isn't needed. eFormatFloat should be used and ↵Greg Clayton2013-06-111-1/+0
| | | | | | the byte size will tell us how to display it. llvm-svn: 183755
* <rdar://problem/12783351>Enrico Granata2013-06-111-0/+1
| | | | | | | | | | Add support for half-floats, as specified by IEEE-754-2008 With this checkin, you can now say: (lldb) x/7hf foo to read 7 half-floats at address foo llvm-svn: 183716
* <rdar://problem/14101771>Enrico Granata2013-06-101-3/+4
| | | | | | Hardening the CFBitVector data formatter against failed reads llvm-svn: 183706
* <rdar://problem/13125225>Enrico Granata2013-06-051-0/+6
| | | | | | | Adding data formatters for std::set, std::multiset and std::multimap for libc++ The underlying data structure is the same as std::map, so this change is very minimal and mostly consists of test cases llvm-svn: 183323
* <rdar://problem/14003462>Enrico Granata2013-06-041-0/+2
| | | | | | Formatters for unsigned char* and const variant llvm-svn: 183254
* Fix various build warnings.Matt Kopec2013-06-036-3/+13
| | | | llvm-svn: 183140
* An NSData with 0 bytes in it would report a summary of “0 byte”Enrico Granata2013-05-311-1/+1
| | | | | | Making sure that I get my English right by saying “0 bytes” instead llvm-svn: 182978
* Add ${ansi.XX} parsing to lldb prompt, use-color setting, and -no-use-colors ↵Michael Sartain2013-05-232-2/+2
| | | | | | | | | | command line options. settings set use-color [false|true] settings set prompt "${ansi.bold}${ansi.fg.green}(lldb)${ansi.normal} " also "--no-use-colors" on the command prompt llvm-svn: 182609
* <rdar://problem/13928053>Enrico Granata2013-05-171-1/+6
| | | | | | Fix the fact that an empty NSString (e.g. one obtained from @"" would show no summary) llvm-svn: 182173
* Fixed a few obvious errors pointed out by the static analyzer.Jim Ingham2013-05-151-1/+1
| | | | llvm-svn: 181911
* <rdar://problem/13821289>Enrico Granata2013-05-151-11/+52
| | | | | | Changes to the libc++ std::string data formatter llvm-svn: 181855
* <rdar://problem/11669154>Enrico Granata2013-05-062-23/+29
| | | | | | Make a summary format for libc++ STL containers that shows the number of items as before, but also shows the pointer value for pointer-to-container llvm-svn: 181236
* Harden against potential empty nodes in the mapEnrico Granata2013-05-031-0/+2
| | | | llvm-svn: 181045
* <rdar://problem/13749871>Enrico Granata2013-05-031-4/+27
| | | | | | Improvements to the std::map data formatter to recognize when invalid memory is being explored and bail out instead of looping for a potentially very long time llvm-svn: 181044
* <rdar://problem/12529989>Enrico Granata2013-04-272-6/+84
| | | | | | Synthetic children provider for NSOrderedSet llvm-svn: 180655
* Make a synthetic children provider for the ObjC Class typeEnrico Granata2013-04-262-0/+55
| | | | llvm-svn: 180588
* See: ↵Enrico Granata2013-04-241-1/+1
| | | | | | | | | http://stackoverflow.com/questions/16166897/c-how-to-obtain-address-of-stdvector-object-in-lldb-xcode The user was trying to obtain the address-of an std::vector and the experience was more painful than necessary because data formatters were kicking in for vector* objects We got this right for libc++ - we should get it right for libstdc++ too llvm-svn: 180219
* Changes to the ObjC runtimeEnrico Granata2013-04-241-1/+4
| | | | llvm-svn: 180199
* Closing parentheses is good - doing it while respecting printf format ↵Enrico Granata2013-04-231-1/+1
| | | | | | specifiers is even better llvm-svn: 180156
* char32_t should use an uppercase U as its prefixEnrico Granata2013-04-231-1/+1
| | | | llvm-svn: 180148
* Closing parentheses once they are open is a good ideaEnrico Granata2013-04-231-1/+1
| | | | llvm-svn: 180142
* The new ReadStringFromMemory() API does not work correctly with NSStrings ↵Enrico Granata2013-04-231-54/+250
| | | | | | | | | 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 llvm-svn: 180141
* <rdar://problem/13437949>Enrico Granata2013-04-233-42/+6
| | | | | | Making sure that CF*{Array|Dictionary}Ref provide synthetic children correctly. llvm-svn: 180074
* Much better way to get at the size of an std::listEnrico Granata2013-04-221-18/+36
| | | | llvm-svn: 180071
* Fixed some linux buildbot warnings.Greg Clayton2013-04-191-1/+1
| | | | llvm-svn: 179892
* Provided a variant of ReadCStringFromMemory that supports null terminators ↵Ashok Thirumurthi2013-04-191-4/+7
| | | | | | | | | | | | | | | | | | 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. llvm-svn: 179857
* <rdar://problem/13563628>Enrico Granata2013-04-051-8/+5
| | | | | | | | | | Introducing a negative cache for ObjCLanguageRuntime::LookupInCompleteClassCache() This helps speed up the (common) case of us looking for classes that are hidden deep within Cocoa internals and repeatedly failing at finding type information for them. In order for this to work, we need to clean this cache whenever debug information is added. A new symbols loaded event is added that is triggered with add-dsym (before modules loaded would be triggered for both adding modules and adding symbols). Interested parties can register for this event. Internally, we make sure to clean the negative cache whenever symbols are added. Lastly, ClassDescriptor::IsTagged() has been refactored to GetTaggedPointerInfo() that also (optionally) returns info and value bits. In this way, data formatters can share tagged pointer code instead of duplicating the required arithmetic. llvm-svn: 178897
* <rdar://problem/13563697>Enrico Granata2013-04-041-4/+1
| | | | | | | The __NSArrayI synthetic children provider was running expressions to generate children, which is inefficient for large amounts of data Reimplementing to use a faster algorithm llvm-svn: 178729
* #include clang's AST/DeclCXX.h to pick up CXXRecordDecl definition,Jason Molenda2013-04-031-0/+2
| | | | | | needed for some versions of clang. llvm-svn: 178692
* <rdar://problem/13563403>Enrico Granata2013-04-031-10/+114
| | | | | | | | Reimplemented the NSDictionary synthetic children provider for added performance. Instead of generating pairs by running an expression, we now create a pair type using clang-level APIs and fill in a buffer with the pointers to key and value This strategy takes the time required to dump a 10k items __NSDictionaryM from ~45s to <4s llvm-svn: 178601
* Fixing a silly bug that would cause string summaries not to show up :-)Enrico Granata2013-04-021-2/+9
| | | | llvm-svn: 178590
* <rdar://problem/13415737>Enrico Granata2013-04-021-16/+144
| | | | | | | | 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 llvm-svn: 178577
* <rdar://problem/12410225>Enrico Granata2013-03-281-1/+1
| | | | | | | By default, omit the children for a char[] and just show the string contents Can be overridden by appropriate command-line flags llvm-svn: 178292
* Hardening the vector iterator synthetic child(ren) provider against ↵Enrico Granata2013-03-281-1/+3
| | | | | | item-not-in-cluster asserts llvm-svn: 178265
OpenPOWER on IntegriCloud