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