summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix remote test suite directory creationPavel Labath2017-03-202-27/+33
| | | | | | | | | | | | | | | r298203 make SBPlatform::MakeDirectory less recursive, which breaks the test suite creation of test directory hierarchy creation on the remote target. Since the function was never fully recursive, and the name does not imply recursiveness, I fix the problem by modifying the test runner to do the recursion manually. I also make the runner complain more loudly when it fails to create the directory -- previously it just printed the error to stdout and caused most of the tests to hang, which is not very helpful in diagnosing the problem. llvm-svn: 298261
* Fix syntax error when building with editline support.Zachary Turner2017-03-191-1/+1
| | | | llvm-svn: 298206
* Remove FileSystem::Get/SetFilePermissionsZachary Turner2017-03-195-62/+13
| | | | | | Differential Revision: https://reviews.llvm.org/D31089 llvm-svn: 298205
* Remove FileSystem::MakeDirectory.Zachary Turner2017-03-1910-70/+9
| | | | | | | | Have callers use llvm::sys::fs::create_directory() instead. Differential Revision: https://reviews.llvm.org/D31086 llvm-svn: 298203
* Fix unit test compilation failure.Zachary Turner2017-03-191-2/+4
| | | | llvm-svn: 298202
* Remove some dead code from DumpValueObjectOptions::PointerDepthTamas Berghammer2017-03-182-28/+3
| | | | llvm-svn: 298189
* allow for specification of compiler/lldb executables basenameTim Hammerquist2017-03-171-0/+4
| | | | llvm-svn: 298123
* executables should be validated before spawning subprocessesTim Hammerquist2017-03-171-2/+14
| | | | | | | | | | | | | | dotest.py script doesn't validate executables passed on the command line before spawning dozens of subprocesses, all of which fail silently, leaving an empty results file. We should validate the lldb and compiler executables on configuration, aborting when given invalid paths, to prevent numerous, cryptic, and spurious failures. <rdar://problem/31117272> llvm-svn: 298111
* CMake requires normalized paths when appending.Zachary Turner2017-03-171-0/+1
| | | | | | | Patch by Hugh Bellamy Differential Revision: https://reviews.llvm.org/D30927 llvm-svn: 298100
* Fix some signed/unsigned comparison warnings.Zachary Turner2017-03-171-4/+4
| | | | | | | Patch by Hugh Bellamy Differential Revision: https://reviews.llvm.org/D30926 llvm-svn: 298099
* Fix FreeBSD build broken by r298066Pavel Labath2017-03-171-2/+4
| | | | llvm-svn: 298069
* Move GetAuxvData from Host to relevant process pluginsPavel Labath2017-03-1713-97/+57
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: GetAuxvData was causing dependencies from host to target and linux process modules. It also does not fit netbsd use case, as there we can only read the auxiliary vector with ptrace, which is better done in the process plugin, with the other ptrace calls. I resolve these issues by moving the freebsd and linux versions into the relevant process plugins. In case of linux, this required adding an interface in NativeProcessProtocol. The empty definitions on other platforms can simply be removed. To get the code compiling I had to add ProcessGdbRemote -> ProcessLinux dependency, which was not caught before because we depended on it transitively. Reviewers: zturner, emaste Subscribers: srhines, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D31031 llvm-svn: 298066
* One more attempt to fix FreeBSDPavel Labath2017-03-171-0/+4
| | | | | | | | It seems sysctl.h is not self-contained, as I get missing symbols in the header itself now. I am going to include all files that the file I moved this from included, and hope that is enough. llvm-svn: 298063
* Speculative build fix for FreeBSDPavel Labath2017-03-171-1/+3
| | | | | | broken by r298058. llvm-svn: 298061
* Remove HostThreadLinux/Free/NetBSDPavel Labath2017-03-1714-265/+116
| | | | | | | | | | | | | | | | | | | | | | Summary: These classes existed only because of the GetName() static function, which can be moved to a more natural place anyway. I move the linux version to NativeProcessLinux (and get rid of ProcFileReader), the freebsd version to ProcessFreeBSD (and fix a bug where it was using the current process ID, instead of the inferior pid), and remove the NetBSD version (which was probably incorrect anyway, as it assumes the current process instead of the inferior. I also add an llgs test to that verifies thread names are read correctly. Reviewers: zturner, krytarowski, emaste Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D30981 llvm-svn: 298058
* Update for LLVM API removal of Function::getArgumentList()Reid Kleckner2017-03-162-7/+6
| | | | llvm-svn: 298011
* [Support] Support both Windows and Posix paths on both platforms.Zachary Turner2017-03-162-5/+5
| | | | | | | | | | | | | | | | | | Previously which path syntax we supported dependend on what platform we were compiling LLVM on. While this is normally desirable, there are situations where we need to be able to handle a path that we know was generated on a remote host. Remote debugging, for example, or parsing debug info. 99% of the code in LLVM for handling paths was platform agnostic and literally just a few branches were gated behind pre-processor checks, so this changes those sites to use runtime checks instead, and adds a flag to every path API that allows one to override the host native syntax. Differential Revision: https://reviews.llvm.org/D30858 llvm-svn: 298004
* [debugserver] NFC. One more small cleanup to DNBArchImplX86_64::SetFPUStateChris Bieneman2017-03-151-13/+9
| | | | | | This is another similar cleanup to other changes I've been making to simplify the AVX code in debugserver. llvm-svn: 297880
* Remove some ProcFileReader occurencesPavel Labath2017-03-157-228/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: ProcFileReader is the cause of the dependency from Host to ProcessLinux module. Since it's interface is also obsolete (ReadIntoDataBuffer is trivially replaceable by llvm::MemoryBuffer functions and ProcessLineByLine is trivially implementable with StringRefs), instead of moving it around I'm planning to obliterate it. This is the first step, where I remove a couple of occurences in linux/Host.cpp, and modernize some code around that. I have introduced linux/Support.h, which holds two utility functions now, whose resposibility is to construct the appropriate proc file names -- the only useful feature of ProcFileReader. I add a couple of tests for these functions, and for Host::GetProcessInfo. It's worth noting that these are the first host-specific unit tests in lldb. Reviewers: zturner, eugene Subscribers: srhines, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D30942 llvm-svn: 297843
* Fix TestMoveNearest for remote targetsPavel Labath2017-03-151-1/+2
| | | | | | | Launching a process with shared libraries on remote targets requires a special dance, which I forgot to do in r297830. llvm-svn: 297834
* Fix TestMoveNearest breakage on darwinPavel Labath2017-03-151-0/+4
| | | | | | | | | It seems that on darwin we are not able to resolve breakpoints in the test shared library until the process has started. That seems unfortunate, but it is not the purpose of this test, so work around that by starting the process before doing the rest of our checks. llvm-svn: 297830
* Fix windows&darwin builds broken by r297812Pavel Labath2017-03-153-2/+1
| | | | llvm-svn: 297819
* Delete empty file ProcessLauncherLinux.hPavel Labath2017-03-151-0/+0
| | | | llvm-svn: 297818
* BreakpointResolverFileLine: Restrict move-to-nearest-code from moving across ↵Pavel Labath2017-03-1511-50/+195
| | | | | | | | | | | | | | | | | | | | | | | | | function boundaries Summary: This fixes the case where a user tries to set a breakpoint on a source line outside of any function (e.g. because that code is #ifdefed out, or the compiler did not emit code for the function, etc.) and we would silently move the breakpoint to the next function. Now we check whether the line range of the resolved symbol context function matches the original line number. We reject any breakpoint locations that appear to move the breakpoint into a new function. This filtering only happens if we have full debug info available (e.g. in case of -gline-tables-only compilation, we still set the breakpoint on the nearest source line). Reviewers: jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30817 llvm-svn: 297817
* Remove lldb streams from the Log class completelyPavel Labath2017-03-1514-113/+130
| | | | | | | | | | | | | | | | | | | | | Summary: previously we switched to llvm streams for log output, this completes the switch for the error streams. I also clean up the includes and remove the unused argument from DisableAllLogChannels(). This required adding a bit of boiler plate to convert the output in the command interpreter, but that should go away when we switch command results to use llvm streams as well. Reviewers: zturner, eugene Subscribers: lldb-commits, emaste Differential Revision: https://reviews.llvm.org/D30894 llvm-svn: 297812
* dotest.py: remove the ability to specify different architectures/compilers ↵Pavel Labath2017-03-157-154/+100
| | | | | | | | | | | | | | | | | | | | | | | | | in a single invocation Summary: This has been broken at least since the new test result framework was added, which was over a year ago. It looks like nobody has missed it since. Removing this makes the gmodules handling code saner, as it already did not know how to handle the multiple-compilers case. My motivation for this is libc++ data formatters support on android -- I am trying make a central way of determining whether libc++ tests can be run, and without this, I would have to resort to similar hacks as the gmodules code. Reviewers: jingham, zturner Subscribers: danalbert, tfiala, lldb-commits Differential Revision: https://reviews.llvm.org/D30779 llvm-svn: 297811
* [debugserver] NFC. Cleanup Get/Set Register Value/ContextChris Bieneman2017-03-142-978/+535
| | | | | | This patch modifies the Get/Set Register Value/Context functions for Intel to not duplicate code for reading non-AVX registers. This is similar to other transformations I've been making to the AVX register handling code. llvm-svn: 297787
* [CMake] Override debugserver to use the build tree on DarwinChris Bieneman2017-03-143-0/+16
| | | | | | This patch adds support to the test suite for overriding the path to debugserver, and uses the override to point to the build tree's debugserver on Darwin. llvm-svn: 297776
* [debugserver] Fixing a small logic error from r297685Chris Bieneman2017-03-141-1/+1
| | | | | | I had mixed up the logic during patch review. This resolves the test failure reading YMM registers on Darwin. llvm-svn: 297774
* Fix flakyness in TestCompletionPavel Labath2017-03-141-2/+2
| | | | | | | | | | | | One of the file name templates was occasionally generating the name "fooa***", which conflicted with the one of the tests expectation that there is only one item beginning with "fooa". There doesn't seem to be a good reason for using random file templates here, so just switch to a fixed set of files to increase reproducibility. llvm-svn: 297743
* update.Jason Molenda2017-03-141-0/+6
| | | | llvm-svn: 297701
* [debugserver] NFC. Missed one bit of cleanup in r297688Chris Bieneman2017-03-131-22/+13
| | | | | | I did this cleanup in the x86_64, but missed it in the i386 code. This just simplifies the calls to thread_get_state. llvm-svn: 297691
* [debugserver] NFC. Cleanup DNBArchImpl*::GetFPUState()Chris Bieneman2017-03-133-242/+125
| | | | | | | | This patch consolidates the DEBUG_FPU_REGS code for i386 and x86_64 to take advantage of the fact that the non-AVX members of the avx register state structure overlap with the standard fpu register state structure. This reduces the amount of code required to set debug values into the register state structures because the register state structures are stored in a union. llvm-svn: 297688
* [debugserver] This is a small cleanup patch to AVX support detectionChris Bieneman2017-03-136-121/+55
| | | | | | | | | | | | | | | | | | | | | Summary: The first Sandybridge iMacs with AVX support shipped in Spring 2011 with Snow Leopard as their OS. Unfortunately due to a kernel bug debugging AVX code was not really possible until 10.7.4. The old code here checked the kernel build number to determine when to support AVX, but that code was incorrect. It verified that the kernel build number was greater than xnu-2020, which is the build of the kernel that had the fix for 10.8. The fix was also back ported to 10.7.4. Which means all publicly available OS builds 10.7.4 and later have working AVX support. This new patch verifies that the host OS is greater than or equal to 10.7.4 by checking that the build number is greater than or equal to 11Exx. The patch also removes the HasAVX assembly blob in favor of querying the kernel via sysctl for the hardware features. Using sysctl is slower, however since the code is executed once and the result cached it is a better approach because it is possible for the kernel to disable AVX support on hardware that supports it, so listening to the kernel is a better approach for the debugger to take. Reviewers: jasonmolenda, spyffe Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D30918 llvm-svn: 297685
* Fix up some enumerate() callsites in LLDB.Zachary Turner2017-03-135-15/+15
| | | | llvm-svn: 297640
* Fix another occurrence of needing to use member accessors.Zachary Turner2017-03-131-2/+2
| | | | llvm-svn: 297637
* Delete dead code. NFCJonathan Roelofs2017-03-132-12/+0
| | | | | | | | Also has the side-effect of fixing the build on systems with glibc < 2.12 https://reviews.llvm.org/D30844 llvm-svn: 297626
* Android.rules: Add libc++ supportPavel Labath2017-03-132-10/+26
| | | | | | | | | | | | | | | Summary: This adds support for building libc++ tests when targetting android. The tests are still not passing due to several other problems, but this way we can at least build them. Reviewers: eugene, EricWF, danalbert Subscribers: srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D30737 llvm-svn: 297616
* Fix windows build broken by r297612Pavel Labath2017-03-131-1/+1
| | | | | | I have got my boolean logic incorrect. Sorry about the spam. llvm-svn: 297615
* Fix android buildPavel Labath2017-03-132-2/+2
| | | | | | | | | | | | | | getpwent is not available on android until API level 21, and even then it is only available when doing a non-static link. Since android's concept of users is very different from linux, it's doubtful the home directory resolution would be useful, so I approximate this state by just not using getpwent on android. We've had another getpwent occurance in FileSpec for a while -- it wasn't causing problems because it was stripped out by the linker, but I disable that also, for consistency's sake. llvm-svn: 297612
* Fix Linux build for the FileSpec changesPavel Labath2017-03-133-36/+43
| | | | | | | Propagate changes that were made during review, and fix a couple of warnings while I'm in there. llvm-svn: 297609
* Use LLVM for file / directory enumeration.Zachary Turner2017-03-135-257/+48
| | | | | | | | | | FileSpec::EnumerateDirectory has a bunch of platform-specific gunk in it for posix and non-posix platforms. We can get rid of all this by using LLVM's easy-to-use directory iterators. Differential Revision: https://reviews.llvm.org/D30807 llvm-svn: 297598
* Resubmit "Make file / directory completion work properly on Windows."Zachary Turner2017-03-137-166/+613
| | | | | | This fixes the compilation failures with the original patch. llvm-svn: 297597
* Revert "Make file / directory completion work properly on Windows."Zachary Turner2017-03-127-613/+166
| | | | | | | | | This reverts commit a6a29374662716710f80c8ece96629751697841e. It has a few compilation failures that I don't have time to fix at the moment. llvm-svn: 297589
* Make file / directory completion work properly on Windows.Zachary Turner2017-03-127-166/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a couple of problems with this function on Windows. Different separators and differences in how tilde expressions are resolved for starters, but in addition there was no clear indication of what the function's inputs or outputs were supposed to be, and there were no tests to demonstrate its use. To more easily paper over the differences between Windows paths, non-Windows paths, and tilde expressions, I've ported this function to use LLVM-based directory iteration (in fact, I would like to eliminate all of LLDB's directory iteration code entirely since LLVM's is cleaner / more efficient (i.e. it invokes fewer stat calls)). and llvm's portable path manipulation library. Since file and directory completion assumes you are referring to files and directories on your local machine, it's safe to assume the path syntax properties of the host in doing so, so LLVM's APIs are perfect for this. I've also added a fairly robust set of unit tests. Since you can't really predict what users will be on your machine, or what their home directories will be, I added an interface called TildeExpressionResolver, and in the unit test I've mocked up a fake implementation that acts like a unix password database. This allows us to configure some fake users and home directories in the test, so we can exercise all of those hard-to-test codepaths that normally otherwise depend on the host. Differential Revision: https://reviews.llvm.org/D30789 llvm-svn: 297585
* fix xunit attribute parsingTim Hammerquist2017-03-111-1/+1
| | | | llvm-svn: 297538
* Simplify & correct the patch I wrote in r297441, after thinkingJason Molenda2017-03-102-16/+12
| | | | | | | | about this more I realized I could make the change isolated to whether we decide an empty accelerator table is valid or not. <rdar://problem/30867462> llvm-svn: 297496
* Add a distinction in an apple accelerator table between IsValid andJason Molenda2017-03-102-13/+17
| | | | | | | | | HasContent. If we have a valid accelerator table which has no content, we want to depend on that (empty) table as the authoritative source instead of reading through all the debug info for lookups. <rdar://problem/30867462> llvm-svn: 297441
* Mark this as skipped for now. There is a race condition withJason Molenda2017-03-101-0/+1
| | | | | | | | | | SectionLoadList exposed by this test. Greg tried to chase it down & got pretty far but the isn't correct so we'll disable this test for now until I can figure that out. <rdar://problem/30899227> llvm-svn: 297440
* Make the LLDB test suite work with MSVC 2017 on Windows.Zachary Turner2017-03-091-4/+6
| | | | llvm-svn: 297405
OpenPOWER on IntegriCloud