summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows/ForwardDecl.h
Commit message (Collapse)AuthorAgeFilesLines
* Reorg code to allow Windows Process Plugins to share some common code.Adrian McCarthy2015-08-241-41/+0
| | | | | | Differential Revision: http://reviews.llvm.org/D12252 llvm-svn: 245850
* Fix some test failures for Windows.Zachary Turner2014-12-101-0/+1
| | | | llvm-svn: 223982
* Correctly shutdown when DoDestroy is called with an active exception.Zachary Turner2014-12-031-0/+1
| | | | | | | | | | | | | | | | | | | | | 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
* Move the thread logic around to fit better into LLDB's process model.Zachary Turner2014-11-171-5/+5
| | | | | | | | | | | 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] Simplify the DebugDelegate interface.Zachary Turner2014-11-121-13/+0
| | | | | | | | | | | 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-1/+14
| | | | | | | | | | | | | | 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-2/+1
| | | | llvm-svn: 221637
* Remove the top-level DebugDriverThread in ProcessWindows.Zachary Turner2014-11-071-8/+3
| | | | | | | | | | 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
* Decouple ProcessWindows from the Windows debug driver thread.Zachary Turner2014-11-051-0/+45
In the llgs world, ProcessWindows will eventually go away and we'll implement a different protocol. This patch decouples ProcessWindows from the core debug loop so that this transition will not be more difficult than it needs to be. llvm-svn: 221405
OpenPOWER on IntegriCloud