debugger: fix dumper loading on mac

This commit is contained in:
hjk
2010-02-08 13:02:07 +01:00
parent 0bde89eee3
commit eb60cf1d58

View File

@@ -41,6 +41,10 @@
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#if !defined(Q_OS_WIN)
#include <dlfcn.h>
#endif
#define PRECONDITION QTC_ASSERT(!hasPython(), /**/)
#define CB(callback) &GdbEngine::callback, STRINGIFY(callback)
@@ -513,14 +517,17 @@ void GdbEngine::tryLoadDebuggingHelpersClassic()
dlopenLib = startParameters().remoteDumperLib.toLocal8Bit();
else
dlopenLib = manager()->qtDumperLibraryName().toLocal8Bit();
#if defined(Q_OS_WIN)
// We are using Python on Windows.
// Do not use STRINGIFY as we really want to expand that to a number.
const QByteArray flag = QByteArray::number(RTLD_NOW);
#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
// We are using Python on Windows and Symbian.
QTC_ASSERT(false, /**/);
#elif defined(Q_OS_MAC)
//postCommand("sharedlibrary libc"); // for malloc
//postCommand("sharedlibrary libdl"); // for dlopen
postCommand("call (void)dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ "\", " STRINGIFY(RTLD_NOW) ")",
+ "\", " + flag + ")",
CB(handleDebuggingHelperSetup));
//postCommand("sharedlibrary " + dotEscape(dlopenLib));
#else
@@ -528,11 +535,11 @@ void GdbEngine::tryLoadDebuggingHelpersClassic()
postCommand("sharedlibrary libc"); // for malloc
postCommand("sharedlibrary libdl"); // for dlopen
postCommand("call (void*)dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ "\", " STRINGIFY(RTLD_NOW) ")",
+ "\", " + flag + ")",
CB(handleDebuggingHelperSetup));
// some older systems like CentOS 4.6 prefer this:
postCommand("call (void*)__dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ "\", " STRINGIFY(RTLD_NOW) ")",
+ "\", " + flag + ")",
CB(handleDebuggingHelperSetup));
postCommand("sharedlibrary " + dotEscape(dlopenLib));
#endif