本文整理汇总了C++中LogManager::LogError方法的典型用法代码示例。如果您正苦于以下问题:C++ LogManager::LogError方法的具体用法?C++ LogManager::LogError怎么用?C++ LogManager::LogError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LogManager
的用法示例。
在下文中一共展示了LogManager::LogError方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindTargetsDebugger
void DebuggerManager::FindTargetsDebugger()
{
if (Manager::Get()->GetProjectManager()->IsLoadingOrClosing())
return;
m_activeDebugger = nullptr;
m_menuHandler->SetActiveDebugger(nullptr);
if (m_registered.empty())
{
m_menuHandler->MarkActiveTargetAsValid(false);
return;
}
ProjectManager* projectMgr = Manager::Get()->GetProjectManager();
LogManager* log = Manager::Get()->GetLogManager();
cbProject* project = projectMgr->GetActiveProject();
ProjectBuildTarget *target = nullptr;
if (project)
{
const wxString &targetName = project->GetActiveBuildTarget();
if (project->BuildTargetValid(targetName))
target = project->GetBuildTarget(targetName);
}
Compiler *compiler = nullptr;
if (!target)
{
if (project)
compiler = CompilerFactory::GetCompiler(project->GetCompilerID());
if (!compiler)
compiler = CompilerFactory::GetDefaultCompiler();
if (!compiler)
{
log->LogError(_("Can't get the compiler for the active target, nor the project, nor the default one!"));
m_menuHandler->MarkActiveTargetAsValid(false);
return;
}
}
else
{
compiler = CompilerFactory::GetCompiler(target->GetCompilerID());
if (!compiler)
{
log->LogError(wxString::Format(_("Current target '%s' doesn't have valid compiler!"),
target->GetTitle().c_str()));
m_menuHandler->MarkActiveTargetAsValid(false);
return;
}
}
wxString dbgString = compiler->GetPrograms().DBGconfig;
wxString::size_type pos = dbgString.find(wxT(':'));
wxString name, config;
if (pos != wxString::npos)
{
name = dbgString.substr(0, pos);
config = dbgString.substr(pos + 1, dbgString.length() - pos - 1);
}
if (name.empty() || config.empty())
{
log->LogError(wxString::Format(_("Current compiler '%s' doesn't have correctly defined debugger!"),
compiler->GetName().c_str()));
m_menuHandler->MarkActiveTargetAsValid(false);
return;
}
for (RegisteredPlugins::iterator it = m_registered.begin(); it != m_registered.end(); ++it)
{
PluginData &data = it->second;
if (it->first->GetSettingsName() == name)
{
ConfigurationVector &configs = data.GetConfigurations();
int index = 0;
for (ConfigurationVector::iterator itConf = configs.begin(); itConf != configs.end(); ++itConf, ++index)
{
if ((*itConf)->GetName() == config)
{
m_activeDebugger = it->first;
m_activeDebugger->SetActiveConfig(index);
m_useTargetsDefault = true;
WriteActiveDebuggerConfig(wxEmptyString, -1);
RefreshUI();
m_menuHandler->MarkActiveTargetAsValid(true);
return;
}
}
}
}
wxString targetTitle(target ? target->GetTitle() : wxT("<nullptr>"));
log->LogError(wxString::Format(_("Can't find the debugger config: '%s:%s' for the current target '%s'!"),
name.c_str(), config.c_str(),
targetTitle.c_str()));
m_menuHandler->MarkActiveTargetAsValid(false);
}
示例2: AttachDebugger
void CodeBlocksApp::AttachDebugger()
{
const wxString localAttach = m_DebuggerAttach;
const wxString localConfig = m_DebuggerConfig;
// Reset the values to prevent old values to be used when the user forgets to pass all required
// command line parameters.
m_DebuggerAttach = m_DebuggerConfig = wxString();
LogManager *logManager = Manager::Get()->GetLogManager();
if (localAttach.empty() || localConfig.empty())
{
if (localAttach.empty() != localConfig.empty())
{
logManager->LogError(
_("For attaching to work you need to provide both '--dbg-attach' and '--dbg-config'"));
logManager->Log(wxT(" --dbg-attach='") + localAttach + wxT("'"));
logManager->Log(wxT(" --dbg-config='") + localConfig + wxT("'"));
}
return;
}
logManager->Log(wxString::Format(_("Attach debugger '%s' to '%s'"), localConfig.wx_str(),
localAttach.wx_str()));
// Split the dbg-config to plugin name and config name
wxString::size_type pos = localConfig.find(wxT(':'));
if (pos == wxString::npos || pos == 0)
{
logManager->LogError(
_("No delimiter found. The --dbg-config format is 'plugin-name:config-name'"));
return;
}
const wxString pluginName = localConfig.substr(0, pos);
const wxString configName = localConfig.substr(pos + 1);
// Find the plugin and the config.
DebuggerManager *debuggerManager = Manager::Get()->GetDebuggerManager();
const DebuggerManager::RegisteredPlugins &debuggers = debuggerManager->GetAllDebuggers();
if (debuggers.empty())
{
logManager->LogError(_("No debugger plugins loaded!"));
return;
}
cbDebuggerPlugin *plugin = nullptr;
int configIndex = -1;
const DebuggerManager::PluginData *pluginData = nullptr;
for (const auto &info : debuggers)
{
if (info.first->GetSettingsName() == pluginName)
{
plugin = info.first;
pluginData = &info.second;
break;
}
}
if (!plugin)
{
logManager->LogError(wxString::Format(_("Debugger plugin '%s' not found!"),
pluginName.wx_str()));
logManager->Log(_("Available plugins:"));
for (const auto &info : debuggers)
{
cbDebuggerPlugin *p = info.first;
logManager->Log(wxString::Format(_(" '%s' (%s)"), p->GetSettingsName().wx_str(),
p->GetGUIName().wx_str()));
}
return;
}
const DebuggerManager::ConfigurationVector &configs = pluginData->GetConfigurations();
for (auto it = configs.begin(); it != configs.end(); ++it)
{
if ((*it)->GetName() == configName)
{
configIndex = std::distance(configs.begin(), it);
break;
}
}
if (configIndex == -1)
{
logManager->LogError(wxString::Format(_("Debugger configuration '%s' not found!"),
configName.wx_str()));
logManager->Log(_("Available configurations:"));
for (const cbDebuggerConfiguration *config : configs)
logManager->Log(wxString::Format(_(" '%s'"), config->GetName().wx_str()));
return;
}
// We have a debugger plugin and config, so lets try to attach...
logManager->Log(_("Debugger plugin and configuration found. Attaching!!!"));
plugin->SetActiveConfig(configIndex);
plugin->AttachToProcess(localAttach);
}