From fa492e53ec91f7f33f3d21370453aa9c13d837de Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 12:31:56 +0100
Subject: [PATCH 1/7] Fixes: correct path for gcbmnacros.cpp hint
---
src/plugins/debugger/gdbengine.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index e4b859d6c19..c8336c101c3 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -3338,7 +3338,7 @@ void GdbEngine::handleQueryDataDumper2(const GdbResultRecord &record)
tr("The debugged binary does not contain information needed for "
"nice display of Qt data types.\n\n"
"You might want to try including the file\n\n"
- ".../ide/main/bin/gdbmacros/gdbmacros.cpp'\n\n"
+ ".../share/qtcreator/gdbmacros/gdbmacros.cpp\n\n"
"into your project directly.")
);
} else {
From 1e946a2d327a5f68bc5038e2280871e0b7274fdb Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 12:44:46 +0100
Subject: [PATCH 2/7] Fixes: whitespace
---
src/plugins/coreplugin/welcomemode.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/plugins/coreplugin/welcomemode.h b/src/plugins/coreplugin/welcomemode.h
index 56899a4463c..e918f4ea065 100644
--- a/src/plugins/coreplugin/welcomemode.h
+++ b/src/plugins/coreplugin/welcomemode.h
@@ -72,8 +72,8 @@ public:
QString name() const;
QIcon icon() const;
int priority() const;
- QWidget* widget();
- const char* uniqueModeName() const;
+ QWidget *widget();
+ const char *uniqueModeName() const;
QList context() const;
void activated();
QString contextHelpId() const { return QLatin1String("Qt Creator"); }
From 9e2671c9a3d8cc86f9a79721dfa9a0690e1bdc94 Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 13:23:52 +0100
Subject: [PATCH 3/7] Fixes: remove "Lorem ipsum..."
---
src/plugins/coreplugin/html/welcome.html | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/plugins/coreplugin/html/welcome.html b/src/plugins/coreplugin/html/welcome.html
index c4e47d62118..6275a7d3149 100644
--- a/src/plugins/coreplugin/html/welcome.html
+++ b/src/plugins/coreplugin/html/welcome.html
@@ -40,8 +40,6 @@
developers to create graphically appealing applications for desktop,
embedded, and mobile devices. Click on Getting Started to
begin developing with Qt Creator.
-
From df16699ed9958584bb53e8790ccbcdc1e4b42dbb Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 14:17:25 +0100
Subject: [PATCH 4/7] Fixes: debugger: revert accidental parts of
b0650238
---
share/qtcreator/gdbmacros/gdbmacros.cpp | 2 +
src/plugins/debugger/gdbengine.cpp | 190 ++++++++++++------------
src/plugins/debugger/procinterrupt.cpp | 2 +-
3 files changed, 98 insertions(+), 96 deletions(-)
diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp
index 1da444113ea..ae006133509 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.cpp
+++ b/share/qtcreator/gdbmacros/gdbmacros.cpp
@@ -68,6 +68,7 @@ int qtGhVersion = QT_VERSION;
#include
#include
+#include
#ifdef Q_OS_WIN
# include
@@ -2484,6 +2485,7 @@ void qDumpObjectData440(
int extraInt2,
int extraInt3)
{
+ //sleep(20);
if (protocolVersion == 1) {
QDumper d;
d.protocolVersion = protocolVersion;
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index c8336c101c3..8a5398f01fe 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -3586,121 +3586,121 @@ void GdbEngine::handleDumpCustomValue2(const GdbResultRecord &record,
void GdbEngine::updateLocals()
{
-setTokenBarrier();
+ setTokenBarrier();
-m_pendingRequests = 0;
-PENDING_DEBUG("\nRESET PENDING");
-m_toolTipCache.clear();
-m_toolTipExpression.clear();
-qq->watchHandler()->reinitializeWatchers();
+ m_pendingRequests = 0;
+ PENDING_DEBUG("\nRESET PENDING");
+ m_toolTipCache.clear();
+ m_toolTipExpression.clear();
+ qq->watchHandler()->reinitializeWatchers();
-int level = currentFrame();
-// '2' is 'list with type and value'
-QString cmd = QString("-stack-list-arguments 2 %1 %2").arg(level).arg(level);
-sendSynchronizedCommand(cmd, StackListArguments); // stage 1/2
-// '2' is 'list with type and value'
-sendSynchronizedCommand("-stack-list-locals 2", StackListLocals); // stage 2/2
+ int level = currentFrame();
+ // '2' is 'list with type and value'
+ QString cmd = QString("-stack-list-arguments 2 %1 %2").arg(level).arg(level);
+ sendSynchronizedCommand(cmd, StackListArguments); // stage 1/2
+ // '2' is 'list with type and value'
+ sendSynchronizedCommand("-stack-list-locals 2", StackListLocals); // stage 2/2
}
void GdbEngine::handleStackListArguments(const GdbResultRecord &record)
{
-// stage 1/2
+ // stage 1/2
-// Linux:
-// 12^done,stack-args=
-// [frame={level="0",args=[
-// {name="argc",type="int",value="1"},
-// {name="argv",type="char **",value="(char **) 0x7..."}]}]
-// Mac:
-// 78^done,stack-args=
-// {frame={level="0",args={
-// varobj=
-// {exp="this",value="0x38a2fab0",name="var21",numchild="3",
-// type="CurrentDocumentFind * const",typecode="PTR",
-// dynamic_type="",in_scope="true",block_start_addr="0x3938e946",
-// block_end_addr="0x3938eb2d"},
-// varobj=
-// {exp="before",value="@0xbfffb9f8: {d = 0x3a7f2a70}",
-// name="var22",numchild="1",type="const QString ...} }}}
-//
-// In both cases, iterating over the children of stack-args/frame/args
-// is ok.
-m_currentFunctionArgs.clear();
-if (record.resultClass == GdbResultDone) {
- const GdbMi list = record.data.findChild("stack-args");
- const GdbMi frame = list.findChild("frame");
- const GdbMi args = frame.findChild("args");
- m_currentFunctionArgs = args.children();
-} else if (record.resultClass == GdbResultError) {
- qDebug() << "FIXME: GdbEngine::handleStackListArguments: should not happen";
-}
+ // Linux:
+ // 12^done,stack-args=
+ // [frame={level="0",args=[
+ // {name="argc",type="int",value="1"},
+ // {name="argv",type="char **",value="(char **) 0x7..."}]}]
+ // Mac:
+ // 78^done,stack-args=
+ // {frame={level="0",args={
+ // varobj=
+ // {exp="this",value="0x38a2fab0",name="var21",numchild="3",
+ // type="CurrentDocumentFind * const",typecode="PTR",
+ // dynamic_type="",in_scope="true",block_start_addr="0x3938e946",
+ // block_end_addr="0x3938eb2d"},
+ // varobj=
+ // {exp="before",value="@0xbfffb9f8: {d = 0x3a7f2a70}",
+ // name="var22",numchild="1",type="const QString ...} }}}
+ //
+ // In both cases, iterating over the children of stack-args/frame/args
+ // is ok.
+ m_currentFunctionArgs.clear();
+ if (record.resultClass == GdbResultDone) {
+ const GdbMi list = record.data.findChild("stack-args");
+ const GdbMi frame = list.findChild("frame");
+ const GdbMi args = frame.findChild("args");
+ m_currentFunctionArgs = args.children();
+ } else if (record.resultClass == GdbResultError) {
+ qDebug() << "FIXME: GdbEngine::handleStackListArguments: should not happen";
+ }
}
void GdbEngine::handleStackListLocals(const GdbResultRecord &record)
{
-// stage 2/2
+ // stage 2/2
-// There could be shadowed variables
-QList locals = record.data.findChild("locals").children();
-locals += m_currentFunctionArgs;
+ // There could be shadowed variables
+ QList locals = record.data.findChild("locals").children();
+ locals += m_currentFunctionArgs;
-setLocals(locals);
+ setLocals(locals);
}
void GdbEngine::setLocals(const QList &locals)
{
-//qDebug() << m_varToType;
-QHash seen;
+ //qDebug() << m_varToType;
+ QHash seen;
-foreach (const GdbMi &item, locals) {
- // Local variables of inlined code are reported as
- // 26^done,locals={varobj={exp="this",value="",name="var4",exp="this",
- // numchild="1",type="const QtSharedPointer::Basic 1)
- continue;
- QString name = item.findChild("exp").data();
- #else
- QString name = item.findChild("name").data();
- #endif
- int n = seen.value(name);
- if (n) {
- seen[name] = n + 1;
- WatchData data;
- data.iname = "local." + name + QString::number(n + 1);
- data.name = name + QString(" ").arg(n);
- //data.setValue("");
- setWatchDataValue(data, item.findChild("value"));
- data.setType("");
- data.setChildCount(0);
- insertData(data);
- } else {
- seen[name] = 1;
- WatchData data;
- data.iname = "local." + name;
- data.name = name;
- data.exp = name;
- data.framekey = m_currentFrame + data.name;
- setWatchDataType(data, item.findChild("type"));
- // set value only directly if it is simple enough, otherwise
- // pass through the insertData() machinery
- if (isIntOrFloatType(data.type) || isPointerType(data.type))
+ foreach (const GdbMi &item, locals) {
+ // Local variables of inlined code are reported as
+ // 26^done,locals={varobj={exp="this",value="",name="var4",exp="this",
+ // numchild="1",type="const QtSharedPointer::Basic 1)
+ continue;
+ QString name = item.findChild("exp").data();
+ #else
+ QString name = item.findChild("name").data();
+ #endif
+ int n = seen.value(name);
+ if (n) {
+ seen[name] = n + 1;
+ WatchData data;
+ data.iname = "local." + name + QString::number(n + 1);
+ data.name = name + QString(" ").arg(n);
+ //data.setValue("");
setWatchDataValue(data, item.findChild("value"));
- if (!qq->watchHandler()->isExpandedIName(data.iname))
- data.setChildrenUnneeded();
- if (isPointerType(data.type) || data.name == "this")
- data.setChildCount(1);
- if (0 && m_varToType.contains(data.framekey)) {
- qDebug() << "RE-USING " << m_varToType.value(data.framekey);
- data.setType(m_varToType.value(data.framekey));
+ data.setType("");
+ data.setChildCount(0);
+ insertData(data);
+ } else {
+ seen[name] = 1;
+ WatchData data;
+ data.iname = "local." + name;
+ data.name = name;
+ data.exp = name;
+ data.framekey = m_currentFrame + data.name;
+ setWatchDataType(data, item.findChild("type"));
+ // set value only directly if it is simple enough, otherwise
+ // pass through the insertData() machinery
+ if (isIntOrFloatType(data.type) || isPointerType(data.type))
+ setWatchDataValue(data, item.findChild("value"));
+ if (!qq->watchHandler()->isExpandedIName(data.iname))
+ data.setChildrenUnneeded();
+ if (isPointerType(data.type) || data.name == "this")
+ data.setChildCount(1);
+ if (0 && m_varToType.contains(data.framekey)) {
+ qDebug() << "RE-USING " << m_varToType.value(data.framekey);
+ data.setType(m_varToType.value(data.framekey));
+ }
+ insertData(data);
}
- insertData(data);
- }
}
}
diff --git a/src/plugins/debugger/procinterrupt.cpp b/src/plugins/debugger/procinterrupt.cpp
index 08f7d392805..824ccac41f1 100644
--- a/src/plugins/debugger/procinterrupt.cpp
+++ b/src/plugins/debugger/procinterrupt.cpp
@@ -161,7 +161,7 @@ bool Debugger::Internal::interruptProcess(int pID)
#else
int procId = pID;
if (procId != -1) {
- if (kill(procId, 2) == 0)
+ if (kill(procId, SIGINT) == 0)
return true;
}
From e033239d7b074a52b5fd0a13bc5c8e0814d88ac6 Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 14:39:31 +0100
Subject: [PATCH 5/7] Fixes: debugger: move custom dumper initialization
into the first watch view update
---
src/plugins/debugger/gdbengine.cpp | 56 +++++++++++++++++-------------
1 file changed, 32 insertions(+), 24 deletions(-)
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 8a5398f01fe..9e818be0d1a 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -1181,7 +1181,7 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data)
return;
}
- tryLoadCustomDumpers();
+ //tryLoadCustomDumpers();
// jump over well-known frames
static int stepCounter = 0;
@@ -3444,11 +3444,12 @@ void GdbEngine::handleEvaluateExpression(const GdbResultRecord &record,
void GdbEngine::handleDumpCustomSetup(const GdbResultRecord &record)
{
- qDebug() << "CUSTOM SETUP RESULT: " << record.toString();
+ //qDebug() << "CUSTOM SETUP RESULT: " << record.toString();
if (record.resultClass == GdbResultDone) {
} else if (record.resultClass == GdbResultError) {
QString msg = record.data.findChild("msg").data();
- qDebug() << "CUSTOM DUMPER SETUP ERROR MESSAGE: " << msg;
+ //qDebug() << "CUSTOM DUMPER SETUP ERROR MESSAGE: " << msg;
+ q->showStatusMessage(tr("Custom dumper setup: %1").arg(msg), 10000);
}
}
@@ -3589,6 +3590,7 @@ void GdbEngine::updateLocals()
setTokenBarrier();
m_pendingRequests = 0;
+
PENDING_DEBUG("\nRESET PENDING");
m_toolTipCache.clear();
m_toolTipExpression.clear();
@@ -3600,6 +3602,8 @@ void GdbEngine::updateLocals()
sendSynchronizedCommand(cmd, StackListArguments); // stage 1/2
// '2' is 'list with type and value'
sendSynchronizedCommand("-stack-list-locals 2", StackListLocals); // stage 2/2
+
+ tryLoadCustomDumpers();
}
void GdbEngine::handleStackListArguments(const GdbResultRecord &record)
@@ -3958,15 +3962,17 @@ void GdbEngine::tryLoadCustomDumpers()
QString lib = q->m_buildDir + "/qtc-gdbmacros/libgdbmacros.so";
if (QFileInfo(lib).isExecutable()) {
//sendCommand("p dlopen");
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 0");
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 0");
QString flag = QString::number(RTLD_NOW);
- sendCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")");
+ sendSynchronizedCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")",
+ WatchDumpCustomSetup);
// some older systems like CentOS 4.6 prefer this:
- sendCommand("call (void)__dlopen(\"" + lib + "\", " + flag + ")");
- sendCommand("sharedlibrary " + dotEscape(lib));
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 1");
+ sendSynchronizedCommand("call (void)__dlopen(\"" + lib + "\", " + flag + ")",
+ WatchDumpCustomSetup);
+ sendSynchronizedCommand("sharedlibrary " + dotEscape(lib));
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 1");
} else {
qDebug() << "DEBUG HELPER LIBRARY IS NOT USABLE: "
<< lib << QFileInfo(lib).isExecutable();
@@ -3976,13 +3982,14 @@ void GdbEngine::tryLoadCustomDumpers()
QString lib = q->m_buildDir + "/qtc-gdbmacros/libgdbmacros.dylib";
if (QFileInfo(lib).isExecutable()) {
//sendCommand("p dlopen"); // FIXME: remove me
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 0");
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 0");
QString flag = QString::number(RTLD_NOW);
- sendCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")");
- sendCommand("sharedlibrary " + dotEscape(lib));
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 1");
+ sendSyncronizedCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")",
+ WatchDumpCustomSetup);
+ sendSyncronizedCommand("sharedlibrary " + dotEscape(lib));
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 1");
} else {
qDebug() << "DEBUG HELPER LIBRARY IS NOT USABLE: "
<< lib << QFileInfo(lib).isExecutable();
@@ -3991,14 +3998,15 @@ void GdbEngine::tryLoadCustomDumpers()
#if defined(Q_OS_WIN)
QString lib = q->m_buildDir + "/qtc-gdbmacros/debug/gdbmacros.dll";
if (QFileInfo(lib).exists()) {
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 0");
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 0");
//sendCommand("handle SIGSEGV pass stop print");
//sendCommand("set unwindonsignal off");
- sendCommand("call LoadLibraryA(\"" + lib + "\")");
- sendCommand("sharedlibrary " + dotEscape(lib));
- if (qq->useFastStart())
- sendCommand("set stop-on-solib-events 1");
+ sendSyncronizedCommand("call LoadLibraryA(\"" + lib + "\")",
+ WatchDumpCustomSetup);
+ sendSyncronizedCommand("sharedlibrary " + dotEscape(lib));
+ //if (qq->useFastStart())
+ // sendCommand("set stop-on-solib-events 1");
} else {
qDebug() << "DEBUG HELPER LIBRARY IS NOT USABLE: "
<< lib << QFileInfo(lib).isExecutable();
@@ -4006,9 +4014,9 @@ void GdbEngine::tryLoadCustomDumpers()
#endif
// retreive list of dumpable classes
- sendCommand("call qDumpObjectData440(1,%1+1,0,0,0,0,0,0)",
+ sendSynchronizedCommand("call qDumpObjectData440(1,%1+1,0,0,0,0,0,0)",
GdbQueryDataDumper1);
- sendCommand("p (char*)qDumpOutBuffer", GdbQueryDataDumper2);
+ sendSynchronizedCommand("p (char*)qDumpOutBuffer", GdbQueryDataDumper2);
}
From dddd905bc77301db7a52ce9fe4a7ed9331eef590 Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 14:52:29 +0100
Subject: [PATCH 6/7] Fixes: debugger: procinterrupt logic
---
src/plugins/debugger/procinterrupt.cpp | 66 +++++++++++++++-----------
1 file changed, 38 insertions(+), 28 deletions(-)
diff --git a/src/plugins/debugger/procinterrupt.cpp b/src/plugins/debugger/procinterrupt.cpp
index 824ccac41f1..47a309deac8 100644
--- a/src/plugins/debugger/procinterrupt.cpp
+++ b/src/plugins/debugger/procinterrupt.cpp
@@ -33,7 +33,8 @@
#include "procinterrupt.h"
-#ifdef Q_OS_WIN
+#if defined(Q_OS_WIN)
+
#include
#include
@@ -75,7 +76,37 @@ DWORD findProcessId(DWORD parentId)
CloseHandle(hProcList);
return procId;
}
-#else
+
+bool Debugger::Internal::interruptProcess(int pID)
+{
+ DWORD pid = pID;
+ if (!pid)
+ return false;
+
+ PtrCreateRemoteThread libFunc = resolveCreateRemoteThread();
+ if (libFunc) {
+ DWORD dwThreadId = 0;
+ HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
+ HANDLE hthread = libFunc(hproc, NULL, 0, (LPTHREAD_START_ROUTINE)DebugBreak, 0, 0, &dwThreadId);
+ CloseHandle(hthread);
+ if (dwThreadId)
+ return true;
+ }
+
+ return false;
+}
+
+bool Debugger::Internal::interruptChildProcess(Q_PID parentPID)
+{
+ DWORD pid = findProcessId(parentPID->dwProcessId);
+ return interruptProcess(pid);
+}
+
+#endif // defined(Q_OS_WIN)
+
+
+
+#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
#include
#include
@@ -89,12 +120,14 @@ DWORD findProcessId(DWORD parentId)
#include
-#define OPProcessValueUnknown UINT_MAX
+
+using namespace Debugger::Internal;
/* Mac OS X
int OPParentIDForProcessID(int pid)
// Returns the parent process id for the given process id (pid)
{
+ const uint OPProcessValueUnknown = UINT_MAX;
struct kinfo_proc info;
size_t length = sizeof(struct kinfo_proc);
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
@@ -140,44 +173,21 @@ int findChildProcess(int parentId)
return -1;
}
-#endif
-
bool Debugger::Internal::interruptProcess(int pID)
{
-#ifdef Q_OS_WIN
- DWORD pid = pID;
- if (!pid)
- return false;
-
- PtrCreateRemoteThread libFunc = resolveCreateRemoteThread();
- if (libFunc) {
- DWORD dwThreadId = 0;
- HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
- HANDLE hthread = libFunc(hproc, NULL, 0, (LPTHREAD_START_ROUTINE)DebugBreak, 0, 0, &dwThreadId);
- CloseHandle(hthread);
- if (dwThreadId)
- return true;
- }
-#else
int procId = pID;
if (procId != -1) {
if (kill(procId, SIGINT) == 0)
return true;
}
-
-#endif
-
return false;
}
bool Debugger::Internal::interruptChildProcess(Q_PID parentPID)
{
-#ifdef WIN32
- DWORD pid = findProcessId(parentPID->dwProcessId);
- return interruptProcess(pid);
-#else
int procId = findChildProcess(parentPID);
//qDebug() << "INTERRUPTING PROCESS" << procId;
return interruptProcess(procId);
-#endif
}
+
+#endif // defined(Q_OS_LINUX) || defined(Q_OS_MAC)
From c9a54c975d004916669d3a3ef062e3c0b2c21512 Mon Sep 17 00:00:00 2001
From: hjk
Date: Wed, 11 Feb 2009 16:05:46 +0100
Subject: [PATCH 7/7] Fixes: compile fix mac/win
---
src/plugins/debugger/gdbengine.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 9e818be0d1a..f6413db72f9 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -3985,9 +3985,9 @@ void GdbEngine::tryLoadCustomDumpers()
//if (qq->useFastStart())
// sendCommand("set stop-on-solib-events 0");
QString flag = QString::number(RTLD_NOW);
- sendSyncronizedCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")",
+ sendSynchronizedCommand("call (void)dlopen(\"" + lib + "\", " + flag + ")",
WatchDumpCustomSetup);
- sendSyncronizedCommand("sharedlibrary " + dotEscape(lib));
+ sendSynchronizedCommand("sharedlibrary " + dotEscape(lib));
//if (qq->useFastStart())
// sendCommand("set stop-on-solib-events 1");
} else {
@@ -4002,9 +4002,9 @@ void GdbEngine::tryLoadCustomDumpers()
// sendCommand("set stop-on-solib-events 0");
//sendCommand("handle SIGSEGV pass stop print");
//sendCommand("set unwindonsignal off");
- sendSyncronizedCommand("call LoadLibraryA(\"" + lib + "\")",
+ sendSynchronizedCommand("call LoadLibraryA(\"" + lib + "\")",
WatchDumpCustomSetup);
- sendSyncronizedCommand("sharedlibrary " + dotEscape(lib));
+ sendSynchronizedCommand("sharedlibrary " + dotEscape(lib));
//if (qq->useFastStart())
// sendCommand("set stop-on-solib-events 1");
} else {