The Windows process plugin was broken up into multiple pieces a while back in order to share code between debugging live processes and minidumps (postmortem) debugging. The minidump portion was replaced by a cross-platform solution. This left the plugin split into a formerly "common" base classes and the derived classes for live debugging. This extra layer made the code harder to understand and work with. This patch simplifies these class hierarchies by rolling the live debugging concrete classes up to the base classes. Last week I posted my intent to make this change to lldb-dev, and I didn't hear any objections. This involved moving code and changing references to classes like ProcessWindowsLive to ProcessWindows. It still builds for both 32- and 64-bit, and the tests still pass on 32-bit. (Tests on 64-bit weren't passing before this refactor for unrelated reasons.) llvm-svn: 287770
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
//===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
|
|
#define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
|
|
|
|
//#include "ForwardDecl.h"
|
|
#include "lldb/Host/HostThread.h"
|
|
#include "lldb/Target/Thread.h"
|
|
#include "lldb/lldb-forward.h"
|
|
|
|
#include "RegisterContextWindows.h"
|
|
|
|
namespace lldb_private {
|
|
class ProcessWindows;
|
|
class HostThread;
|
|
class StackFrame;
|
|
|
|
class TargetThreadWindows : public lldb_private::Thread {
|
|
public:
|
|
TargetThreadWindows(ProcessWindows &process, const HostThread &thread);
|
|
virtual ~TargetThreadWindows();
|
|
|
|
// lldb_private::Thread overrides
|
|
void RefreshStateAfterStop() override;
|
|
void WillResume(lldb::StateType resume_state) override;
|
|
void DidStop() override;
|
|
lldb::RegisterContextSP GetRegisterContext() override;
|
|
lldb::RegisterContextSP
|
|
CreateRegisterContextForFrame(StackFrame *frame) override;
|
|
bool CalculateStopInfo() override;
|
|
Unwind *GetUnwinder() override;
|
|
|
|
bool DoResume();
|
|
|
|
HostThread GetHostThread() const { return m_host_thread; }
|
|
|
|
private:
|
|
lldb::RegisterContextSP CreateRegisterContextForFrameIndex(uint32_t idx);
|
|
|
|
HostThread m_host_thread;
|
|
};
|
|
}
|
|
|
|
#endif
|