Debugger: Fix LD_PRELOAD on Mac.

Reviewed-by: hjk <qtc-committer@nokia.com>
This commit is contained in:
Friedemann Kleint
2009-11-03 16:02:16 +01:00
parent c8e7df16eb
commit a6d099a1ea
3 changed files with 14 additions and 2 deletions

View File

@@ -57,6 +57,12 @@ const char * const DEBUGGER_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("Debugger", "D
namespace Internal { namespace Internal {
enum { debug = 0 }; enum { debug = 0 };
#ifdef Q_OS_MAC
const char * const LD_PRELOAD_ENV_VAR = "DYLD_INSERT_LIBRARIES";
#else
const char * const LD_PRELOAD_ENV_VAR = "LD_PRELOAD";
#endif
} }
} // namespace Constants } // namespace Constants

View File

@@ -4328,7 +4328,10 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
} }
if (m_gdbAdapter->dumperHandling() == AbstractGdbAdapter::DumperLoadedByGdbPreload if (m_gdbAdapter->dumperHandling() == AbstractGdbAdapter::DumperLoadedByGdbPreload
&& checkDebuggingHelpers()) { && checkDebuggingHelpers()) {
const QString cmd = QLatin1String("set environment LD_PRELOAD ") + manager()->qtDumperLibraryName(); QString cmd = _("set environment ");
cmd += _(Debugger::Constants::Internal::LD_PRELOAD_ENV_VAR);
cmd += _c(' ');
cmd += manager()->qtDumperLibraryName();
postCommand(cmd); postCommand(cmd);
m_debuggingHelperState = DebuggingHelperLoadTried; m_debuggingHelperState = DebuggingHelperLoadTried;
} }

View File

@@ -95,7 +95,10 @@ void TermGdbAdapter::startAdapter()
QStringList environment = startParameters().environment; QStringList environment = startParameters().environment;
if (dumperHandling() == DumperLoadedByGdbPreload if (dumperHandling() == DumperLoadedByGdbPreload
&& m_engine->checkDebuggingHelpers()) { && m_engine->checkDebuggingHelpers()) {
environment.push_back(QLatin1String("LD_PRELOAD=") + m_engine->qtDumperLibraryName()); QString var = QLatin1String(Debugger::Constants::Internal::LD_PRELOAD_ENV_VAR);
var += QLatin1Char('=');
var += m_engine->qtDumperLibraryName();
environment.push_back(var);
m_engine->setDebuggingHelperState(DebuggingHelperLoadTried); m_engine->setDebuggingHelperState(DebuggingHelperLoadTried);
} }
m_stubProc.setEnvironment(environment); m_stubProc.setEnvironment(environment);