summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* 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
* cmake: Increase LINK_INTERFACE_MULTIPLICITY of lldbCorePavel Labath2017-03-091-1/+1
| | | | | | | | | | | | This is necessary to get debug builds of unit tests working on linux. I think we are at a point where removing dependencies does not prevent us from depending on the whole world yet. What it does do though, is make the dependency chains longer as the dependency graph gets sparser, which means we need to repeat the libraries more times to get the thing to link. llvm-svn: 297369
* Fix remaining threading issues in Log.hPavel Labath2017-03-093-119/+142
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes two threading issues in the logging code. The access to the mask and options flags had data races when we were trying to enable/disable logging while another thread was writing to the log. Since we can log from almost any context, and we want it to be fast, so I avoided locking primitives and used atomic variables instead. I have also removed the (unused) setters for the mask and flags to make sure that the only way to set them is through the enable/disable channel functions. I also add tests, which when run under tsan, verify that the use cases like "doing an LLDB_LOGV while another thread disables logging" are data-race-free. Reviewers: zturner, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30702 llvm-svn: 297368
* Remove LLDB's recursive directory deletion function.Zachary Turner2017-03-095-89/+2
| | | | | | LLVM now has such a function, so we use that instead. llvm-svn: 297360
* Resubmit FileSystem changes.Zachary Turner2017-03-0840-297/+268
| | | | | | | | | | This was originall reverted due to some test failures in ModuleCache and TestCompDirSymlink. These issues have all been resolved and the code now passes all tests. Differential Revision: https://reviews.llvm.org/D30698 llvm-svn: 297300
* Android.rules: fix computation of gcc toolchain directory on armPavel Labath2017-03-081-11/+11
| | | | | | | | The toolchain directory for arm android targets was computed incorrectly. The architecture part should be arm, and the environment part androideabi. This fixes that. llvm-svn: 297279
* Back to xfailing this. For some reason on our buildbotsJason Molenda2017-03-081-0/+1
| | | | | | | | it fails, but it works on the local workstations. I'll need to figure out what the difference is between these. <rdar://problem/30915340> llvm-svn: 297259
* TestQueues should be passing again, remove the expected fail.Jason Molenda2017-03-081-1/+0
| | | | llvm-svn: 297258
* Make LLDB skip server-client roundtrip for signals that don't require any ↵Eugene Zemtsov2017-03-0712-2/+328
| | | | | | | | | | | | | | actions If QPassSignals packaet is supported by lldb-server, lldb-client will utilize it and ask the server to ignore signals that don't require stops or notifications. Such signals will be immediately re-injected into inferior to continue normal execution. Differential Revision: https://reviews.llvm.org/D30520 llvm-svn: 297231
* fix format specifier warningsTim Hammerquist2017-03-073-14/+21
| | | | llvm-svn: 297228
* Android.rules: add support for clang compilerPavel Labath2017-03-072-16/+45
| | | | | | | | | | | | | | Summary: building executables with the NDK clang requires -target and -gcc-toolchain arguments. Reviewers: eugene, danalbert Subscribers: srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D30574 llvm-svn: 297145
* Revert "Use LLVM for all stat-related functionality."Pavel Labath2017-03-0738-261/+289
| | | | | | | | | | | | | | | this reverts r297116 because it breaks the unittests and TestCompDirSymlink. The ModuleCache unit test is trivially fixable, but the CompDirSymlink failure is a symptom of a deeper problem: llvm's stat functionality is not a drop-in replacement for lldb's. The former is based on stat(2) (which does symlink resolution), while the latter is based on lstat(2) (which does not). This also reverts subsequent build fixes (r297128, r297120, 297117) and r297119 (Remove FileSpec dependency on FileSystem) which builds on top of this. llvm-svn: 297139
* Fixed a missing brace.Sean Callanan2017-03-071-1/+1
| | | | llvm-svn: 297128
* Fix FreeBSD build.Zachary Turner2017-03-071-2/+3
| | | | llvm-svn: 297120
* Remove FileSpec dependency on FileSystem.Zachary Turner2017-03-071-29/+23
| | | | llvm-svn: 297119
* Fix linux build.Zachary Turner2017-03-071-2/+2
| | | | llvm-svn: 297117
* Use LLVM for all stat-related functionality.Zachary Turner2017-03-0738-259/+236
| | | | | | | | | | This deletes LLDB's FileType enumeration and replaces all users, and all calls to functions that check whether a file exists etc with corresponding calls to LLVM. Differential Revision: https://reviews.llvm.org/D30624 llvm-svn: 297116
* cleanup.Jason Molenda2017-03-071-42/+42
| | | | llvm-svn: 297104
* Add missing include in FileSpec.Zachary Turner2017-03-061-0/+1
| | | | llvm-svn: 297102
* Remove dependency from FileSpec to ArchSpec.Zachary Turner2017-03-063-14/+17
| | | | | | | All it really needs is the llvm::Triple, so make FileSpec take the Triple directly instead of the ArchSpec. llvm-svn: 297096
* Remove FileSpec::ReadFileContents.Zachary Turner2017-03-0620-183/+97
| | | | | | | | | | | | | | | | This functionality is subsumed by DataBufferLLVM, which is also more efficient since it will try to mmap. However, we don't yet support mmaping writable private sections, and in some cases we were using ReadFileContents and then modifying the buffer. To address that I've added a flag to the DataBufferLLVM methods that allow you to map privately, which disables the mmaping path entirely. Eventually we should teach DataBufferLLVM to use mmap with writable private, but that is orthogonal to this effort. Differential Revision: https://reviews.llvm.org/D30622 llvm-svn: 297095
* Update log_options unit testPavel Labath2017-03-062-37/+42
| | | | | | | | | | it was accessing the details of the Log class directly. Let it go through the channel class instead. This also discovered a bug when we were setting but not clearing the log options when enabling a channel. llvm-svn: 297053
* Move many other files from Core -> Utility.Zachary Turner2017-03-0661-61/+60
| | | | llvm-svn: 297043
* A few improvements to deps analysis scripts.Zachary Turner2017-03-061-26/+42
| | | | | | | | 1) Looks in Plugins and clang 2) Adds a mode to display the deps sorted by the number of times the deps occurs in a particular project llvm-svn: 297036
* Fix line endings of deps analysis script.Zachary Turner2017-03-061-65/+65
| | | | llvm-svn: 297035
* Fix Log unit testsPavel Labath2017-03-061-3/+2
| | | | | | | the llvm function for getting the thread name dropped the _np suffix during review. Zachary's commit did not reflect that. llvm-svn: 297013
* Truncate thread names if they're too long.Zachary Turner2017-03-041-2/+4
| | | | llvm-svn: 296972
* Project file fixes after movement of Data* and removal of ThisThread.cppSean Callanan2017-03-041-42/+32
| | | | llvm-svn: 296963
* Disable the lldb-mi tests on remote platforms.Sean Callanan2017-03-0416-0/+64
| | | | | | | Currently on remote platforms the lldb-mi tests fail, which means they time out. Given how many of the lldb-mi tests there are, this means a long wait. llvm-svn: 296951
* Fix a bug in the dep analysis script.Zachary Turner2017-03-041-0/+1
| | | | | | | It wasn't always normalizing slashes correctly, so you'd end up with the same thing in the map twice. llvm-svn: 296947
* Delete LLDB's code for getting / setting thread name.Zachary Turner2017-03-0415-307/+7
| | | | | | | This is now functionality in LLVM, and all callers have already been updated to use the LLVM functions. llvm-svn: 296946
OpenPOWER on IntegriCloud