summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows/DebuggerThread.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Reorg code to allow Windows Process Plugins to share some common code.Adrian McCarthy2015-08-241-533/+0
| | | | | | Differential Revision: http://reviews.llvm.org/D12252 llvm-svn: 245850
* Load executable module when attaching to process; implement detach from process.Adrian McCarthy2015-06-191-28/+54
| | | | llvm-svn: 240157
* Fix race condition when detaching/killing an inferior.Zachary Turner2015-05-211-19/+20
| | | | llvm-svn: 237945
* Implement attach to process on Windows.Zachary Turner2015-05-201-7/+74
| | | | | | | Differential Revision: http://reviews.llvm.org/D9801 Reviewed by: Adrian McCarthy llvm-svn: 237817
* Enable debugging of multithreaded programs on Windows.Adrian McCarthy2015-05-181-8/+10
| | | | llvm-svn: 237637
* Reverting r237392 since it broke TestNumThreads on ubuntu builder.Oleksiy Vyalov2015-05-151-10/+8
| | | | llvm-svn: 237415
* Enable multithreaded debugging on Windows.Adrian McCarthy2015-05-141-8/+10
| | | | llvm-svn: 237392
* Add logging to ProcessWindows.Zachary Turner2015-05-071-49/+158
| | | | llvm-svn: 236776
* Fix warnings generated by clang-cl.Zachary Turner2015-04-021-1/+0
| | | | | | | | | | | | | | There were a couple of real bugs here regarding error checking and signed/unsigned comparisons, but mostly these were just noise. There was one class of bugs fixed here which is particularly annoying, dealing with MSVC's non-standard behavior regarding the underlying type of enums. See the comment in lldb-enumerations.h for details. In short, from now on please use FLAGS_ENUM and FLAGS_ANONYMOUS_ENUM when defining enums which contain values larger than can fit into a signed integer. llvm-svn: 233943
* Revert "Fix warnings found with clang-cl."Zachary Turner2015-02-251-0/+1
| | | | | | | SWIG doesn't like enum : unsigned. Revert this until I can fix this in a way that swig likes. llvm-svn: 230531
* Fix warnings found with clang-cl.Zachary Turner2015-02-251-1/+0
| | | | | | | | | | | Earlier this week I was able to get clang-cl on Windows to be able to self host. This opened the door to being able to get a whole new slew of warnings for the Windows build. This patch fixes all of the warnings, many of which were real bugs. llvm-svn: 230522
* Fix a minor error where I forgot to declare a variable.Zachary Turner2014-12-041-1/+2
| | | | llvm-svn: 223393
* Correctly shutdown when DoDestroy is called with an active exception.Zachary Turner2014-12-031-13/+72
| | | | | | | | | | | | | | | | | | | | | Previously if we got a DoDestroy while stopped at a breakpoint, we would detach and then say the process had exited. This is completely wrong, as it resulted in the python script incorrectly assuming that the process had actually exited and trying to delete the image, when in fact it had done no such thing. The fix employed here is that when we get a DoDestroy, we do 3 steps: 1) initiate a termination sequence on the process 2) If we were stopped handling an exception of any kind, mask it and let the program resume, causing the program to see the termination request and exit on its own. 3) Let the program exit normally, and close all of our handles before returning control back to DoDestroy. This fixes Bug 21722 and Bug 21723. llvm-svn: 223272
* Change HostThread::GetNativeThread() to return a derived reference.Zachary Turner2014-11-171-1/+1
| | | | | | | | Previously using HostThread::GetNativeThread() required an ugly cast to most-derived type. This solves the issue by simply returning the derived type directly. llvm-svn: 222185
* Move the thread logic around to fit better into LLDB's process model.Zachary Turner2014-11-171-3/+3
| | | | | | | | | | | Previously we were directly updating the thread list and stopping and restarting the process every time threads were created. With this patch, we queue up thread launches and thread exits, resolve these all internally, and only update the threads when we get an UpdateThreadList call. We now only update the private state on an actual stop (i.e. breakpoint). llvm-svn: 222178
* [ProcessWindows] Improve support for launching processes.Zachary Turner2014-11-121-2/+33
| | | | | | | | | | | | | This sends notifications for module load / unload to the process plugin, and also manages the state more accurately during the loading sequence. Similar work by Virgile Bello was referenced during the implementation of this patch. Differential Revision: http://reviews.llvm.org/D6224 llvm-svn: 221807
* [ProcessWindows] Simplify the DebugDelegate interface.Zachary Turner2014-11-121-13/+5
| | | | | | | | | | | Due to a previous multi-threaded design involving message passing, we used message classes to pass event information to the delegate. Since the multi-threaded design has gone away, we simplify this by passing event arguments as direct function parameters, which is more clear and easier to understand. llvm-svn: 221806
* [ProcessWindows] Implement breakpoint stop / resume on Windows.Zachary Turner2014-11-111-3/+21
| | | | | | | | | | | | | | This patch implements basic support for stopping at breakpoints and resuming later. While a breakpoint is stopped at, LLDB will cease to process events in the debug loop, effectively suspending the process, and then resume later when ProcessWindows::DoResume is called. As a side effect, this also correctly handles the loader breakpoint (i.e. the initial stop) so that LLDB goes through the correct state sequence during the initial process launch. llvm-svn: 221642
* [ProcessWindows] Notify process plugin when the launch succeeds.Zachary Turner2014-11-101-10/+8
| | | | llvm-svn: 221637
* Remove the top-level DebugDriverThread in ProcessWindows.Zachary Turner2014-11-071-0/+230
Originally the idea was that we would queue requests to a master thread that would dispatch them to other slave threads each responsible for debugging an individual process. This might make some scenarios more scalable and responsive, but for now it seems to be unwarranted complexity for no observable benefit. llvm-svn: 221561
OpenPOWER on IntegriCloud