blob: c789254221023c9e30dd13a42c0ce0f9c304fc14 [file] [log] [blame]
Adrian McCarthyc96516f2015-08-03 23:01:51 +00001//===-- ThreadWinMiniDump.h -------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_ThreadWinMiniDump_h_
11#define liblldb_ThreadWinMiniDump_h_
12
13#include <string>
14
15#include "lldb/Core/DataExtractor.h"
16#include "lldb/Target/Thread.h"
17
18class ThreadWinMiniDump : public lldb_private::Thread
19{
20public:
21 ThreadWinMiniDump(lldb_private::Process &process, lldb::tid_t tid);
22
23 virtual
24 ~ThreadWinMiniDump();
25
26 void
27 RefreshStateAfterStop() override;
28
29 lldb::RegisterContextSP
30 GetRegisterContext() override;
31
32 lldb::RegisterContextSP
33 CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override;
34
35 void
36 ClearStackFrames() override;
37
Adrian McCarthyc96516f2015-08-03 23:01:51 +000038 void
Adrian McCarthyd9fa2b52015-11-12 21:16:15 +000039 SetContext(const void *context);
Adrian McCarthyc96516f2015-08-03 23:01:51 +000040
41protected:
Adrian McCarthyc96516f2015-08-03 23:01:51 +000042 lldb::RegisterContextSP m_reg_context_sp;
Adrian McCarthyd9fa2b52015-11-12 21:16:15 +000043 class Data;
44 std::unique_ptr<Data> m_data; // for WinAPI-specific data
Adrian McCarthyc96516f2015-08-03 23:01:51 +000045
46 bool CalculateStopInfo() override;
47};
48
49#endif