In the debuggermanager.cpp the function cbDetectDebuggerExecutable has hard coded windows search paths that should not be there. The paths searched should use a similar algorith like the compiler autodetection where it uses the compiler xml file that has the search info in it.
This fails when calling with "lldb" as it does not look in the compiler directory....
wxString cbDetectDebuggerExecutable(const wxString &exeName)
{
wxString exeExt(platform::windows ? wxT(".exe") : wxEmptyString);
wxString exePath = cbFindFileInPATH(exeName);
wxChar sep = wxFileName::GetPathSeparator();
if (exePath.empty())
{
if (!platform::windows)
exePath = wxT("/usr/bin/") + exeName + exeExt;
else
{
const wxString &cbInstallFolder = ConfigManager::GetExecutableFolder();
if (wxFileExists(cbInstallFolder + sep + wxT("MINGW") + sep + wxT("bin") + sep + exeName + exeExt))
exePath = cbInstallFolder + sep + wxT("MINGW") + sep + wxT("bin");
else
{
exePath = wxT("C:\\MinGW\\bin");
if (!wxDirExists(exePath))
exePath = wxT("C:\\MinGW32\\bin");
}
}
}
if (!wxDirExists(exePath))
return wxEmptyString;
return exePath + wxFileName::GetPathSeparator() + exeName + exeExt;
}
Even worse the code does not append the exeExt before calling cbFindFileInPATH for windows, so it is even worse under windows as the GDB debugger calls it as follows:
return !result.empty() ? result : cbDetectDebuggerExecutable(wxT("gdb"));