1//===-- ProcessFreeBSDKernel.h ----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H
11
12#include "lldb/Target/PostMortemProcess.h"
13
14class ProcessFreeBSDKernel : public lldb_private::PostMortemProcess {
15public:
16 ProcessFreeBSDKernel(lldb::TargetSP target_sp, lldb::ListenerSP listener,
17 const lldb_private::FileSpec &core_file);
18
19 static lldb::ProcessSP
20 CreateInstance(lldb::TargetSP target_sp, lldb::ListenerSP listener,
21 const lldb_private::FileSpec *crash_file_path,
22 bool can_connect);
23
24 static void Initialize();
25
26 static void Terminate();
27
28 static llvm::StringRef GetPluginNameStatic() { return "freebsd-kernel"; }
29
30 static llvm::StringRef GetPluginDescriptionStatic() {
31 return "FreeBSD kernel vmcore debugging plug-in.";
32 }
33
34 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
35
36 lldb_private::Status DoDestroy() override;
37
38 bool CanDebug(lldb::TargetSP target_sp,
39 bool plugin_specified_by_name) override;
40
41 void RefreshStateAfterStop() override;
42
43 lldb_private::Status DoLoadCore() override;
44
45 lldb_private::DynamicLoader *GetDynamicLoader() override;
46
47protected:
48 bool DoUpdateThreadList(lldb_private::ThreadList &old_thread_list,
49 lldb_private::ThreadList &new_thread_list) override;
50
51 lldb::addr_t FindSymbol(const char* name);
52};
53
54#endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H
55

source code of lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h