forked from qt-creator/qt-creator
Debugger: Don't hard code LLDB path on Linux
Change-Id: I7454f710d6ba57e9f6929cbdcfcbf269cf1f43c0 Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
9
share/qtcreator/dumper/lbridge.py
Executable file → Normal file
9
share/qtcreator/dumper/lbridge.py
Executable file → Normal file
@@ -1,4 +1,3 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import binascii
|
import binascii
|
||||||
import inspect
|
import inspect
|
||||||
@@ -7,10 +6,16 @@ import platform
|
|||||||
import threading
|
import threading
|
||||||
import select
|
import select
|
||||||
import sys
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
uname = platform.uname()[0]
|
uname = platform.uname()[0]
|
||||||
if uname == 'Linux':
|
if uname == 'Linux':
|
||||||
sys.path.append('/data/dev/llvm-git/build/Debug+Asserts/lib/python2.7/site-packages')
|
for arg in sys.argv[1:]:
|
||||||
|
# /data/dev/llvm-git-2/build/lib/python2.7/site-packages
|
||||||
|
proc = subprocess.Popen(args=[arg, "-P"], stdout=subprocess.PIPE)
|
||||||
|
path = proc.stdout.read().strip()
|
||||||
|
sys.path.append(path)
|
||||||
else:
|
else:
|
||||||
base = '/Applications/Xcode.app/Contents/'
|
base = '/Applications/Xcode.app/Contents/'
|
||||||
sys.path.append(base + 'SharedFrameworks/LLDB.framework/Resources/Python')
|
sys.path.append(base + 'SharedFrameworks/LLDB.framework/Resources/Python')
|
||||||
|
|||||||
@@ -121,8 +121,8 @@ void LldbEngine::setupEngine()
|
|||||||
{
|
{
|
||||||
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
|
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
|
||||||
|
|
||||||
m_lldbBridge = startParameters().debuggerCommand;
|
m_lldbCmd = startParameters().debuggerCommand;
|
||||||
showMessage(_("STARTING LLDB ") + m_lldbBridge);
|
showMessage(_("STARTING LLDB ") + m_lldbCmd);
|
||||||
|
|
||||||
connect(&m_lldbProc, SIGNAL(error(QProcess::ProcessError)),
|
connect(&m_lldbProc, SIGNAL(error(QProcess::ProcessError)),
|
||||||
SLOT(handleLldbError(QProcess::ProcessError)));
|
SLOT(handleLldbError(QProcess::ProcessError)));
|
||||||
@@ -136,12 +136,12 @@ void LldbEngine::setupEngine()
|
|||||||
connect(this, SIGNAL(outputReady(QByteArray)),
|
connect(this, SIGNAL(outputReady(QByteArray)),
|
||||||
SLOT(handleResponse(QByteArray)), Qt::QueuedConnection);
|
SLOT(handleResponse(QByteArray)), Qt::QueuedConnection);
|
||||||
|
|
||||||
//m_lldbProc.start(m_lldb);
|
m_lldbProc.start(_("python"), QStringList() << _("-i")
|
||||||
m_lldbProc.start(_("/usr/bin/python"), QStringList() << _("-i") << m_lldbBridge);
|
<< (Core::ICore::resourcePath() + _("/dumper/lbridge.py")) << m_lldbCmd);
|
||||||
|
|
||||||
if (!m_lldbProc.waitForStarted()) {
|
if (!m_lldbProc.waitForStarted()) {
|
||||||
const QString msg = tr("Unable to start lldb '%1': %2")
|
const QString msg = tr("Unable to start lldb '%1': %2")
|
||||||
.arg(m_lldbBridge, m_lldbProc.errorString());
|
.arg(m_lldbCmd, m_lldbProc.errorString());
|
||||||
notifyEngineSetupFailed();
|
notifyEngineSetupFailed();
|
||||||
showMessage(_("ADAPTER START FAILED"));
|
showMessage(_("ADAPTER START FAILED"));
|
||||||
if (!msg.isEmpty())
|
if (!msg.isEmpty())
|
||||||
@@ -695,7 +695,7 @@ QString LldbEngine::errorMessage(QProcess::ProcessError error) const
|
|||||||
return tr("The Lldb process failed to start. Either the "
|
return tr("The Lldb process failed to start. Either the "
|
||||||
"invoked program '%1' is missing, or you may have insufficient "
|
"invoked program '%1' is missing, or you may have insufficient "
|
||||||
"permissions to invoke the program.")
|
"permissions to invoke the program.")
|
||||||
.arg(m_lldbBridge);
|
.arg(m_lldbCmd);
|
||||||
case QProcess::Crashed:
|
case QProcess::Crashed:
|
||||||
return tr("The Lldb process crashed some time after starting "
|
return tr("The Lldb process crashed some time after starting "
|
||||||
"successfully.");
|
"successfully.");
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ private:
|
|||||||
QByteArray m_inbuffer;
|
QByteArray m_inbuffer;
|
||||||
QString m_scriptFileName;
|
QString m_scriptFileName;
|
||||||
QProcess m_lldbProc;
|
QProcess m_lldbProc;
|
||||||
QString m_lldbBridge;
|
QString m_lldbCmd;
|
||||||
|
|
||||||
// FIXME: Make generic.
|
// FIXME: Make generic.
|
||||||
int m_lastAgentId;
|
int m_lastAgentId;
|
||||||
|
|||||||
Reference in New Issue
Block a user