summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows/Common
Commit message (Collapse)AuthorAgeFilesLines
* Change over the broadcaster/listener process to hold shared or weak pointersJim Ingham2016-03-072-3/+3
| | | | | | | | | | | | | | to each other. This should remove some infrequent teardown crashes when the listener is not the debugger's listener. Processes now need to take a ListenerSP, not a Listener&. This required changing over the Process plugin class constructors to take a ListenerSP, instead of a Listener&. Other than that there should be no functional change. <rdar://problem/24580184> CrashTracer: [USER] Xcode at …ework: lldb_private::Listener::BroadcasterWillDestruct + 39 llvm-svn: 262863
* Get register context for the 32-bit process in a WoW64 process minidumpAdrian McCarthy2016-02-251-0/+32
| | | | | | | | | | | | 32-bit processes on 64-bit Windows run in a layer called WoW64 (Windows-on-Windows64). If you capture a mini dump of such a process from a 32-bit debugger, you end up with a register context for the 64-bit WoW64 process rather than the 32-bit one you probably care about. This detects WoW64 by looking to see if there's a module named wow64.dll loaded. For such processes, it then looks in the 64-bit Thread Environment Block (TEB) to locate a copy of the 32-bit CONTEXT record that the plugin needs for the register context. Added some rudimentary tests. I'd like to improve these later once we figure out how to get the exception information from these mini dumps. Differential Revision: http://reviews.llvm.org/D17465 llvm-svn: 261808
* Improve ReadRegister for RegisterContextWindowsx86Adrian McCarthy2016-02-112-30/+27
| | | | | | | | | | | | | | | | | In some circumstances (notably, certain minidumps), the thread CONTEXT does not have values for the control registers (EIP, ESP, EBP, EFLAGS). There are flags in the CONTEXT which indicate which portions are valid, but those flags weren't checked. The old code would not detect this and give a garbage value for the register. The new code will log the problem and return an error. I consolidated the error checking and logging into a helper function, which makes the big switch statement easier to read and verify. Ran tests to ensure this doesn't break anything. Manually verified that a minidump without info on the control registers now indicates the problem instead of giving bad information. Differential Review: http://reviews.llvm.org/D17152 llvm-svn: 260559
* Implement GetMemoryRegionInfo for mini dumps.Adrian McCarthy2015-12-042-0/+34
| | | | | | Differential Revision: http://reviews.llvm.org/D15218 llvm-svn: 254780
* Implement RegisterContext for Mini Dumps.Adrian McCarthy2015-11-123-2/+58
| | | | | | Differential Revision: http://reviews.llvm.org/D14591 llvm-svn: 252950
* Fix x64 build on Windows, which was broken by my refactor from last week.Adrian McCarthy2015-11-041-1/+1
| | | | | | No build bots build x64 on Windows yet, but this was spotted by another developer who emailed me directly. llvm-svn: 252100
* Refactor Windows process plugin to allow code sharing between live and mini ↵Adrian McCarthy2015-10-2813-0/+1342
| | | | | | dump debugging. llvm-svn: 251540
* Reorg code to allow Windows Process Plugins to share some common code.Adrian McCarthy2015-08-241-0/+99
Differential Revision: http://reviews.llvm.org/D12252 llvm-svn: 245850
OpenPOWER on IntegriCloud