summaryrefslogtreecommitdiffstats
path: root/lldb/source
Commit message (Collapse)AuthorAgeFilesLines
* <rdar://problem/11730263>Greg Clayton2013-03-287-151/+177
| | | | | | | | | | PC relative loads are missing disassembly comments when disassembled in a live process. This issue was because some sections, like __TEXT and __DATA in libobjc.A.dylib, were being moved when they were put into the dyld shared cache. This could also affect any other system that slides sections individually. The solution is to keep track of wether the bytes we will disassemble are from an executable file (file address), or from a live process (load address). We now do the right thing based off of this input in all cases. llvm-svn: 178315
* <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
* Be sure to take the mutex when the destructor is called in case other ↵Greg Clayton2013-03-281-0/+3
| | | | | | threads are using these lists and those other threads have the mutex locked. llvm-svn: 178262
* <rdar://problem/13527167>Greg Clayton2013-03-281-0/+4
| | | | | | | | Partial fix for the above radar. Call ThreadList::Clear() in the ThreadList destructor so if any other threads currently have the thread list mutex, we won't destroy the list for them while they are using it. ThreadList::Clear() takes the mutex and clears the thread list contents. llvm-svn: 178257
* Introduces extended register sets whose availability can vary with the ↵Ashok Thirumurthi2013-03-284-20/+99
| | | | | | | | | | target processor. - Includes a stub for AVX support in the x86-64 register context and a failing test for register sets that are unavailable. Thanks to Greg Clayton for his review feedback. llvm-svn: 178252
* Fix the Linux build issues introduced by r178191.Ashok Thirumurthi2013-03-288-45/+50
| | | | | | | | | - All Linux logging channels now use a single global instance of lldb_private::Log, to handle the case of logging during process tear down. - Also removed a single use of LogSP in FreeBSD and fixed a typo in a comment while reading through ProcessKDPLog. Reviewed by Daniel Malea. llvm-svn: 178242
* <rdar://problem/13412986>Enrico Granata2013-03-281-0/+3
| | | | | | | Holding the Python lock while we call the Python C API to post-process objects returned from the OS plugins This should avoid issues where some Python objects get invalidated while we are in the middle of processing them and we end up with an invalid Python state and a crash llvm-svn: 178206
* Protect against the case where the current inlined depth is wrong, and leads ↵Jim Ingham2013-03-282-30/+58
| | | | | | | | | | us to think we can't even get the frame at index 0. We should ALWAYS be able to get that. <rdar://problem/13497571> llvm-svn: 178205
* Use the error from ValidatePlan.Jim Ingham2013-03-281-1/+1
| | | | llvm-svn: 178204
* RunThreadPlan should make sure the plan passed in is valid before running it.Jim Ingham2013-03-281-1/+7
| | | | | | <rdar://problem/13485541> llvm-svn: 178202
* Return a useful error message from ValidatePlan if the expression can't be ↵Jim Ingham2013-03-281-7/+23
| | | | | | made for some reason. llvm-svn: 178201
* <rdar://problem/13521159>Greg Clayton2013-03-27139-966/+965
| | | | | | | | LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. llvm-svn: 178191
* Implementing the notion of externally-acquirable ScriptInterpreter lockEnrico Granata2013-03-272-0/+16
| | | | | | | | | | | | | | With this notion, if parties outside the ScriptInterpreter itself need to acquire a lock on script APIs, they can do so by a pattern like this: { auto lock = interpeter->AcquireInterpreterLock(); // do whatever you need to do... } // lock will automatically be released here This might be useful for classes that use the Python convenience objects (e.g. PythonDictionary) to ensure they keep the underlying interpreter in a safe and controlled condition while they call through the C API functions Of course, the ScriptInterpreter still manages its internal locking correctly when necessary :-) llvm-svn: 178189
* test commitAshok Thirumurthi2013-03-271-1/+1
| | | | | | - modified a comment llvm-svn: 178178
* Fix a typo in help string.Jim Ingham2013-03-271-1/+1
| | | | llvm-svn: 178154
* Fixed a problem where inline assembly errors causedSean Callanan2013-03-271-1/+20
| | | | | | | | LLDB to crash. <rdar://problem/13497915> llvm-svn: 178115
* Don't use a "uintptr_t" for the metadata key, use a "void *". This removes ↵Greg Clayton2013-03-278-50/+73
| | | | | | all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata. llvm-svn: 178113
* <rdar://problem/13339196>Enrico Granata2013-03-261-1/+5
| | | | | | | The algorithm to access an item in a __NSArrayM was not reacting properly to deletions The fix is to use a smarter formula that accounts for items shifting and the resulting notion of offsets in the table llvm-svn: 178076
* <rdar://problem/13246939>Enrico Granata2013-03-261-1/+1
| | | | | | Make format uint64_t[] actually work as designed llvm-svn: 178072
* Add a way to dump a ClangASTType to stdout for debugging purposes.Greg Clayton2013-03-261-0/+7
| | | | llvm-svn: 178071
* Clean up logging a bit to not log when a command pipe is opened when “lldb ↵Greg Clayton2013-03-261-1/+1
| | | | | | object” logging is on. llvm-svn: 178068
* Data formatters cleanup:Enrico Granata2013-03-263-6/+8
| | | | | | | | | | - Making an error message more consistent - Ensuring the element size is not zero before using it in a modulus - Properly using target settings to cap the std::list element count - Removing spurious element size calculations that were unused - Removing spurious capping in std::map llvm-svn: 178057
* Don't crash when we have an element size of zero.Greg Clayton2013-03-261-10/+14
| | | | llvm-svn: 178056
* That wasn't a typo, if the short letter option is from a non-obvious source, ↵Jim Ingham2013-03-261-1/+1
| | | | | | I capitolize it in the help as an aid to memory. llvm-svn: 178052
* Our commands that end up displaying a ValueObject as part of their workflow ↵Enrico Granata2013-03-266-64/+39
| | | | | | | | | | | use OptionGroupValueObjectDisplay as their currency for deciding the final representation ValueObjects themselves use DumpValueObjectOptions as the currency for the same purpose The code to convert between these two units was replicated (to varying degrees of correctness) in several spots in the code This checkin provides one and only one (and hopefully correct :-) entry point for this conversion llvm-svn: 178044
* Fixed a typo.Sean Callanan2013-03-261-1/+1
| | | | llvm-svn: 178039
* <rdar://problem/13502196>Greg Clayton2013-03-261-1/+12
| | | | | | We have the tag when figuring out the fully qualified name, append a suitable name for other types of tags when no name is available. llvm-svn: 177966
* <rdar://problem/13502196> Greg Clayton2013-03-262-2/+14
| | | | | | Functions in "(anonymous namespace)" was causing LLDB to crash when trying to complete a type and it would also cause functions arguments to appear in wrong place in frame display when showing function arguments. llvm-svn: 177965
* <rdar://problem/13221060>Enrico Granata2013-03-261-0/+15
| | | | | | | | | | | | | | | | | | | Make register read and write accept $<regname> as valid. This allows: (lldb) reg read rbx rbx = 0x0000000000000000 (lldb) reg read $rbx rbx = 0x0000000000000000 (lldb) reg write $rbx 1 (lldb) reg read $rbx rbx = 0x0000000000000001 to function correctly It is not done at the RegisterContext level because we should keep the internal API clean of this user-friendly behavior and name registers appropriately. If this ends up being needed in more places we can reconsider. llvm-svn: 177961
* Modified patch from Prabhat Verma to enable loading core files through the ↵Greg Clayton2013-03-251-0/+20
| | | | | | SBTarget API. llvm-svn: 177932
* <rdar://problem/13498879> Greg Clayton2013-03-251-9/+2
| | | | | | C String summary is emitting "<invalid usage of pointer value as object>" for bad pointers. Now it doesn't emit anything. llvm-svn: 177913
* <rdar://problem/13404009>Han Ming Ong2013-03-251-2/+2
| | | | | | Only get the attach_info's user ID if the supplied user info is invalid. llvm-svn: 177900
* <rdar://problem/13365424>Enrico Granata2013-03-252-17/+19
| | | | | | | | | | | | | | | | | Ensure that option -Y also works for expression as it does for frame variable Also, if the user passes an explicit format specifier when printing a variable, override the summary's decision to hide the value. This is required for scenarios like this to work: (lldb) p/x c (Class) $0 = 0x0000000100adb7f8 NSObject Previously this would say: (lldb) p/x c (Class) $0 = NSObject ignoring the explicit format specifier llvm-svn: 177893
* Fixed a potential crash if layout for a structureSean Callanan2013-03-251-1/+4
| | | | | | | | | went wrong and we tried to get layout information that wasn't there. <rdar://problem/13490170> llvm-svn: 177880
* Set the correct byte size for complex integer (-fI) memory reads.Jason Molenda2013-03-231-0/+8
| | | | | | <rdar://problem/12281172> llvm-svn: 177814
* And then again only compute the more expensive piece of data if need be :-)Enrico Granata2013-03-231-1/+1
| | | | llvm-svn: 177812
* Invert two condition checks to evaluate them in cheapest-to-more-expensive orderEnrico Granata2013-03-231-2/+2
| | | | llvm-svn: 177810
* <rdar://problem/13315663>Enrico Granata2013-03-231-9/+32
| | | | | | | | commands of the form frame variable -f c-string foo where foo is an arbitrary pointer (e.g. void*) now do the right thing, i.e. they deref the pointer and try to get a c-string at the pointed address instead of dumping the pointer bytes as a string. the old behavior is used as a fallback if things don’t go well llvm-svn: 177799
* If there are multiple uses of an Objective-CSean Callanan2013-03-231-8/+12
| | | | | | | | | class symbol in the same expression, handle all of them instead of just the first one. <rdar://problem/13440133> llvm-svn: 177794
* Only get the script interpreter if we find scripting resources in the symbol ↵Greg Clayton2013-03-231-13/+13
| | | | | | file. This helps us avoid initializing python when it isn't needed. llvm-svn: 177793
* Don't need to resolve the .o file path.Greg Clayton2013-03-231-1/+1
| | | | llvm-svn: 177792
* Fix a little fallout from the changes in r174757 where we wouldJason Molenda2013-03-231-9/+0
| | | | | | | | skip every other float/double/long double as we extracted data from a buffer. <rdar://problem/13485062> llvm-svn: 177779
* Don't bother calling Reserve on the vector unless we have entries to be added.Jason Molenda2013-03-221-1/+2
| | | | llvm-svn: 177776
* Add a Reserve method to RangeVector and RangeDataVector. Have theJason Molenda2013-03-221-0/+2
| | | | | | | | DWARFCallFrameInfo method which returns a RangeVector pre-size the vector based on the number of entries it will be adding insted of growing the vector as items are added. llvm-svn: 177773
* Change the AppleObjCTrampolineHandler to always run all threads when ↵Jim Ingham2013-03-222-1/+11
| | | | | | | | | | | resolving the target of an ObjC method call. Add a StopOthers method to AppleThreadPlanStepThroughObjCTrampoline, don't rely on the setting in the ThreadPlanToCallFunction, since that gets pushed too late to determine which threads will continue. <rdar://problem/13447638> llvm-svn: 177691
* Don't try to read the eh_frame section out of a dSYM.Jason Molenda2013-03-221-1/+5
| | | | | | It won't have one and it isn't needed. llvm-svn: 177688
* Modified the way we report fields of records.Sean Callanan2013-03-212-5/+30
| | | | | | | | | | | | | | | Clang requires them to have complete types, but we were previously only completing them if they were of tag or Objective-C object types. I have implemented a method on the ASTImporter whose job is to complete a type. It handles not only the cases mentioned above, but also array and atomic types. <rdar://problem/13446777> llvm-svn: 177672
* If we stopped but no threads had a reason for stopping, we should tell the ↵Jim Ingham2013-03-211-1/+16
| | | | | | | | user about it rather than continuing. <rdar://problem/13273125> Astris thread status replies for single-core device confuse lldb; lldb resumes execution on attaching llvm-svn: 177670
* Remove some commented out code.Jim Ingham2013-03-211-8/+0
| | | | llvm-svn: 177668
OpenPOWER on IntegriCloud