summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
...
* Add the new stdcpp formatters to the Xcode project.Jim Ingham2016-10-211-0/+12
| | | | llvm-svn: 284851
* I hadn't fixed all the instances of the old marker for scripted format ↵Enrico Granata2016-10-211-3/+3
| | | | | | strings; do so now llvm-svn: 284847
* Fix incorrect header order introduced in rL284830Tamas Berghammer2016-10-212-6/+6
| | | | llvm-svn: 284831
* Add data formatter for libstdc++ unique_ptrTamas Berghammer2016-10-217-0/+271
| | | | | | Differential revision: https://reviews.llvm.org/D25734 llvm-svn: 284830
* Add data formatter for libstdc++ tupleTamas Berghammer2016-10-217-0/+185
| | | | | | Differential revision: https://reviews.llvm.org/D25733 llvm-svn: 284829
* Improve the libstdc++ smart pointer formattersTamas Berghammer2016-10-215-108/+249
| | | | | | | | | | * Display the strong/weak count in the summary * Display the pointed object as a synthetic member * Create synthetic children for weak/strong count Differential revision: https://reviews.llvm.org/D25726 llvm-svn: 284828
* Add TestMultipleHits.pyPavel Labath2016-10-213-0/+92
| | | | | | | | This tests that lldb handles the situation when a single instruction triggers multiple watchpoint hits. It currently fails on arm due to what appears to be a lldb-server bug (pr30758). llvm-svn: 284819
* Revert "Fix a race condition between "ephemeral watchpoint disable/enable" ↵Pavel Labath2016-10-213-54/+28
| | | | | | | | | | | | | | | | | and continue in commands." This reverts commit r284795, as it breaks watchpoint handling on arm (and presumable all architectures that report watchpoint hits without executing the tripping instruction). There seems to be something fundamentally wrong with this patch: it uses process_sp->AddPreResumeAction to re-enable the watchpoint, but the whole point of the step-over-watchpoint logic (which AFAIK is the only user of this class) is to disable the watchpoint *after* we resume to do the single step. I have no idea how to fix this except by reverting the offending patch. llvm-svn: 284817
* Guard GetEscapedHostname against a nullptr hostname.Jason Molenda2016-10-211-0/+2
| | | | | | | | | This can happen if you debug an iOS corefile on a mac, where PlatformPOSIX::GetHostname ends up not providing a hostname because we're working with a platform of remote-ios. llvm-svn: 284799
* Fix a race condition between "ephemeral watchpoint disable/enable" and ↵Jim Ingham2016-10-213-28/+54
| | | | | | | | | | continue in commands. Also, watchpoint commands, like breakpoint commands, need to run in async mode. This was causing intermittent failures in TestWatchpointCommandPython.py, which is now solid. llvm-svn: 284795
* Add an API to remove an action from the Process PreResumeActions.Jim Ingham2016-10-202-0/+15
| | | | llvm-svn: 284792
* Remove an unnecessary and incorrect check for num locations of a breakpointJim Ingham2016-10-201-8/+0
| | | | | | | by grubbing the break list output. If you pass a number of locations into the run_break_* functions, they will check that this is right for you. llvm-svn: 284791
* frame.script became script.frame a while ago; fix up the docsEnrico Granata2016-10-201-4/+4
| | | | llvm-svn: 284788
* This debugging message has been left in the code for years, until one day it ↵Enrico Granata2016-10-201-2/+1
| | | | | | | | | | randomly hit on some corrupted memory It is misleading to users in its current form, and only interesting to me - remove it rdar://28812568 llvm-svn: 284787
* Re-landing a cleaned up implementation of r284550Chris Bieneman2016-10-201-18/+24
| | | | | | | | | | This time it should actually work. The previous implementaiton was not getting the linker or compiler flag set correctly in all the right situations. By moving the check down and basing it of whether or not CXX is set I we can have the logic to add the flags exist only once for the linker and once for the compiler instead of duplicating it. llvm-svn: 284756
* Minidump plugin: redesign the x86_64 register contextDimitar Vlahovski2016-10-202-154/+173
| | | | | | | | | | | | | | | | | | | | | | | | Summary: I misunderstood the format of the register context layout. I thought it was a dynamically changing structure, and that it's size depended on context_flags. It turned out that it always has the same fixed layout and size, and the context_flags says which fields of the struct have valid values. This required a minor redesign of the register context class. The layout inconsistency, however, was not a "problem" before (e.g. the plugin was working) because there also was a bug with checking context_flags - the code was parsing the entire struct regardless of context_flags. This bug is also fixed in this commit. Reviewers: labath, zturner Subscribers: lldb-commits, amccarth Differential Revision: https://reviews.llvm.org/D25677 llvm-svn: 284741
* Re-generate the python and cpp reference documentationTamas Berghammer2016-10-201455-34659/+137054
| | | | | | | | They haven't been updated since July 2013 so they missed a lot of new function added to the SB API since. Bug: llvm.org/pr30603 llvm-svn: 284725
* Fix ARM/AArch64 Step-Over watchpoint issue remove provision for duplicate ↵Omair Javaid2016-10-205-105/+190
| | | | | | | | | | | watchpoints This patch fixes ARM/AArch64 watchpoint bug which was taking inferior out of control while stepping over watchpoints. Also adds a test case that tests above problem. Differential revision: https://reviews.llvm.org/D25057 llvm-svn: 284706
* Added a decorator for the macOS version and switched over testcases that ↵Sean Callanan2016-10-207-13/+17
| | | | | | used platform.release llvm-svn: 284674
* Add lldb register definitions for w0-w28, s0-s31, and d0-d31 toJason Molenda2016-10-194-70/+1573
| | | | | | | | | | | | | | | | | | | | | | | | RegisterInfos_arm64.h. These register definitions include the offset into the register context, which will vary depending on the endianness of the arm64 target system (e.g. s8 is at offset 0 in v8 on little-endian, it is at offset 12 on big-endian) and I've only added the little-endian definitions to the table. If we want to add a big-endian arm64 target, we'll need a separate table which uses the big-endian offsets for these registers. I changed the name of the register table from g_register_infos_arm64 to g_register_infos_arm64_le to make it explicit that this is the little-endian version of that table, and updated users of the table to use the new name. I added support for the "w", "s", and "d" registers to RegisterContextDarwin_arm64 but it was more an example than anything useful -- this plugin is only used when working with core files and darwin core files do not (today) include the floating point register context, so it only added the support for the "w" pseudo registers. When we're connected to a real arm64 device, we use the ProcessGDBRemote code. llvm-svn: 284666
* Simplify GetGlobalProperties functions of Thread/Process/TargetPavel Labath2016-10-193-15/+6
| | | | | | | | | | | | | | | | | Summary: "Initialization of function-local statics is guaranteed to occur only once even when called from multiple threads, and may be more efficient than the equivalent code using std::call_once." <http://en.cppreference.com/w/cpp/thread/call_once> I'd add that it's also more readable. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17710 llvm-svn: 284601
* Remove IntervalTimer classPavel Labath2016-10-191-41/+0
| | | | | | | | | | | | | | Summary: it was added back in 2013, but there are no uses of it. I started refactoring it, but then it occured to me it would better to delete it. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25393 llvm-svn: 284599
* Minidump plugin: functions parsing memory structures and filtering module listDimitar Vlahovski2016-10-198-2/+464
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Now the Minidump parser can parse the: 1) MemoryInfoList - containing region info about memory ranges (readable, writable, executable) 2) Memory64List - this is the stuct used when the Minidump is a full-memory one. 3) Adding filtering of the module list (shared libraries list) - there can be mutliple records in the module list under the same name but with different load address (e.g. when the binary has non contigious sections). FilterModuleList eliminates the duplicated modules, leaving the one with the lowest load addr. Added unit tests for everything. Reviewers: labath, zturner Subscribers: beanz, mgorny, modocache, lldb-commits, amccarth Differential Revision: https://reviews.llvm.org/D25569 llvm-svn: 284593
* [cmake] Use LLVM_CMAKE_PATH for GetSVN scriptMichal Gorny2016-10-191-1/+1
| | | | | | | | Use the LLVM_CMAKE_PATH variable to locate the GetSVN.cmake script. The variable was already available in stand-alone builds, and is also set by LLVM since r284581. llvm-svn: 284584
* Revert back to the state before r284550Chris Bieneman2016-10-191-33/+18
| | | | | | This patch is causing a lot of issues on bots that I didn't see in local testing. I'm going to have to work on this. Reverting for now while I sort it out. llvm-svn: 284565
* Trying to fix a few more missing LDFLAGS.Chris Bieneman2016-10-191-0/+6
| | | | llvm-svn: 284564
* Fixing the linux bots I broke in r284550Chris Bieneman2016-10-191-3/+9
| | | | | | Need to gate cxx linker adding driver-mode flag based on the linker being clang. llvm-svn: 284555
* When invoking Terminal, don't assume the default shellChris Bieneman2016-10-181-2/+2
| | | | | | | | | | | | | | | | | Summary: If a user has their shell set to a non-POSIX conferment shell the TestTerminal.py tests fail because the shell blurb constructed here may not work in their shell. In my specific case fish-shell (The Friendly Interactive Shell - http://fishshell.com) does not support $?, it instead uses $status (because it is friendly). This patch removes the assumption of your default shell by running the constructed bash command via "/bin/bash -c ...". This should be safer for users mutating their shell environment. Reviewers: tfiala Subscribers: joerg, lldb-commits Differential Revision: https://reviews.llvm.org/D25750 llvm-svn: 284552
* [CMake] Don't include LLDB_TEST_COMPILER in cached variableChris Bieneman2016-10-181-2/+8
| | | | | | | | | | | | | | | Summary: CMake has no builtin mechanism for cache invalidation. As a general convention you want to not expand user-specified variables in other cached variables because they will not get updated when the user changes their specified value. This patch moves the "-C" option for dotest.py into the LLDB_TEST_COMMON_ARGS and out of the CMake cache. In order to prevent issues with out-of-date cache files on builders I've added code to scrub "-C ${LLDB_TEST_COMPILER}" out of the CMake caches, by Force writing the variable. This code can be removed in a few days once the change has trickled through CI systems. Reviewers: tfiala, labath, zturner Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D25751 llvm-svn: 284551
* Use clang --driver-mode instead of guessing c++ compiler pathChris Bieneman2016-10-181-18/+21
| | | | | | | | | | | | | | | Summary: When building the LLDB test programs, if your CC is clang it actually isn't safe to make CXX a string replace of "clang -> clang++". This falls down on unix configurations if your compiler is clang-${version}. A safer approach is to use the "--driver-mode=g++" option to tell clang to act like clang++. Reviewers: tfiala, zturner, labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25753 llvm-svn: 284550
* xfail TestMiSyntax.py's test_lldbmi_output_grammar on macOSTodd Fiala2016-10-181-0/+1
| | | | | | | | | Needs to be investigated. This is failing locally and on the Xcode CI. rdar://28805064 llvm-svn: 284484
* Fixup r284466 - try to unbreak NetBSDPavel Labath2016-10-181-3/+4
| | | | | | | NetBSD does not have getopt as well - we need to apply the workaround there too. FreeBSD seems to be fine though. llvm-svn: 284469
* [cmake] Make dependencies of lldb libraries private, take 2Pavel Labath2016-10-185-15/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The dependencies of our libraries (only liblldb, really) we marked as public, which caused all their dependencies to be repeated when linking any executables to them. This is a problem because then all the .a files could end up being linked twice, once to liblldb and once again to to the executable linking against liblldb (lldb, lldb-mi). As it turns out, our build actually depends on this behavior: - on windows, lldb does not have getopt, so it pulls it from inside liblldb, even though getopt is not a part of the exported interface of liblldb (maybe some of the bsd variants have this problem as well) - lldb-mi uses llvm, which again is not exported by liblldb This change does not actually fix these problems (that is going to be a hard one), but it does make them explicit by moving this magic from add_lldb_library to the places the executable targets are defined. That way, I can link the additional .a files only on targets that really need it, and the other targets can build cleanly and make sure we don't regress further. It also fixes the LLVM_LINK_LLVM_DYLIB build on linux. Reviewers: zturner, beanz Subscribers: ki.stfu, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D25680 llvm-svn: 284466
* Remove a debug print statement.Jim Ingham2016-10-181-1/+0
| | | | llvm-svn: 284448
* More testsuite xfail markings cleanup.Jim Ingham2016-10-182-3/+2
| | | | llvm-svn: 284446
* Fix a crash in expressions with fixits in the dummy target.Jim Ingham2016-10-172-2/+12
| | | | | | | | | In the expression command, if the target is NULL, you have to use the dummy target. <rdar://problem/28811687> llvm-svn: 284439
* [lldb] Read modules from memory when a local copy is not availableWalter Erquinigo2016-10-172-69/+113
| | | | | | | | | | | | | | | | | | | Summary: When the local lldb doesn't have access to a copy of the modules in the target, e.g. winphone, with this change now we read these modules from memory. There are mainly 2 changes: 1. create pecoff object files from memory 2. read from memory when the local file is not available Reviewers: sas, fjricci, zturner Subscribers: #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D24284 llvm-svn: 284422
* unittests: Specify types in a bunch of unittest EXPECT'sJustin Bogner2016-10-176-178/+178
| | | | | | | The EXPECT and ASSERT macros in gtest don't do the usual arithmetic conversions. Specify types in several of them to fix -Werror. llvm-svn: 284405
* Interpreter: Don't return StringRef from functions whose return value is ↵Justin Bogner2016-10-172-31/+16
| | | | | | | | | | never used StringRef is passed through all of these APIs but never actually used. Just remove it from the API for now and if people want to use it they can add it back. llvm-svn: 284362
* This test is no longer failing for gmodules.Jim Ingham2016-10-151-4/+0
| | | | llvm-svn: 284296
* [CMake] Populate LLDB.framework's headers directoryChris Bieneman2016-10-141-1/+17
| | | | | | | | | | | | | | | | | Summary: This patch adds support for installing public headers in LLDB.framework, and symlinking the headers into the build directory. While writing the patch I discovered a bug in CMake that prevents applying POST_BUILD steps to framework targets (https://gitlab.kitware.com/cmake/cmake/issues/16363). I've implemented the support using POST_BUILD steps wrapped under a CMake version check with a TODO so that we can track the fix. Reviewers: tfiala, zturner, spyffe Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D25570 llvm-svn: 284250
* [LLDB-MI] Minor cleanup of CMICmnLLDBUtilSBValue classVadim Macagon2016-10-142-16/+17
| | | | | | | | | | | | | Summary: Placeholder c-strings don't need to be instance variables. Reviewers: ki.stfu, abidh Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25592 llvm-svn: 284231
* This test passes on i386 now.Jim Ingham2016-10-141-4/+0
| | | | llvm-svn: 284183
* This test is passing on i386 now.Jim Ingham2016-10-141-2/+0
| | | | llvm-svn: 284182
* [lldb] Improve identification of Linux core dumps. Fix for bug #30485.Richard Chamberlain2016-10-131-2/+1
| | | | | | | | | | | | | | | Summary: ObjectFileELF::RefineModuleDetailsFromNote() identifies Linux core dumps by searching for library paths starting with /lib/x86_64-linux-gnu or /lib/i386-linux-gnu. This change widens the test to allow for linux installations which have addition directories in the path. Reviewers: ted, hhellyer, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25179 llvm-svn: 284114
* Fix Python binding generation build step on WindowsVadim Macagon2016-10-131-4/+4
| | | | | | | | | | | | | | | | | | | | Summary: If Python is installed to a location that contains spaces (e.g. "C:\Program Files\Python3") then the build fails while attempting to run the modify-python-lldb.py script because the path to the Python executable is not double-quoted before being passed to the shell. The fix consists of letting Python handle the formatting of the command line, since subprocess.Popen() is perfectly capable of handling paths containing spaces if it's given the command and arguments as a list instead of a single pre-formatted string. Reviewers: zturner, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25396 llvm-svn: 284100
* [CMake] Cleanup check-lldb targetsChris Bieneman2016-10-121-2/+17
| | | | | | | | | | | | | | | | | Summary: This patch adds the following fixes to the check-lldb targets: * Adds missing dependencies on lldb tools so they get built before tests execute * Adds Ninja USES_TERMINAL to the target so that the output streams to stdout as it executes * Uses a generator expression to find the lldb executable, this is more robust than constructing the path manually Reviewers: tfiala, zturner Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D25490 llvm-svn: 284046
* Use LLDB_SRC for relative pathsChris Bieneman2016-10-121-2/+10
| | | | | | | | | | | | | | | Summary: Going from LLDB_SRC instead of the file path is safer when looking for compiler-rt. Also need to add support for looking inside the LLVM runtimes subdirectory. Eventually we should just get CMake to provide these paths during configuration. Reviewers: tfiala, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25489 llvm-svn: 284045
* Fix test suite lookup path for LLDB.hChris Bieneman2016-10-121-7/+9
| | | | | | | | | | | | | | | | | Summary: When running on Darwin, the test suite assumes a specific directory structure for the build directory. This works for the Xcode project builds, but fails for CMake builds regardless of whether or not you are generating the LLDB framework. This patch allows the Darwin code path to fall back to the more generic code path used by other platforms in the event that LLDB.h isn't where the test suite expects it. This allows API tests to run on Darwin when building with CMake with the framework build enabled or disabled. Reviewers: tfiala, zturner Subscribers: labath, lldb-commits Differential Revision: https://reviews.llvm.org/D25488 llvm-svn: 284043
* Fix building tests without system headers on DarwinChris Bieneman2016-10-121-1/+1
| | | | | | | | | | | | Summary: Default installations of OS X do not have system headers installed at /usr/include. This patch allows the LLDB test executables to properly compile when built on a system without headers at /usr/include by specifying a default value for the apple-sdk flag as "macosx". Reviewers: tfiala, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25487 llvm-svn: 284042
OpenPOWER on IntegriCloud