本文整理汇总了C++中LLDBCommand::GetExecutable方法的典型用法代码示例。如果您正苦于以下问题:C++ LLDBCommand::GetExecutable方法的具体用法?C++ LLDBCommand::GetExecutable怎么用?C++ LLDBCommand::GetExecutable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLDBCommand
的用法示例。
在下文中一共展示了LLDBCommand::GetExecutable方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitializeLLDB
bool CodeLiteLLDBApp::InitializeLLDB(const LLDBCommand& command)
{
if(IsDebugSessionInProgress()) {
wxPrintf("codelite-lldb: another session is already in progress\n");
return false;
}
if(!command.GetWorkingDirectory().IsEmpty()) {
::wxSetWorkingDirectory(command.GetWorkingDirectory());
}
wxPrintf("codelite-lldb: working directory is set to %s\n", ::wxGetCwd());
#ifdef __WXMAC__
// On OSX, debugserver executable must exists otherwise lldb will not work properly
// we ensure that it exists by checking the environment variable LLDB_DEBUGSERVER_PATH
wxString lldbDebugServer;
if(!::wxGetEnv("LLDB_DEBUGSERVER_PATH", &lldbDebugServer) || !wxFileName::Exists(lldbDebugServer)) {
wxPrintf("codelite-lldb: LLDB_DEBUGSERVER_PATH environment does not exist or contains a path to a non existent "
"file\n");
NotifyExited();
return false;
}
#endif
m_debuggeePid = wxNOT_FOUND;
wxPrintf("codelite-lldb: creating target for file '%s'\n", command.GetExecutable());
m_debugger = lldb::SBDebugger::Create();
lldb::SBError lldbError;
m_target = m_debugger.CreateTarget(command.GetExecutable().mb_str().data(), NULL, NULL, true, lldbError);
if(!m_target.IsValid()) {
wxPrintf("codelite-lldb: could not create target for file %s. %s\n",
command.GetExecutable(),
lldbError.GetCString());
NotifyExited();
return false;
}
// Print the content of the summaries (for debugging purposes)
wxPrintf("codelite-lldb: created target for %s\n", command.GetExecutable());
m_debugger.SetAsync(true);
// Keep the settings
m_settings = command.GetSettings();
// First, source the .lldbinit file
wxString source_command;
source_command << "command source '" << ::wxGetHomeDir() << "/.lldbinit"
<< "'";
DoExecutueShellCommand(source_command);
// Apply the types
lldb::SBCommandReturnObject ret;
wxArrayString commands = ::wxStringTokenize(m_settings.GetTypes(), "\n", wxTOKEN_STRTOK);
for(size_t i = 0; i < commands.GetCount(); ++i) {
DoExecutueShellCommand(commands.Item(i));
}
// DoExecutueShellCommand("type summary list");
return true;
}
示例2: OpenCoreFile
void CodeLiteLLDBApp::OpenCoreFile(const LLDBCommand& command)
{
wxPrintf("codeite-lldb: debugging core file '%s'\n", command.GetCorefile());
wxPrintf("codeite-lldb: executable file '%s'\n", command.GetExecutable());
if(!InitializeLLDB(command)) {
return;
}
lldb::SBProcess process = m_target.LoadCore(command.GetCorefile().mb_str(wxConvUTF8).data());
if(!process.IsValid()) {
wxPrintf("codeite-lldb: error loading core file '%s'\n", command.GetCorefile());
NotifyExited();
return;
}
// Launch the thread that will handle the LLDB process events
m_lldbProcessEventThread =
new LLDBProcessEventHandlerThread(this, m_debugger, m_target.GetProcess(), kDebugSessionTypeCore);
m_lldbProcessEventThread->Start();
// Notify codelite that the debugger started successfully
NotifyStarted(kDebugSessionTypeCore);
// In any case, reset the interrupt reason
m_interruptReason = kInterruptReasonNone;
// Since we are in 'core' session
// immediately notify about 'stop'
NotifyStopped();
}
示例3: Start
void LLDBConnector::Start(const LLDBCommand& runCommand)
{
LLDBCommand startCommand;
startCommand.SetExecutable( runCommand.GetExecutable() );
startCommand.SetCommandType( kCommandStart );
SendCommand( startCommand );
// stash the runCommand for the future 'Run()' call
m_runCommand.Clear();
m_runCommand = runCommand;
m_runCommand.SetCommandType( kCommandRun );
}
示例4: Start
void LLDBConnector::Start(const LLDBCommand& runCommand)
{
LLDBCommand startCommand;
startCommand.SetExecutable(runCommand.GetExecutable());
startCommand.SetCommandType(kCommandStart);
startCommand.SetWorkingDirectory(runCommand.GetWorkingDirectory());
// send the settings as well
LLDBSettings settings;
settings.Load();
startCommand.SetSettings(settings);
SendCommand(startCommand);
// stash the runCommand for the future 'Run()' call
m_runCommand.Clear();
m_runCommand = runCommand;
m_runCommand.SetCommandType(kCommandRun);
}