summaryrefslogtreecommitdiffstats
path: root/lldb/source
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove duplicated check and shared_ptr copying.Tatyana Krasnukha2018-06-211-4/+3
| | | | llvm-svn: 335273
* [DataFormatter] Add CFDictionary data formatterJonas Devlieghere2018-06-211-1/+3
| | | | | | | | Add data formatter for NSCFDictionary/CFDictionaryRef. Differential revision: https://reviews.llvm.org/D48450 llvm-svn: 335271
* Fix an issue where DW_OP_deref might be dereferencing a file address. ↵Greg Clayton2018-06-211-0/+28
| | | | | | | | Convert the file address to a load address so this works. https://bugs.llvm.org/show_bug.cgi?id=36871 llvm-svn: 335263
* Partially revert r335236Pavel Labath2018-06-217-0/+40
| | | | | | | | | | Jim pointed out that XCode has build configurations that build without python and removing the ifdefs around the python code breaks them. This reverts the #ifdef part of the above patch, while keeping the cmake parts. llvm-svn: 335260
* Fix macos build for r335244Pavel Labath2018-06-211-2/+2
| | | | | | | | | I've made the code accept only 16 byte UUIDs, which is technically not NFC (previously it would also accept 20 byte ones, but use only the first 16 bytes), but this should be more correct as mac UUIDs are always 16 byte long. llvm-svn: 335247
* Remove UUID::SetFromCStringPavel Labath2018-06-218-16/+8
| | | | | | Replace uses with SetFromStringRef. NFC. llvm-svn: 335246
* Modernize UUID classPavel Labath2018-06-214-23/+16
| | | | | | | | | | | Instead of a separate GetBytes + GetByteSize methods I introduce a single GetBytes method returning an ArrayRef. This is NFC cleanup now, but it should make handling arbitrarily-sized UUIDs cleaner, should we choose to go that way. I also took the opportunity to add some unit tests for this class. llvm-svn: 335244
* ScriptInterpreterPython cleanupPavel Labath2018-06-2110-76/+21
| | | | | | | | | Instead of #ifdef-ing the contents of all files in the plugin for all non-python builds, just disable the plugin at the cmake level. Also, remove spurious extra linking of the Python plugin in liblldb. This plugin is already included as a part of LLDB_ALL_PLUGINS variable. llvm-svn: 335236
* Improve SBThread's stepping API using SBError parameter.Alexander Polyakov2018-06-201-95/+148
| | | | | | | | | | | | | | Summary: The new methods will allow to get error messages from stepping API. Reviewers: aprantl, clayborg, labath, jingham Reviewed By: aprantl, clayborg, jingham Subscribers: apolyakov, labath, jingham, clayborg, lemo, lldb-commits Differential Revision: https://reviews.llvm.org/D47991 llvm-svn: 335180
* Remove some instances of manual UUID pretty-printingPavel Labath2018-06-202-48/+9
| | | | | | | Identical functionality is already offered by the UUID::getAsString method. llvm-svn: 335163
* IRInterpreter: fix sign extension of small types (pr37840)Pavel Labath2018-06-201-7/+1
| | | | | | | | | | | | | Sign-extension of small types (e.g. short) was not handled correctly. The reason for that was that when we were assigning the a value to the Scalar object, we would accidentally promote the type to int (even though the assignment code in AssignTypeToMatch tried to cast the value to the appropriate type, it would still invoke the "int" version of operator=). Instead, I use the APInt version of operator=, where the bitwidth is specified explicitly. Among other things, this allows us to fold the individual size cases into one. llvm-svn: 335114
* Fix windows build broken by r335104Pavel Labath2018-06-201-0/+8
| | | | | | | lldb-python.h needs to be included first to work around some incompatibilities between windows and python headers. llvm-svn: 335106
* Remove dependency from Host to pythonPavel Labath2018-06-209-132/+87
| | | | | | | | | | | | | | | | Summary: The only reason python was used in the Host module was to compute the python path. I resolve this the same way as D47384 did for clang, by moving the path computation into the python plugin and modifying SBHostOS class to call into this module for ePathTypePythonDir. Reviewers: zturner, jingham, davide Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D48215 llvm-svn: 335104
* BreakpointIDList: Use llvm::ArrayRef instead of pointer+length pairPavel Labath2018-06-202-8/+6
| | | | | | NFC llvm-svn: 335102
* Correct the pathname that PlatformDarwinKernel::ExamineKextForMatchingUUIDJason Molenda2018-06-192-4/+4
| | | | | | | | | | | passes to the recursive search function so we only recursively search the kext bundle directory, instead of its parent directory. <rdar://problem/41227170> Differential Revision: https://reviews.llvm.org/D48302 llvm-svn: 335079
* Refactor OnExit utility class in ClangUserExpressionRaphael Isemann2018-06-191-24/+15
| | | | | | | | | | | | | | | Summary: OnExit ensures we call `ResetDeclMap` before this method ends. However, we also have a few manual calls to ResetDeclMap in there that are actually unnecessary because of this (calling the method multiple times has no effect). This patch also moves the class out of the method that we can reuse it for the upcoming method that handles parsing for completion. Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D48337 llvm-svn: 335078
* Scalar: Use llvm integer conversion functionsPavel Labath2018-06-191-10/+6
| | | | | | | | | | StringConvert was the only non-Utility dependency of this class. Getting rid of it means it will be easy to move this class to a lower layer. While I was in there, I also added a couple of unit tests for the Scalar string conversion function. llvm-svn: 335060
* Replace HostInfo::GetLLDBPath with specific functionsPavel Labath2018-06-1919-207/+170
| | | | | | | | | | | | | | | | | | | | | Summary: Instead of a function taking an enum value determining which path to return, we now have a suite of functions, each returning a single path kind. This makes it easy to move the python-path function into a specific plugin in a follow-up commit. All the users of GetLLDBPath were converted to call specific functions instead. Most of them were hard-coding the enum value anyway, so this conversion was simple. The only exception was SBHostOS, which I've changed to use a switch on the incoming enum value. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D48272 llvm-svn: 335052
* Some NFC changes to how we scan of kexts & kernels in memory in theJason Molenda2018-06-182-32/+58
| | | | | | | | | | | | | | | | | | DynamicLoaderDarwinKernel plugin. Created a new function ReadMachHeader and instead of reading through the target cached memory reader, start by reading only a mach header sized chunk of memory, then check it for a valid mach-o magic # and use the size of the load commands to pre-fetch the entire load commands of the kext which is the only thing we're going to read, instead of letting the generic mach-o parser read it in 512 byte chunks. Functionally this is doing exactly the same thing as before, but by cutting down on the # of packets going back and forth, even on a local connection it's close to a quarter faster than it was before. <rdar://problem/38570146> llvm-svn: 334995
* Fixed file completion for paths that start with '~'.Raphael Isemann2018-06-181-0/+6
| | | | | | | | | | We didn't add the remaining path behind the '~' to the completion string, causing it to just complete directories inside the user home directory. This patch just adds the directory of the remaining path if there is one. Fixes rdar://problem/40147002 llvm-svn: 334978
* Introduce lldb-framework CMake target and centralize its logicAlex Langford2018-06-181-54/+0
| | | | | | | | | | | | | Summary: In this patch I aim to do the following: 1) Create an lldb-framework target that acts as the target that handles generating LLDB.framework. Previously, liblldb acted as the target for generating the framework in addition to generating the actual lldb library. This made the target feel overloaded. 2) Centralize framework generation as much as it makes sense to do so. 3) Create a target lldb-suite, which depends on every tool and library that makes liblldb fully functional. One result of having this target is it makes tracking dependencies much clearer. Differential Revision: https://reviews.llvm.org/D48060 llvm-svn: 334968
* Fix macosx build broken by the VersionTuple refactorPavel Labath2018-06-182-7/+4
| | | | | | | | | | I actually did check that macos builds before committing, but this error was in conditionally compiled code that did not seem to be used on my machine. I also fix a typo in the previous speculative NetBSD patch. llvm-svn: 334955
* Fix netbsd build broken by r334950Pavel Labath2018-06-182-11/+4
| | | | | | This also includes one more build fix for windows. llvm-svn: 334953
* Attempt to fix windows&freebsd builds broken by r334950Pavel Labath2018-06-182-4/+4
| | | | llvm-svn: 334952
* Use llvm::VersionTuple instead of manual version marshallingPavel Labath2018-06-1829-429/+212
| | | | | | | | | | | | | | | | | | Summary: This has multiple advantages: - we need only one function argument/instance variable instead of three - no need to default initialize variables - no custom parsing code - VersionTuple has comparison operators, which makes version comparisons much simpler Reviewers: zturner, friss, clayborg, jingham Subscribers: emaste, lldb-commits Differential Revision: https://reviews.llvm.org/D47889 llvm-svn: 334950
* Fix the 'tb' alias commandFrederic Riss2018-06-181-1/+1
| | | | | | | No idea when this broke or if it ever worked. Added a small test for one-shot breakpoints while I was there. llvm-svn: 334921
* One ShortFract ought to be enough for everyone.Benjamin Kramer2018-06-141-1/+0
| | | | llvm-svn: 334755
* Add remaining fixed-point types and saturated equivalents to fix -Wswitch of ↵Fangrui Song2018-06-141-0/+19
| | | | | | r334718 llvm-svn: 334745
* DebugNamesDWARFIndex: fix handling of compressed sectionsPavel Labath2018-06-141-0/+1
| | | | | | | | | | | | | This fixes a silly bug where we were accidentally freeing the memory used to store the decompressed .debug_names data. I had actually considered this scenario when writing the class and put appropriate precautions in place -- I just failed to wire it all up correctly. This was only an issue for compressed sections because in case of uncompressed ones we would access the data straight out of the mmapped object file. llvm-svn: 334717
* Fix includes in PlatformAppleSimulator.hPavel Labath2018-06-141-2/+2
| | | | | | | | This unbreaks the cmake build. Other plugins also use the include paths starting with Plugins/..., so I am hoping this will work for the xcode build too. llvm-svn: 334697
* fix cmake include path.Jason Molenda2018-06-141-1/+1
| | | | llvm-svn: 334680
* Move the header file to be in the same new place as the .mm file.Jason Molenda2018-06-131-0/+0
| | | | llvm-svn: 334667
* [FileSpec] Make style argument mandatory for SetFile. NFCJonas Devlieghere2018-06-1311-12/+17
| | | | | | Fix SetFile uses in hosts that I missed in r334663. llvm-svn: 334664
* [FileSpec] Make style argument mandatory for SetFile. NFCJonas Devlieghere2018-06-1346-104/+143
| | | | | | | | | | | | | | | | SetFile has an optional style argument which defaulted to the native style. This patch makes that argument mandatory so clients of the FileSpec class are forced to think about the correct syntax. At the same time this introduces a (protected) convenience method to update the file from within the FileSpec class that keeps the current style. These two changes together prevent a potential pitfall where the style might be forgotten, leading to the path being updated and the style unintentionally being changed to the host style. llvm-svn: 334663
* Fix macos xcode build.Jason Molenda2018-06-131-5/+5
| | | | llvm-svn: 334662
* [lit] Split test_set_working_dir TestProcessLaunch into two tests and fix it ↵Stella Stamenova2018-06-133-8/+31
| | | | | | | | | | | | | | | | | | | | | | on Windows Summary: test_set_working_dir was testing two scenario: failure to set the working dir because of a non existent directory and succeeding to set the working directory. Since the negative case fails on both Linux and Windows, the positive case was never tested. I split the test into two which allows us to always run both the negative and positive cases. The positive case now succeeds on Linux and the negative case still fails. During the investigation, it turned out that lldbtest.py will try to execute a process launch command up to 3 times if the command failed. This means that we could be covering up intermittent failures by running any test that does process launch multiple times without ever realizing it. I've changed the counter to 1 (though it can still be overwritten with the environment variable). This change also fixes both the positive and negative cases on Windows. There were a few issues: 1) In ProcessLauncherWindows::LaunchProcess, the error was not retrieved until CloseHandle was possibly called. Since CloseHandle is also a system API, its success would overwrite any existing error that could be retrieved using GetLastError. So by the time the error was retrieved, it was now a success. 2) In DebuggerThread::StopDebugging TerminateProcess was called on the process handle regardless of whether it was a valid handle. This was causing the process to crash when the handle was LLDB_INVALID_PROCESS (0xFFFFFFFF). 3) In ProcessWindows::DoLaunch we need to check that the working directory exists before launching the process to have the same behavior as other platforms which first check the directory and then launch process. This way we also control the exact error string. Reviewers: labath, zturner, asmith, jingham Reviewed By: labath Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D48050 llvm-svn: 334642
* [ObjC] Add dataformatter for NSDecimalNumberJonas Devlieghere2018-06-133-0/+59
| | | | | | | | | | This patch adds a data formatter for NSDecimalNumber. The latter is a Foundation object used for representing and performing arithmetic on base-10 numbers that bridges to Decimal. Differential revision: https://reviews.llvm.org/D48114 llvm-svn: 334638
* [ObjC] Use llvm::StringRef in summary providersJonas Devlieghere2018-06-131-20/+19
| | | | | | | Replace const char pointers with llvm::StringRef and use its equality operator for string comparisons. llvm-svn: 334631
* [FileSpec] Simplify getting extension and stem.Jonas Devlieghere2018-06-131-8/+3
| | | | | | | As noted by Pavel on lldb-commits, we don't need the temp path, we can just pass the filename directly into extension() and path(). llvm-svn: 334618
* [FileSpec] Delegate common operations to llvm::sys::pathJonas Devlieghere2018-06-137-76/+57
| | | | | | | | | | | | | | | With the recent changes in FileSpec to use LLVM's path style, it is possible to delegate a bunch of common path operations to LLVM's path helpers. This means we only have to maintain a single implementation and at the same time can benefit from the efforts made by the rest of the LLVM community. This is part one of a set of patches. There was no obvious way to split this so I just worked from top to bottom. Differential revision: https://reviews.llvm.org/D48084 llvm-svn: 334615
* Fix/unify the spelling of Objective-C.Adrian Prantl2018-06-1310-14/+14
| | | | llvm-svn: 334614
* Add modules support for lldb headers in include/Raphael Isemann2018-06-139-7/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds a modulemap which allows compiling the lldb headers into C++ modules (for example in builds with LLVM_ENABLE_MODULES=On). Even though most of the affected code has been cleaned up to work with the more strict C++ module semantics, there are still some workarounds left in the current modulemap (the most obvious one is the big `lldb` wrapper module). It also moves the Obj-C++ files in lldb to their own subdirectories. This was necessary because we need to filter out the modules flags for this code. Note: With the latest clang and libstdc++ it seems necessary to have a STL C++ module to get a working LLVM_ENABLE_MODULES build for lldb. Otherwise clang will falsely detect ODR violations in the textually included STL code inside the lldb modules. Reviewers: aprantl, bruno Reviewed By: aprantl, bruno Subscribers: mgorny, yamaguchi, v.g.vassilev, lldb-commits Differential Revision: https://reviews.llvm.org/D47929 llvm-svn: 334611
* Disable warnings for the generated LLDB wrapper sourceRaphael Isemann2018-06-121-6/+5
| | | | | | | | | | | | | | | | | Summary: This source files emits all kind of compiler warnings on different platforms. As the source code in the file is generated and we therefore can't actually fix the warnings, we might as well disable them. Reviewers: aprantl, davide Reviewed By: davide Subscribers: davide, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D48096 llvm-svn: 334557
* DebugNamesDWARFIndex: Implement DWARFDeclContext variant of GetTypes methodPavel Labath2018-06-122-1/+13
| | | | | | | | | | | | This method is used to find complete definitions of a type when one parses a compile unit with only forward declaration available. Since it is only accessed from DWARFASTParserClang, it was not possible/easy to trigger this codepath from lldb-test. Therefore, I adapt add a debug-names variant to an existing dotest test to cover this scenario. llvm-svn: 334516
* DWARFDebugNames: Implement last GetGlobalVariables overloadPavel Labath2018-06-122-1/+23
| | | | | | | This function implements the search for all global variables within a given compilation unit. llvm-svn: 334500
* Document how lldb uses the DBGSourcePathRemapping Jason Molenda2018-06-112-11/+14
| | | | | | | source path remapping src/dest path pairs with respect to the DBGVersion number in the plist. llvm-svn: 334442
* Add a new SBTarget::LoadCore() overload which surfaces errors if the load failsLeonard Mosescu2018-06-111-2/+12
| | | | | | | | | | | | | There was no way to find out what's wrong if SBProcess SBTarget::LoadCore(const char *core_file) failed. Additionally, the implementation was unconditionally setting sb_process, so it wasn't even possible to check if the return SBProcess is valid. This change adds a new overload which surfaces the errors and also returns a valid SBProcess only if the core load succeeds: SBProcess SBTarget::LoadCore(const char *core_file, SBError &error); Differential Revision: https://reviews.llvm.org/D48049 llvm-svn: 334439
* Fix tuple getter in std unique pointer pretty-printerPavel Labath2018-06-111-0/+2
| | | | | | | | | | | | | Summary: Check case when _M_t child member is not present. Reviewers: labath, tberghammer Reviewed By: labath, tberghammer Differential Revision: https://reviews.llvm.org/D47932 Patch by Aleksandr Urakov <aleksandr.urakov@jetbrains.com>. llvm-svn: 334411
* DWARFDebugNames: Fix lookup in dwo filesPavel Labath2018-06-112-9/+31
| | | | | | | | | | | | The getDIESectionOffset function is not correct for split dwarf files (and will probably be removed in D48009). This patch implements correct section offset computation for split and non-split compile units -- we first need to check if the referenced unit is a skeleton unit, and if it is, we add the die offset to the full unit base offset (as the full unit is the one which contains the die). llvm-svn: 334402
* Move VersionTuple from clang/Basic to llvm/SupportPavel Labath2018-06-111-5/+4
| | | | | | | | | | | | | | | | | | | | | | | Summary: This kind of functionality is useful to other project apart from clang. LLDB works with version numbers a lot, but it does not have a convenient abstraction for this. Moving this class to a lower level library allows it to be freely used within LLDB. Since this class is used in a lot of places in clang, and it used to be in the clang namespace, it seemed appropriate to add it to the list of adopted classes in LLVM.h to avoid prefixing all uses with "llvm::". Also, I didn't find any tests specific for this class, so I wrote a couple of quick ones for the more interesting bits of functionality. Reviewers: zturner, erik.pilkington Subscribers: mgorny, cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D47887 llvm-svn: 334399
OpenPOWER on IntegriCloud