| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 191703
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 191367
|
|
|
|
| |
llvm-svn: 190573
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 189367
|
|
|
|
|
|
| |
portability.
llvm-svn: 189107
|
|
|
|
| |
llvm-svn: 187900
|
|
|
|
| |
llvm-svn: 186362
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 186023
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fixing a bug with the NSString data formatter where some strings would be truncated
llvm-svn: 184336
|
|
|
|
|
|
| |
number of compiler warnings.
llvm-svn: 184333
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 183814
|
|
|
|
|
|
| |
the byte size will tell us how to display it.
llvm-svn: 183755
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Hardening the CFBitVector data formatter against failed reads
llvm-svn: 183706
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Formatters for unsigned char* and const variant
llvm-svn: 183254
|
|
|
|
| |
llvm-svn: 183140
|
|
|
|
|
|
| |
Making sure that I get my English right by saying “0 bytes” instead
llvm-svn: 182978
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fix the fact that an empty NSString (e.g. one obtained from @"" would show no summary)
llvm-svn: 182173
|
|
|
|
| |
llvm-svn: 181911
|
|
|
|
|
|
| |
Changes to the libc++ std::string data formatter
llvm-svn: 181855
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 181045
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Synthetic children provider for NSOrderedSet
llvm-svn: 180655
|
|
|
|
| |
llvm-svn: 180588
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 180199
|
|
|
|
|
|
| |
specifiers is even better
llvm-svn: 180156
|
|
|
|
| |
llvm-svn: 180148
|
|
|
|
| |
llvm-svn: 180142
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Making sure that CF*{Array|Dictionary}Ref provide synthetic children correctly.
llvm-svn: 180074
|
|
|
|
| |
llvm-svn: 180071
|
|
|
|
| |
llvm-svn: 179892
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
needed for some versions of clang.
llvm-svn: 178692
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 178590
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
item-not-in-cluster asserts
llvm-svn: 178265
|