summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* Don't need to resolve the .o file path.Greg Clayton2013-03-231-1/+1
| | | | llvm-svn: 177792
* Make sure the "Release" builds link against the "Release" LLDB.framework and ↵Greg Clayton2013-03-233-21/+30
| | | | | | also output the results to /dev/stdout when no outfile is supplied. llvm-svn: 177791
* Change debugserver to open the socket it listensJason Molenda2013-03-233-10/+22
| | | | | | | | | | | | | | | to in INADDR_LOOPBACK mode by default ("localhost only") instead of INADDR_ANY ("accept connections from any system"). Add a new command line argument to debugserver, --open-connection or -H which will enable the previous behavior. It would be used if you were doing two-system debugging, with lldb running on one system and debugserver running on the other. But it is a less common workflow and should not be the default. <rdar://problem/12583284> llvm-svn: 177790
* 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-222-2/+16
| | | | | | | | 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
* Added option parsing to the lldb_perf_clang performance test.Greg Clayton2013-03-221-9/+225
| | | | llvm-svn: 177759
* More cleanup to remove the CoreFoundation classes out of mainstream code ↵Greg Clayton2013-03-225-67/+2
| | | | | | (CFCMutableDictionary, CFCMutableArray, CFCString, etc). Now it is only used in the Results.cpp file for Apple builds only. llvm-svn: 177697
* Much more cleanup on the performance testing infrastructure:Greg Clayton2013-03-2219-371/+1183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added new abtract Results class to keep CoreFoundation out of the tests. There are many subclasses for different settings: Results::Result::Dictionary Results::Result::Array Results::Result::Unsigned Results::Result::Double Results::Result::String - Gauge<T> can now write themselves out via a templatized write to results function: template <class T> Results::ResultSP GetResult (const char *description, T value); - There are four specializations of this so far: template <> Results::ResultSP GetResult (const char *description, double value); template <> Results::ResultSP GetResult (const char *description, uint64_t value); template <> Results::ResultSP GetResult (const char *description, std::string value); template <> Results::ResultSP GetResult (const char *description, MemoryStats value); - Don't emit the virtual memory reading from the task info call as it really doesn't mean much as it includes way too much (shared cache + other stuff we don't have control over) - Fixed other test cases to build correctly and use the new classes llvm-svn: 177696
* 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-213-5/+33
| | | | | | | | | | | | | | | 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
* Select correct -std flag for CMake for different versions of gcc.Matt Kopec2013-03-211-1/+10
| | | | llvm-svn: 177663
* The outline of the stepping perf test case, doesn't do anything yet.Jim Ingham2013-03-213-17/+313
| | | | llvm-svn: 177646
* Add correct file headers to all source files.Greg Clayton2013-03-2115-56/+80
| | | | llvm-svn: 177625
* Add a new method GetFunctionAddressAndSizeVector to DWARFCallFrameInfo.Jason Molenda2013-03-213-3/+71
| | | | | | | | | | | | | | | | | | | | | | | This returns a vector of <file address, size> entries for all of the functions in the module that have an eh_frame FDE. Update ObjectFileMachO to use the eh_frame FDE function addresses if the LC_FUNCTION_STARTS section is missing, to fill in the start addresses of any symbols that have been stripped from the binary. Generally speaking, lldb works best if it knows the actual start address of every function in a module - it's especially important for unwinding, where lldb inspects the instructions in the prologue of the function. In a stripped binary, it is deprived of this information and it reduces the quality of our unwinds and saved register retrieval. Other ObjectFile users may want to use the function addresses from DWARFCallFrameInfo to fill in any stripped symbols like ObjectFileMachO does already. <rdar://problem/13365659> llvm-svn: 177624
* Modify code to adhere to LLDB coding conventions.Greg Clayton2013-03-2110-166/+192
| | | | llvm-svn: 177623
* Added a lldb-perf test case that will be used to time various aspects of ↵Greg Clayton2013-03-213-0/+269
| | | | | | | | debugging clang with LLDB. This test case will measure memory usage and expression timings in frame zero and at higher frames. llvm-svn: 177617
* Fixed the ValidOffsetForDataOfSize() to use simpler logic. Fixed ↵Greg Clayton2013-03-213-32/+17
| | | | | | DataExtractor::BytesLeft() to return the correct value. llvm-svn: 177616
* Simplify the logic for DNBDataRef::ValidOffsetForDataOfSize() and ↵Greg Clayton2013-03-211-2/+16
| | | | | | DNBDataRef::ValidOffset() functions. llvm-svn: 177615
* Making a manual mode of operation for measurements, where you can manually ↵Enrico Granata2013-03-202-10/+54
| | | | | | | | | | call start() and stop() instead of using the function-call syntax This is especially useful to take measurements that span multiple test steps, or where you need to have different operations fall under the same measurement An example of use is in the formatters perf test case llvm-svn: 177597
* Making the test step count a member variable so that it can be accessed easilyEnrico Granata2013-03-202-8/+16
| | | | llvm-svn: 177594
* Renaming perf. main files from main.cpp to something meaningfulEnrico Granata2013-03-203-8/+8
| | | | llvm-svn: 177587
* Change DWARFCallFrameInfo from using a vector of AddressRanges toJason Molenda2013-03-202-57/+52
| | | | | | | | | | track the EH FDEs for the functions in a module to using a RangeDataVector, a more light-weight data structure that only refers to File addresses. Makes the initial FDE scan about 3x faster, uses less memory. <rdar://problem/13465650> llvm-svn: 177585
* Making MemoryGauge work by fixing a Mach API call mistake - saving (and ↵Enrico Granata2013-03-206-11/+167
| | | | | | dumping) more information out of the task_info call llvm-svn: 177580
* Add Linux support for reading/writing extended register sets.Matt Kopec2013-03-203-10/+118
| | | | | | Patch by Ashok Thirumurthi. llvm-svn: 177568
* Cleanup to the ObjC runtime to remove the now useless ClassDescriptor_InvalidEnrico Granata2013-03-205-37/+12
| | | | llvm-svn: 177558
* Update source/DataFormatters/CMakeLists.txt to reflect actual source files.Andy Gibbs2013-03-201-0/+4
| | | | llvm-svn: 177511
* Update source/Expression/CMakeLists.txt to reflect actual source files.Andy Gibbs2013-03-201-2/+1
| | | | llvm-svn: 177503
* Updated the IRExecutionUnit to keep local copiesSean Callanan2013-03-192-31/+38
| | | | | | | | | | | | | | | | of the data it writes down into the process even if the process doesn't exist. This will allow the IR interpreter to access static data allocated on the expression's behalf. Also cleaned up object ownership in the IRExecutionUnit so that allocations are created into the allocations vector. This avoids needless data copies. <rdar://problem/13424594> llvm-svn: 177456
* The formatters for std::shared_ptr, std::weak_ptr, std::list, std::vector ↵Enrico Granata2013-03-1912-837/+1961
| | | | | | | | 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 llvm-svn: 177454
* Mark TestChangeValueAPI.py as expected fail with gcc as it still reproduces.Matt Kopec2013-03-191-0/+1
| | | | llvm-svn: 177447
* Update Sketch test case to capture this and use accessors for debugger, ↵Greg Clayton2013-03-192-36/+64
| | | | | | target, process and thread. llvm-svn: 177425
* Fixed incorrect python that was trying to validate that we got a valid ↵Greg Clayton2013-03-1915-26/+26
| | | | | | | | lldb.SBThread object by checking to see if it is equal to "None". This test is incorrect as functions that return lldb.SBThread objects never return None, they just return lldb.SBThread objects that contain invalid opaque classes. llvm-svn: 177416
* More cleanup on the lldb-perf code:Greg Clayton2013-03-199-219/+237
| | | | | | | | | | | | | | | - TestCase.m_thread is now filled in with the first thread that has a valid stop reason. This eliminates the need for the SelectMyThread() functions. - The first thread that stops for a reason is also set as the selected thread in the process in case any command line commands are run. - Changed launch over to take a SBLaunchInfo parameter so that the launch function doesn't keep getting new arguments as they are needed. - TestCase::Setup() and TestCase::Launch(SBLaunchInfo) now return bool to indicate success of setup and launch. - ActionWanted::Next(SBThread) was renamed to ActionWanted::StepOver(SBThread) - ActionWanted::Finish(SBThread) was renamed to ActionWanted::StepOut(SBThread) llvm-svn: 177376
* Fixed handling of function pointers in the IRSean Callanan2013-03-192-12/+42
| | | | | | | interpreter. They now have correct values, even when the process is not running. llvm-svn: 177372
* This checkin removes the last Cocoa formatters that were implemented in ↵Enrico Granata2013-03-197-46/+150
| | | | | | 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 llvm-svn: 177366
* <rdar://problem/13443931>Greg Clayton2013-03-198-87/+231
| | | | | | | | Fixed a crasher in the SourceManager where it wasn't checking the m_target member variable for NULL. In doing this fix, I hardened this class to have weak pointers to the debugger and target in case they do go away. I also changed SBSourceManager to hold onto weak pointers to the debugger and target so they don't keep objects alive by holding a strong reference to them. llvm-svn: 177365
* Refactored the expression parser so that the IRSean Callanan2013-03-1917-1314/+1371
| | | | | | | | | | | | | | | | | | | | | | | | | and the JITted code are managed by a standalone class that handles memory management itself. I have removed RecordingMemoryManager and ProcessDataAllocator, which filled similar roles and had confusing ownership, with a common class called IRExecutionUnit. The IRExecutionUnit manages all allocations ever made for an expression and frees them when it goes away. It also contains the code generator and can vend the Module for an expression to other clases. The end goal here is to make the output of the expression parser re-usable; that is, to avoid re-parsing when re-parsing isn't necessary. I've also cleaned up some code and used weak pointers in more places. Please let me know if you see any leaks; I checked myself as well but I might have missed a case. llvm-svn: 177364
* Fixed the README to match the current code.Greg Clayton2013-03-181-56/+43
| | | | llvm-svn: 177346
* Add a comment about how to add a target for a test case.Jim Ingham2013-03-181-0/+2
| | | | llvm-svn: 177343
* Move the performance test cases into their own project.Jim Ingham2013-03-183-527/+730
| | | | llvm-svn: 177341
* Code cleanup:Greg Clayton2013-03-1815-185/+231
| | | | | | | | | | - don't use preprocessor macros - use switch statements - don't put anything in the lldb namespace, use "lldb_perf" namespace. - Pass the action struct into each TestStep() for each step fill in - Modify the ActionWanted class to have accessors to make the continue, next, finish, kill instead of using preproc macros llvm-svn: 177332
* When built with cmake, only call the string functions when the previous ↵Sylvestre Ledru2013-03-161-3/+7
| | | | | | commands (utils/GetSourceVersion & utils/GetRepositoryPath successed). Otherwise, they fail when not launched from a repository llvm-svn: 177225
* C++ formatters for NSTimeZone and for CFBitVectorEnrico Granata2013-03-163-7/+190
| | | | llvm-svn: 177219
* NS(Mutable)IndexSet formatter moves from Python to C++Enrico Granata2013-03-164-3/+85
| | | | llvm-svn: 177217
* Converting more data formatters to C++ - NSBundle, CFBinaryHeap, NSMachPort ↵Enrico Granata2013-03-168-12/+185
| | | | | | and NSNotification llvm-svn: 177213
* <rdar://problem/13194155>Greg Clayton2013-03-152-27/+6
| | | | | | | | Variables view out of sync with lldb in Xcode is now fixed. Depending on what happened stack frames could get out of date and a stale shared pointer (one that is no longer a current frame in a thread) could end up being used. Now we don't store a weak_ptr to a frame in the ExecutionContextRef class, we just store its stack ID and we always regrab the frame from the thread by stack ID. llvm-svn: 177208
OpenPOWER on IntegriCloud