1 //===-- ProcessFreeBSDKernel.h ----------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H
12 #include "lldb/Target/PostMortemProcess.h"
14 class ProcessFreeBSDKernel
: public lldb_private::PostMortemProcess
{
16 ProcessFreeBSDKernel(lldb::TargetSP target_sp
, lldb::ListenerSP listener
,
17 const lldb_private::FileSpec
&core_file
);
19 static lldb::ProcessSP
20 CreateInstance(lldb::TargetSP target_sp
, lldb::ListenerSP listener
,
21 const lldb_private::FileSpec
*crash_file_path
,
24 static void Initialize();
26 static void Terminate();
28 static llvm::StringRef
GetPluginNameStatic() { return "freebsd-kernel"; }
30 static llvm::StringRef
GetPluginDescriptionStatic() {
31 return "FreeBSD kernel vmcore debugging plug-in.";
34 llvm::StringRef
GetPluginName() override
{ return GetPluginNameStatic(); }
36 lldb_private::Status
DoDestroy() override
;
38 bool CanDebug(lldb::TargetSP target_sp
,
39 bool plugin_specified_by_name
) override
;
41 void RefreshStateAfterStop() override
;
43 lldb_private::Status
DoLoadCore() override
;
45 lldb_private::DynamicLoader
*GetDynamicLoader() override
;
48 bool DoUpdateThreadList(lldb_private::ThreadList
&old_thread_list
,
49 lldb_private::ThreadList
&new_thread_list
) override
;
51 lldb::addr_t
FindSymbol(const char* name
);
54 #endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H