mirror of
https://github.com/opnsense/src.git
synced 2026-04-29 10:11:09 -04:00
This corresponds with the branchpoint for the 3.6 release. A number of files not required for the FreeBSD build have been removed. Sponsored by: DARPA, AFRL
363 lines
7.8 KiB
C++
363 lines
7.8 KiB
C++
//===-- SBDebugger.h --------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_SBDebugger_h_
|
|
#define LLDB_SBDebugger_h_
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "lldb/API/SBDefines.h"
|
|
#include "lldb/API/SBPlatform.h"
|
|
|
|
namespace lldb {
|
|
|
|
|
|
class SBInputReader
|
|
{
|
|
public:
|
|
SBInputReader();
|
|
~SBInputReader();
|
|
SBError Initialize(lldb::SBDebugger&, unsigned long (*)(void*, lldb::SBInputReader*, lldb::InputReaderAction, char const*, unsigned long), void*, lldb::InputReaderGranularity, char const*, char const*, bool);
|
|
void SetIsDone(bool);
|
|
bool IsActive() const;
|
|
};
|
|
|
|
class SBDebugger
|
|
{
|
|
public:
|
|
|
|
static void
|
|
Initialize();
|
|
|
|
static void
|
|
Terminate();
|
|
|
|
// Deprecated, use the one that takes a source_init_files bool.
|
|
static lldb::SBDebugger
|
|
Create();
|
|
|
|
static lldb::SBDebugger
|
|
Create(bool source_init_files);
|
|
|
|
static lldb::SBDebugger
|
|
Create(bool source_init_files, lldb::LogOutputCallback log_callback, void *baton);
|
|
|
|
static void
|
|
Destroy (lldb::SBDebugger &debugger);
|
|
|
|
static void
|
|
MemoryPressureDetected ();
|
|
|
|
SBDebugger();
|
|
|
|
SBDebugger(const lldb::SBDebugger &rhs);
|
|
|
|
SBDebugger(const lldb::DebuggerSP &debugger_sp);
|
|
|
|
lldb::SBDebugger &
|
|
operator = (const lldb::SBDebugger &rhs);
|
|
|
|
~SBDebugger();
|
|
|
|
bool
|
|
IsValid() const;
|
|
|
|
void
|
|
Clear ();
|
|
|
|
void
|
|
SetAsync (bool b);
|
|
|
|
bool
|
|
GetAsync ();
|
|
|
|
void
|
|
SkipLLDBInitFiles (bool b);
|
|
|
|
void
|
|
SkipAppInitFiles (bool b);
|
|
|
|
void
|
|
SetInputFileHandle (FILE *f, bool transfer_ownership);
|
|
|
|
void
|
|
SetOutputFileHandle (FILE *f, bool transfer_ownership);
|
|
|
|
void
|
|
SetErrorFileHandle (FILE *f, bool transfer_ownership);
|
|
|
|
FILE *
|
|
GetInputFileHandle ();
|
|
|
|
FILE *
|
|
GetOutputFileHandle ();
|
|
|
|
FILE *
|
|
GetErrorFileHandle ();
|
|
|
|
void
|
|
SaveInputTerminalState();
|
|
|
|
void
|
|
RestoreInputTerminalState();
|
|
|
|
lldb::SBCommandInterpreter
|
|
GetCommandInterpreter ();
|
|
|
|
void
|
|
HandleCommand (const char *command);
|
|
|
|
lldb::SBListener
|
|
GetListener ();
|
|
|
|
void
|
|
HandleProcessEvent (const lldb::SBProcess &process,
|
|
const lldb::SBEvent &event,
|
|
FILE *out,
|
|
FILE *err);
|
|
|
|
lldb::SBTarget
|
|
CreateTarget (const char *filename,
|
|
const char *target_triple,
|
|
const char *platform_name,
|
|
bool add_dependent_modules,
|
|
lldb::SBError& error);
|
|
|
|
lldb::SBTarget
|
|
CreateTargetWithFileAndTargetTriple (const char *filename,
|
|
const char *target_triple);
|
|
|
|
lldb::SBTarget
|
|
CreateTargetWithFileAndArch (const char *filename,
|
|
const char *archname);
|
|
|
|
lldb::SBTarget
|
|
CreateTarget (const char *filename);
|
|
|
|
// Return true if target is deleted from the target list of the debugger.
|
|
bool
|
|
DeleteTarget (lldb::SBTarget &target);
|
|
|
|
lldb::SBTarget
|
|
GetTargetAtIndex (uint32_t idx);
|
|
|
|
uint32_t
|
|
GetIndexOfTarget (lldb::SBTarget target);
|
|
|
|
lldb::SBTarget
|
|
FindTargetWithProcessID (pid_t pid);
|
|
|
|
lldb::SBTarget
|
|
FindTargetWithFileAndArch (const char *filename,
|
|
const char *arch);
|
|
|
|
uint32_t
|
|
GetNumTargets ();
|
|
|
|
lldb::SBTarget
|
|
GetSelectedTarget ();
|
|
|
|
void
|
|
SetSelectedTarget (SBTarget& target);
|
|
|
|
lldb::SBPlatform
|
|
GetSelectedPlatform();
|
|
|
|
void
|
|
SetSelectedPlatform(lldb::SBPlatform &platform);
|
|
|
|
lldb::SBSourceManager
|
|
GetSourceManager ();
|
|
|
|
// REMOVE: just for a quick fix, need to expose platforms through
|
|
// SBPlatform from this class.
|
|
lldb::SBError
|
|
SetCurrentPlatform (const char *platform_name);
|
|
|
|
bool
|
|
SetCurrentPlatformSDKRoot (const char *sysroot);
|
|
|
|
// FIXME: Once we get the set show stuff in place, the driver won't need
|
|
// an interface to the Set/Get UseExternalEditor.
|
|
bool
|
|
SetUseExternalEditor (bool input);
|
|
|
|
bool
|
|
GetUseExternalEditor ();
|
|
|
|
bool
|
|
SetUseColor (bool use_color);
|
|
|
|
bool
|
|
GetUseColor () const;
|
|
|
|
static bool
|
|
GetDefaultArchitecture (char *arch_name, size_t arch_name_len);
|
|
|
|
static bool
|
|
SetDefaultArchitecture (const char *arch_name);
|
|
|
|
lldb::ScriptLanguage
|
|
GetScriptingLanguage (const char *script_language_name);
|
|
|
|
static const char *
|
|
GetVersionString ();
|
|
|
|
static const char *
|
|
StateAsCString (lldb::StateType state);
|
|
|
|
static bool
|
|
StateIsRunningState (lldb::StateType state);
|
|
|
|
static bool
|
|
StateIsStoppedState (lldb::StateType state);
|
|
|
|
bool
|
|
EnableLog (const char *channel, const char **categories);
|
|
|
|
void
|
|
SetLoggingCallback (lldb::LogOutputCallback log_callback, void *baton);
|
|
|
|
// DEPRECATED
|
|
void
|
|
DispatchInput (void* baton,
|
|
const void* data,
|
|
size_t data_len);
|
|
|
|
void
|
|
DispatchInput (const void *data, size_t data_len);
|
|
|
|
void
|
|
DispatchInputInterrupt ();
|
|
|
|
void
|
|
DispatchInputEndOfFile ();
|
|
|
|
void
|
|
PushInputReader (lldb::SBInputReader &reader);
|
|
|
|
const char *
|
|
GetInstanceName ();
|
|
|
|
static SBDebugger
|
|
FindDebuggerWithID (int id);
|
|
|
|
static lldb::SBError
|
|
SetInternalVariable (const char *var_name, const char *value, const char *debugger_instance_name);
|
|
|
|
static lldb::SBStringList
|
|
GetInternalVariableValue (const char *var_name, const char *debugger_instance_name);
|
|
|
|
bool
|
|
GetDescription (lldb::SBStream &description);
|
|
|
|
uint32_t
|
|
GetTerminalWidth () const;
|
|
|
|
void
|
|
SetTerminalWidth (uint32_t term_width);
|
|
|
|
lldb::user_id_t
|
|
GetID ();
|
|
|
|
const char *
|
|
GetPrompt() const;
|
|
|
|
void
|
|
SetPrompt (const char *prompt);
|
|
|
|
lldb::ScriptLanguage
|
|
GetScriptLanguage() const;
|
|
|
|
void
|
|
SetScriptLanguage (lldb::ScriptLanguage script_lang);
|
|
|
|
bool
|
|
GetCloseInputOnEOF () const;
|
|
|
|
void
|
|
SetCloseInputOnEOF (bool b);
|
|
|
|
SBTypeCategory
|
|
GetCategory (const char* category_name);
|
|
|
|
SBTypeCategory
|
|
CreateCategory (const char* category_name);
|
|
|
|
bool
|
|
DeleteCategory (const char* category_name);
|
|
|
|
uint32_t
|
|
GetNumCategories ();
|
|
|
|
SBTypeCategory
|
|
GetCategoryAtIndex (uint32_t);
|
|
|
|
SBTypeCategory
|
|
GetDefaultCategory();
|
|
|
|
SBTypeFormat
|
|
GetFormatForType (SBTypeNameSpecifier);
|
|
|
|
#ifndef LLDB_DISABLE_PYTHON
|
|
SBTypeSummary
|
|
GetSummaryForType (SBTypeNameSpecifier);
|
|
#endif
|
|
|
|
SBTypeFilter
|
|
GetFilterForType (SBTypeNameSpecifier);
|
|
|
|
#ifndef LLDB_DISABLE_PYTHON
|
|
SBTypeSynthetic
|
|
GetSyntheticForType (SBTypeNameSpecifier);
|
|
#endif
|
|
|
|
void
|
|
RunCommandInterpreter (bool auto_handle_events,
|
|
bool spawn_thread);
|
|
|
|
void
|
|
RunCommandInterpreter (bool auto_handle_events,
|
|
bool spawn_thread,
|
|
SBCommandInterpreterRunOptions &options,
|
|
int &num_errors,
|
|
bool &quit_requested,
|
|
bool &stopped_for_crash);
|
|
private:
|
|
|
|
friend class SBCommandInterpreter;
|
|
friend class SBInputReader;
|
|
friend class SBListener;
|
|
friend class SBProcess;
|
|
friend class SBSourceManager;
|
|
friend class SBTarget;
|
|
|
|
lldb::SBTarget
|
|
FindTargetWithLLDBProcess (const lldb::ProcessSP &processSP);
|
|
|
|
void
|
|
reset (const lldb::DebuggerSP &debugger_sp);
|
|
|
|
lldb_private::Debugger *
|
|
get () const;
|
|
|
|
lldb_private::Debugger &
|
|
ref () const;
|
|
|
|
const lldb::DebuggerSP &
|
|
get_sp () const;
|
|
|
|
lldb::DebuggerSP m_opaque_sp;
|
|
|
|
}; // class SBDebugger
|
|
|
|
|
|
} // namespace lldb
|
|
|
|
#endif // LLDB_SBDebugger_h_
|