summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/debugger/breakhandler.cpp14
-rw-r--r--src/plugins/debugger/breakhandler.h36
-rw-r--r--src/plugins/debugger/cdb/cdbassembler.cpp2
-rw-r--r--src/plugins/debugger/cdb/cdbbreakpoint.cpp2
-rw-r--r--src/plugins/debugger/cdb/cdbdebugengine.cpp4
-rw-r--r--src/plugins/debugger/cdb/cdbstackframecontext.cpp2
-rw-r--r--src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp6
-rw-r--r--src/plugins/debugger/cdb/cdbsymbolgroupcontext_tpl.h2
-rw-r--r--src/plugins/debugger/gdb/attachgdbadapter.cpp2
-rw-r--r--src/plugins/debugger/gdb/coregdbadapter.cpp11
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp633
-rw-r--r--src/plugins/debugger/gdb/gdbengine.h12
-rw-r--r--src/plugins/debugger/gdb/plaingdbadapter.cpp16
-rw-r--r--src/plugins/debugger/gdb/remotegdbadapter.cpp29
-rw-r--r--src/plugins/debugger/gdb/termgdbadapter.cpp5
-rw-r--r--src/plugins/debugger/gdb/trkgdbadapter.cpp12
-rw-r--r--src/plugins/debugger/registerhandler.h4
-rw-r--r--src/plugins/debugger/script/scriptengine.cpp8
-rw-r--r--src/plugins/debugger/watchhandler.cpp59
-rw-r--r--src/plugins/debugger/watchhandler.h42
-rw-r--r--src/plugins/debugger/watchutils.cpp65
-rw-r--r--src/plugins/debugger/watchutils.h3
22 files changed, 498 insertions, 471 deletions
diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index b207360bd7..b77c26d9f8 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -139,7 +139,7 @@ public:
}
}
}
- m_data->lineNumber = QString::number(lineNumber);
+ m_data->lineNumber = QByteArray::number(lineNumber);
m_data->handler()->updateMarkers();
}
@@ -386,13 +386,13 @@ void BreakHandler::loadBreakpoints()
data->fileName = v.toString();
v = map.value(QLatin1String("linenumber"));
if (v.isValid())
- data->lineNumber = v.toString();
+ data->lineNumber = v.toString().toLatin1();
v = map.value(QLatin1String("condition"));
if (v.isValid())
- data->condition = v.toString();
+ data->condition = v.toString().toLatin1();
v = map.value(QLatin1String("ignorecount"));
if (v.isValid())
- data->ignoreCount = v.toInt();
+ data->ignoreCount = v.toString().toLatin1();
v = map.value(QLatin1String("funcname"));
if (v.isValid())
data->funcName = v.toString();
@@ -561,7 +561,7 @@ bool BreakHandler::setData(const QModelIndex &mi, const QVariant &value, int rol
case 4: {
QString val = value.toString();
if (val != data->condition) {
- data->condition = val;
+ data->condition = val.toLatin1();
dataChanged(mi, mi);
}
return true;
@@ -569,7 +569,7 @@ bool BreakHandler::setData(const QModelIndex &mi, const QVariant &value, int rol
case 5: {
QString val = value.toString();
if (val != data->ignoreCount) {
- data->ignoreCount = val;
+ data->ignoreCount = val.toLatin1();
dataChanged(mi, mi);
}
return true;
@@ -660,7 +660,7 @@ void BreakHandler::setBreakpoint(const QString &fileName, int lineNumber)
BreakpointData *data = new BreakpointData(this);
data->fileName = fileName;
- data->lineNumber = QString::number(lineNumber);
+ data->lineNumber = QByteArray::number(lineNumber);
data->pending = true;
data->markerFileName = fileName;
data->markerLineNumber = lineNumber;
diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h
index 75058ffc64..7127c4180a 100644
--- a/src/plugins/debugger/breakhandler.h
+++ b/src/plugins/debugger/breakhandler.h
@@ -69,30 +69,30 @@ private:
BreakpointData(const BreakpointData &);
// Our owner
- BreakHandler *m_handler; // not owned.
+ BreakHandler *m_handler; // not owned.
public:
- bool enabled; // should we talk to the debugger engine?
- bool pending; // does the debugger engine know about us already?
+ bool enabled; // should we talk to the debugger engine?
+ bool pending; // does the debugger engine know about us already?
// this "user requested information". will get stored in the session
- QString fileName; // short name of source file
- QString condition; // condition associated with breakpoint
- QString ignoreCount; // ignore count associated with breakpoint
- QString lineNumber; // line in source file
- QString funcName; // name of containing function
- bool useFullPath; // should we use the full path when setting the bp?
+ QString fileName; // short name of source file
+ QByteArray condition; // condition associated with breakpoint
+ QByteArray ignoreCount; // ignore count associated with breakpoint
+ QByteArray lineNumber; // line in source file
+ QString funcName; // name of containing function
+ bool useFullPath; // should we use the full path when setting the bp?
// this is what gdb produced in response
- QString bpNumber; // breakpoint number assigned by the debugger engine
- QString bpCondition; // condition acknowledged by the debugger engine
- QString bpIgnoreCount; // ignore count acknowledged by the debugger engine
- QString bpFileName; // file name acknowledged by the debugger engine
- QString bpLineNumber; // line number acknowledged by the debugger engine
- QString bpFuncName; // function name acknowledged by the debugger engine
- QString bpAddress; // address acknowledged by the debugger engine
- bool bpMultiple; // happens in constructors/gdb
- bool bpEnabled; // enable/disable command sent
+ QByteArray bpNumber; // breakpoint number assigned by the debugger engine
+ QByteArray bpCondition; // condition acknowledged by the debugger engine
+ QByteArray bpIgnoreCount;// ignore count acknowledged by the debugger engine
+ QString bpFileName; // file name acknowledged by the debugger engine
+ QByteArray bpLineNumber; // line number acknowledged by the debugger engine
+ QString bpFuncName; // function name acknowledged by the debugger engine
+ QString bpAddress; // address acknowledged by the debugger engine
+ bool bpMultiple; // happens in constructors/gdb
+ bool bpEnabled; // enable/disable command sent
// taken from either user input or gdb responses
QString markerFileName; // used to locate the marker
diff --git a/src/plugins/debugger/cdb/cdbassembler.cpp b/src/plugins/debugger/cdb/cdbassembler.cpp
index 1e27cf53f3..43d698ab62 100644
--- a/src/plugins/debugger/cdb/cdbassembler.cpp
+++ b/src/plugins/debugger/cdb/cdbassembler.cpp
@@ -84,7 +84,7 @@ bool getRegisters(CIDebugControl *ctl,
return false;
}
Register reg;
- reg.name = QString::fromUtf16(reinterpret_cast<const ushort *>(wszBuf));
+ reg.name = QString::fromUtf16(reinterpret_cast<const ushort *>(wszBuf)).toLatin1();
registers->push_back(reg);
}
// get values
diff --git a/src/plugins/debugger/cdb/cdbbreakpoint.cpp b/src/plugins/debugger/cdb/cdbbreakpoint.cpp
index 4393c6a361..9ec69d3be3 100644
--- a/src/plugins/debugger/cdb/cdbbreakpoint.cpp
+++ b/src/plugins/debugger/cdb/cdbbreakpoint.cpp
@@ -564,7 +564,7 @@ bool CDBBreakPoint::synchronizeBreakPoints(CIDebugControl* debugControl,
handler->takeInsertedBreakPoint(nbd);
updateMarkers = true;
nbd->pending = false;
- nbd->bpNumber = QString::number(id);
+ nbd->bpNumber = QByteArray::number(uint(id));
nbd->bpAddress = QLatin1String("0x") + QString::number(address, 16);
// Take over rest as is
nbd->bpCondition = nbd->condition;
diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp
index 5404180404..fc4d0136fb 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.cpp
+++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp
@@ -985,7 +985,7 @@ void CdbDebugEngine::updateWatchData(const WatchData &incomplete)
qDebug() << Q_FUNC_INFO << "\n " << incomplete.toString();
WatchHandler *watchHandler = manager()->watchHandler();
- if (incomplete.iname.startsWith(QLatin1String("watch."))) {
+ if (incomplete.iname.startsWith("watch.")) {
WatchData watchData = incomplete;
evaluateWatcher(&watchData);
watchHandler->insertData(watchData);
@@ -1311,7 +1311,7 @@ void CdbDebugEngine::assignValueInDebugger(const QString &expr, const QString &v
break;
// Update view
WatchHandler *watchHandler = manager()->watchHandler();
- if (WatchData *fwd = watchHandler->findItem(expr)) {
+ if (WatchData *fwd = watchHandler->findItem(expr.toLatin1())) {
fwd->setValue(newValue);
watchHandler->insertData(*fwd);
watchHandler->updateWatchers();
diff --git a/src/plugins/debugger/cdb/cdbstackframecontext.cpp b/src/plugins/debugger/cdb/cdbstackframecontext.cpp
index f64f0366a1..46e6aadefc 100644
--- a/src/plugins/debugger/cdb/cdbstackframecontext.cpp
+++ b/src/plugins/debugger/cdb/cdbstackframecontext.cpp
@@ -230,7 +230,7 @@ bool WatchHandleDumperInserter::expandPointerToDumpable(const WatchData &wd, QSt
derefedWd.setType(type);
derefedWd.setAddress(hexAddrS);
derefedWd.name = QString(QLatin1Char('*'));
- derefedWd.iname = wd.iname + QLatin1String(".*");
+ derefedWd.iname = wd.iname + ".*";
derefedWd.source = OwnerDumper | CdbStackFrameContext::ChildrenKnownBit;
const CdbDumperHelper::DumpResult dr = m_dumper->dumpType(derefedWd, true, &m_dumperResult, errorMessage);
if (dr != CdbDumperHelper::DumpOk)
diff --git a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
index b37c821889..4466cac0da 100644
--- a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
+++ b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
@@ -470,11 +470,11 @@ static inline QString fixValue(const QString &value, const QString &type)
WatchData CdbSymbolGroupContext::watchDataAt(unsigned long index) const
{
WatchData wd;
- wd.iname = symbolINameAt(index);
+ wd.iname = symbolINameAt(index).toLatin1();
wd.exp = wd.iname;
// Determine name from iname and format shadowed variables correctly
// as "<shadowed X>, see populateINameIndexMap().
- const int lastDelimiterPos = wd.iname.lastIndexOf(m_nameDelimiter);
+ const int lastDelimiterPos = wd.iname.lastIndexOf(m_nameDelimiter.toLatin1());
QString name = lastDelimiterPos == -1 ? wd.iname : wd.iname.mid(lastDelimiterPos + 1);
int shadowedNumber = 0;
const int shadowedPos = name.lastIndexOf(QLatin1Char(iNameShadowDelimiter));
@@ -486,7 +486,7 @@ WatchData CdbSymbolGroupContext::watchDataAt(unsigned long index) const
// (std::map extends std::tree<>... Remove them for display only.
const QString fullShadowedName = WatchData::shadowedName(name, shadowedNumber);
wd.name = WatchData::shadowedName(removeInnerTemplateType(name), shadowedNumber);
- wd.addr = hexSymbolOffset(m_symbolGroup, index);
+ wd.addr = hexSymbolOffset(m_symbolGroup, index).toLatin1();
const QString type = getSymbolString(m_symbolGroup, &IDebugSymbolGroup2::GetSymbolTypeNameWide, index);
wd.setType(type);
// Check for unitialized variables at level 0 only.
diff --git a/src/plugins/debugger/cdb/cdbsymbolgroupcontext_tpl.h b/src/plugins/debugger/cdb/cdbsymbolgroupcontext_tpl.h
index fe33e802b6..0ae6be3353 100644
--- a/src/plugins/debugger/cdb/cdbsymbolgroupcontext_tpl.h
+++ b/src/plugins/debugger/cdb/cdbsymbolgroupcontext_tpl.h
@@ -137,7 +137,7 @@ bool insertSymbolRecursion(WatchData wd,
return false;
} else {
const QString msg = QString::fromLatin1("WARNING: Skipping invalid child symbol #%2 (type %3) of '%4'.").
- arg(QLatin1String(Q_FUNC_INFO)).arg(c).arg(cwd.type, wd.iname);
+ arg(QLatin1String(Q_FUNC_INFO)).arg(c).arg(cwd.type, QString::fromLatin1(wd.iname));
qWarning("%s\n", qPrintable(msg));
}
}
diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index 2810ef23d9..d4f7c869f4 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp
@@ -70,7 +70,7 @@ void AttachGdbAdapter::startInferior()
{
QTC_ASSERT(state() == InferiorStarting, qDebug() << state());
const qint64 pid = startParameters().attachPID;
- m_engine->postCommand(_("attach %1").arg(pid), CB(handleAttach));
+ m_engine->postCommand("attach " + QByteArray::number(pid), CB(handleAttach));
// Task 254674 does not want to remove them
//qq->breakHandler()->removeAllBreakpoints();
}
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index e64abf9af3..9e2556649b 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -97,8 +97,9 @@ void CoreGdbAdapter::loadExeAndSyms()
{
// Do that first, otherwise no symbols are loaded.
QFileInfo fi(m_executable);
- m_engine->postCommand(_("-file-exec-and-symbols \"%1\"")
- .arg(fi.absoluteFilePath()), CB(handleFileExecAndSymbols));
+ QByteArray path = fi.absoluteFilePath().toLocal8Bit();
+ m_engine->postCommand("-file-exec-and-symbols \"" + path + '"',
+ CB(handleFileExecAndSymbols));
}
void CoreGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response)
@@ -118,8 +119,8 @@ void CoreGdbAdapter::loadCoreFile()
{
// Quoting core name below fails in gdb 6.8-debian.
QFileInfo fi(startParameters().coreFile);
- QString coreName = fi.absoluteFilePath();
- m_engine->postCommand(_("target core ") + coreName, CB(handleTargetCore));
+ QByteArray coreName = fi.absoluteFilePath().toLocal8Bit();
+ m_engine->postCommand("target core " + coreName, CB(handleTargetCore));
}
void CoreGdbAdapter::handleTargetCore(const GdbResponse &response)
@@ -144,7 +145,7 @@ void CoreGdbAdapter::handleTargetCore(const GdbResponse &response)
if (QFile::exists(m_executable)) {
// Finish extra round ...
showStatusMessage(tr("Attached to core temporarily."));
- m_engine->postCommand(_("detach"));
+ m_engine->postCommand("detach");
// ... and retry.
loadExeAndSyms();
return;
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 93eaa08a7d..9ee2f67310 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -139,6 +139,12 @@ static int &currentToken()
return token;
}
+static bool isAccessSpecifier(const QByteArray &ba)
+{
+ return ba == "private" || ba == "protected" || ba == "public";
+}
+
+
// reads a MI-encoded item frome the consolestream
static bool parseConsoleStream(const GdbResponse &response, GdbMi *contents)
{
@@ -688,13 +694,13 @@ void GdbEngine::maybeHandleInferiorPidChanged(const QString &pid0)
tryLoadDebuggingHelpers();
}
-void GdbEngine::postCommand(const QString &command, AdapterCallback callback,
+void GdbEngine::postCommand(const QByteArray &command, AdapterCallback callback,
const char *callbackName, const QVariant &cookie)
{
postCommand(command, NoFlags, callback, callbackName, cookie);
}
-void GdbEngine::postCommand(const QString &command, GdbCommandFlags flags,
+void GdbEngine::postCommand(const QByteArray &command, GdbCommandFlags flags,
AdapterCallback callback,
const char *callbackName, const QVariant &cookie)
{
@@ -707,13 +713,13 @@ void GdbEngine::postCommand(const QString &command, GdbCommandFlags flags,
postCommandHelper(cmd);
}
-void GdbEngine::postCommand(const QString &command, GdbCommandCallback callback,
+void GdbEngine::postCommand(const QByteArray &command, GdbCommandCallback callback,
const char *callbackName, const QVariant &cookie)
{
postCommand(command, NoFlags, callback, callbackName, cookie);
}
-void GdbEngine::postCommand(const QString &command, GdbCommandFlags flags,
+void GdbEngine::postCommand(const QByteArray &command, GdbCommandFlags flags,
GdbCommandCallback callback, const char *callbackName,
const QVariant &cookie)
{
@@ -731,7 +737,7 @@ void GdbEngine::postCommandHelper(const GdbCommand &cmd)
if (!stateAcceptsGdbCommands(state())) {
PENDING_DEBUG(_("NO GDB PROCESS RUNNING, CMD IGNORED: ") + cmd.command);
debugMessage(_("NO GDB PROCESS RUNNING, CMD IGNORED: %1 %2")
- .arg(cmd.command).arg(state()));
+ .arg(_(cmd.command)).arg(state()));
return;
}
@@ -751,7 +757,7 @@ void GdbEngine::postCommandHelper(const GdbCommand &cmd)
flushCommand(cmd);
} else {
// Queue the commands that we cannot send at once.
- debugMessage(_("QUEUING COMMAND ") + cmd.command);
+ debugMessage(_("QUEUING COMMAND " + cmd.command));
m_commandsToRunOnTemporaryBreak.append(cmd);
if (state() == InferiorStopping) {
if (cmd.flags & LosesChild)
@@ -782,8 +788,8 @@ void GdbEngine::flushQueuedCommands()
showStatusMessage(tr("Processing queued commands."), 1000);
while (!m_commandsToRunOnTemporaryBreak.isEmpty()) {
GdbCommand cmd = m_commandsToRunOnTemporaryBreak.takeFirst();
- debugMessage(_("RUNNING QUEUED COMMAND %1 %2")
- .arg(cmd.command).arg(_(cmd.callbackName)));
+ debugMessage(_("RUNNING QUEUED COMMAND " + cmd.command + ' '
+ + cmd.callbackName));
flushCommand(cmd);
}
}
@@ -792,18 +798,18 @@ void GdbEngine::flushCommand(const GdbCommand &cmd0)
{
GdbCommand cmd = cmd0;
if (state() == DebuggerNotReady) {
- gdbInputAvailable(LogInput, cmd.command);
- debugMessage(_("GDB PROCESS NOT RUNNING, PLAIN CMD IGNORED: ") + cmd.command);
+ gdbInputAvailable(LogInput, _(cmd.command));
+ debugMessage(_("GDB PROCESS NOT RUNNING, PLAIN CMD IGNORED: " + cmd.command));
return;
}
++currentToken();
cmd.postTime = QTime::currentTime();
m_cookieForToken[currentToken()] = cmd;
- cmd.command = QString::number(currentToken()) + cmd.command;
- gdbInputAvailable(LogInput, cmd.command);
+ cmd.command = QByteArray::number(currentToken()) + cmd.command;
+ gdbInputAvailable(LogInput, _(cmd.command));
- m_gdbAdapter->write(cmd.command.toLatin1() + "\r\n");
+ m_gdbAdapter->write(cmd.command + "\r\n");
m_commandTimer->start();
@@ -827,7 +833,7 @@ void GdbEngine::commandTimeout()
const GdbCommand &cmd = m_cookieForToken.value(key);
if (!(cmd.flags & NonCriticalResponse))
killIt = true;
- debugMessage(_(" %1: %2 => %3").arg(key).arg(cmd.command).arg(_(cmd.callbackName)));
+ debugMessage(_(" %1: %2 => %3").arg(key).arg(_(cmd.command)).arg(_(cmd.callbackName)));
}
if (killIt) {
debugMessage(_("TIMED OUT WAITING FOR GDB REPLY. COMMANDS STILL IN PROGRESS:"));
@@ -922,7 +928,7 @@ void GdbEngine::handleResultRecord(GdbResponse *response)
GdbCommand cmd = m_cookieForToken.take(token);
if (theDebuggerBoolSetting(LogTimeStamps)) {
gdbOutputAvailable(LogTime, _("Response time: %1: %2 s")
- .arg(cmd.command)
+ .arg(_(cmd.command))
.arg(cmd.postTime.msecsTo(QTime::currentTime()) / 1000.));
}
@@ -937,9 +943,10 @@ void GdbEngine::handleResultRecord(GdbResponse *response)
response->resultClass != ((cmd.flags & RunRequest) ? GdbResultRunning :
(cmd.flags & ExitRequest) ? GdbResultExit :
GdbResultDone)) {
- QString rsp = _(GdbResponse::stringFromResultClass(response->resultClass));
- qWarning() << "UNEXPECTED RESPONSE " << rsp << " TO COMMAND" << cmd.command << " AT " __FILE__ ":" STRINGIFY(__LINE__);
- debugMessage(_("UNEXPECTED RESPONSE %1 TO COMMAND %2").arg(rsp).arg(cmd.command));
+ QByteArray rsp = GdbResponse::stringFromResultClass(response->resultClass);
+ rsp = "UNEXPECTED RESPONSE " + rsp + " TO COMMAND" + cmd.command;
+ qWarning() << rsp << " AT " __FILE__ ":" STRINGIFY(__LINE__);
+ debugMessage(_(rsp));
} else {
if (cmd.callback)
(this->*cmd.callback)(*response);
@@ -1002,11 +1009,11 @@ void GdbEngine::updateAll()
QTC_ASSERT(state() == InferiorUnrunnable || state() == InferiorStopped, /**/);
tryLoadDebuggingHelpers();
reloadModulesInternal();
- postCommand(_("-stack-list-frames"), WatchUpdate, CB(handleStackListFrames),
+ postCommand("-stack-list-frames", WatchUpdate, CB(handleStackListFrames),
QVariant::fromValue<StackCookie>(StackCookie(false, true)));
manager()->stackHandler()->setCurrentIndex(0);
if (supportsThreads())
- postCommand(_("-thread-list-ids"), WatchUpdate, CB(handleStackListThreads), 0);
+ postCommand("-thread-list-ids", WatchUpdate, CB(handleStackListThreads), 0);
manager()->reloadRegisters();
updateLocals();
}
@@ -1092,7 +1099,7 @@ void GdbEngine::handleAqcuiredInferior()
{
// Reverse debugging. FIXME: Should only be used when available.
//if (theDebuggerBoolSetting(EnableReverseDebugging))
- // postCommand(_("target response"));
+ // postCommand("target response");
tryLoadDebuggingHelpers();
@@ -1100,19 +1107,19 @@ void GdbEngine::handleAqcuiredInferior()
// intentionally after tryLoadDebuggingHelpers(),
// otherwise we'd interupt solib loading.
if (theDebuggerBoolSetting(AllPluginBreakpoints)) {
- postCommand(_("set auto-solib-add on"));
- postCommand(_("set stop-on-solib-events 0"));
- postCommand(_("sharedlibrary .*"));
+ postCommand("set auto-solib-add on");
+ postCommand("set stop-on-solib-events 0");
+ postCommand("sharedlibrary .*");
} else if (theDebuggerBoolSetting(SelectedPluginBreakpoints)) {
- postCommand(_("set auto-solib-add on"));
- postCommand(_("set stop-on-solib-events 1"));
- postCommand(_("sharedlibrary ")
+ postCommand("set auto-solib-add on");
+ postCommand("set stop-on-solib-events 1");
+ postCommand("sharedlibrary "
+ theDebuggerStringSetting(SelectedPluginBreakpointsPattern));
} else if (theDebuggerBoolSetting(NoPluginBreakpoints)) {
// should be like that already
if (!m_dumperInjectionLoad)
- postCommand(_("set auto-solib-add off"));
- postCommand(_("set stop-on-solib-events 0"));
+ postCommand("set auto-solib-add off");
+ postCommand("set stop-on-solib-events 0");
}
#endif
@@ -1199,7 +1206,7 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
invalidateSourcesList();
// Each stop causes a roundtrip and button flicker, so prevent
// a flood of useless stops. Will be automatically re-enabled.
- postCommand(_("set stop-on-solib-events 0"));
+ postCommand("set stop-on-solib-events 0");
#if 0
// The related code (handleAqcuiredInferior()) is disabled as well.
if (theDebuggerBoolSetting(SelectedPluginBreakpoints)) {
@@ -1207,7 +1214,7 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
debugMessage(_("SHARED LIBRARY EVENT: ") + dataStr);
QString pat = theDebuggerStringSetting(SelectedPluginBreakpointsPattern);
debugMessage(_("PATTERN: ") + pat);
- postCommand(_("sharedlibrary ") + pat);
+ postCommand("sharedlibrary " + pat.toLocal8Bit());
showStatusMessage(tr("Loading %1...").arg(dataStr));
}
#endif
@@ -1230,7 +1237,7 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
// The case of the user really setting a breakpoint at _start is simply
// unsupported.
if (!inferiorPid()) // For programs without -pthread under gdb <= 6.8.
- postCommand(_("info proc"), CB(handleInfoProc));
+ postCommand("info proc", CB(handleInfoProc));
continueInferiorInternal();
return;
}
@@ -1300,7 +1307,7 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
if (initHelpers) {
tryLoadDebuggingHelpers();
QVariant var = QVariant::fromValue<GdbMi>(data);
- postCommand(_("p 4"), CB(handleStop1), var); // dummy
+ postCommand("p 4", CB(handleStop1), var); // dummy
} else {
handleStop1(data);
}
@@ -1381,7 +1388,7 @@ void GdbEngine::handleStop1(const GdbMi &data)
if (supportsThreads()) {
int currentId = data.findChild("thread-id").data().toInt();
- postCommand(_("-thread-list-ids"), WatchUpdate,
+ postCommand("-thread-list-ids", WatchUpdate,
CB(handleStackListThreads), currentId);
}
@@ -1526,7 +1533,7 @@ void GdbEngine::shutdown()
case AdapterStartFailed: // Adapter "did something", but it did not help
if (m_gdbProc.state() == QProcess::Running) {
m_commandsToRunOnTemporaryBreak.clear();
- postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleGdbExit));
+ postCommand("-gdb-exit", GdbEngine::ExitRequest, CB(handleGdbExit));
} else {
setState(DebuggerNotReady);
}
@@ -1536,7 +1543,7 @@ void GdbEngine::shutdown()
case InferiorStopping:
case InferiorStopped:
m_commandsToRunOnTemporaryBreak.clear();
- postCommand(_(m_gdbAdapter->inferiorShutdownCommand()),
+ postCommand(m_gdbAdapter->inferiorShutdownCommand(),
NeedsStop | LosesChild, CB(handleInferiorShutdown));
break;
case AdapterStarted: // We can't get here, really
@@ -1545,7 +1552,7 @@ void GdbEngine::shutdown()
case InferiorShutdownFailed: // Whatever
case InferiorUnrunnable:
m_commandsToRunOnTemporaryBreak.clear();
- postCommand(_("-gdb-exit"), GdbEngine::ExitRequest, CB(handleGdbExit));
+ postCommand("-gdb-exit", GdbEngine::ExitRequest, CB(handleGdbExit));
setState(EngineShuttingDown); // Do it after posting the command!
break;
case InferiorStarting: // This may take some time, so just short-circuit it
@@ -1592,7 +1599,7 @@ void GdbEngine::detachDebugger()
{
QTC_ASSERT(state() == InferiorStopped, /**/);
QTC_ASSERT(startMode() != AttachCore, /**/);
- postCommand(_("detach"));
+ postCommand("detach");
setState(InferiorShuttingDown);
setState(InferiorShutDown);
shutdown();
@@ -1683,7 +1690,7 @@ void GdbEngine::continueInferiorInternal()
QTC_ASSERT(state() == InferiorStopped || state() == InferiorStarting,
qDebug() << state());
setState(InferiorRunningRequested);
- postCommand(_("-exec-continue"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-continue", RunRequest, CB(handleExecContinue));
}
void GdbEngine::autoContinueInferior()
@@ -1707,9 +1714,9 @@ void GdbEngine::stepExec()
setState(InferiorRunningRequested);
showStatusMessage(tr("Step requested..."), 5000);
if (manager()->isReverseDebugging())
- postCommand(_("-reverse-step"), RunRequest, CB(handleExecContinue));
+ postCommand("-reverse-step", RunRequest, CB(handleExecContinue));
else
- postCommand(_("-exec-step"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-step", RunRequest, CB(handleExecContinue));
}
void GdbEngine::stepIExec()
@@ -1719,9 +1726,9 @@ void GdbEngine::stepIExec()
setState(InferiorRunningRequested);
showStatusMessage(tr("Step by instruction requested..."), 5000);
if (manager()->isReverseDebugging())
- postCommand(_("-reverse-stepi"), RunRequest, CB(handleExecContinue));
+ postCommand("-reverse-stepi", RunRequest, CB(handleExecContinue));
else
- postCommand(_("-exec-step-instruction"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-step-instruction", RunRequest, CB(handleExecContinue));
}
void GdbEngine::stepOutExec()
@@ -1730,7 +1737,7 @@ void GdbEngine::stepOutExec()
setTokenBarrier();
setState(InferiorRunningRequested);
showStatusMessage(tr("Finish function requested..."), 5000);
- postCommand(_("-exec-finish"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-finish", RunRequest, CB(handleExecContinue));
}
void GdbEngine::nextExec()
@@ -1740,15 +1747,9 @@ void GdbEngine::nextExec()
setState(InferiorRunningRequested);
showStatusMessage(tr("Step next requested..."), 5000);
if (manager()->isReverseDebugging())
- postCommand(_("-reverse-next"), RunRequest, CB(handleExecContinue));
- else {
-#if 1
- postCommand(_("-exec-next"), RunRequest, CB(handleExecContinue));
-#else
- postCommand(_("tbreak \"%2\":%1").arg(lastLine + 1).arg(breakLocation(lastFile)));
- postCommand(_("-exec-continue"), RunRequest, CB(handleExecContinue));
-#endif
- }
+ postCommand("-reverse-next", RunRequest, CB(handleExecContinue));
+ else
+ postCommand("-exec-next", RunRequest, CB(handleExecContinue));
}
void GdbEngine::nextIExec()
@@ -1758,9 +1759,9 @@ void GdbEngine::nextIExec()
setState(InferiorRunningRequested);
showStatusMessage(tr("Step next instruction requested..."), 5000);
if (manager()->isReverseDebugging())
- postCommand(_("-reverse-nexti"), RunRequest, CB(handleExecContinue));
+ postCommand("-reverse-nexti", RunRequest, CB(handleExecContinue));
else
- postCommand(_("-exec-next-instruction"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-next-instruction", RunRequest, CB(handleExecContinue));
}
void GdbEngine::runToLineExec(const QString &fileName, int lineNumber)
@@ -1769,18 +1770,19 @@ void GdbEngine::runToLineExec(const QString &fileName, int lineNumber)
setTokenBarrier();
setState(InferiorRunningRequested);
showStatusMessage(tr("Run to line %1 requested...").arg(lineNumber), 5000);
- postCommand(_("-exec-until \"%2\":%1").arg(lineNumber).arg(breakLocation(fileName)),
- RunRequest, CB(handleExecContinue));
+ QByteArray args = '"' + breakLocation(fileName).toLocal8Bit() + '"' + ':'
+ + QByteArray::number(lineNumber);
+ postCommand("-exec-until " + args, RunRequest, CB(handleExecContinue));
}
void GdbEngine::runToFunctionExec(const QString &functionName)
{
QTC_ASSERT(state() == InferiorStopped, qDebug() << state());
setTokenBarrier();
- postCommand(_("-break-insert -t ") + functionName);
+ postCommand("-break-insert -t " + functionName.toLatin1());
continueInferiorInternal();
//setState(InferiorRunningRequested);
- //postCommand(_("-exec-continue"), handleExecRunToFunction);
+ //postCommand("-exec-continue", handleExecRunToFunction);
showStatusMessage(tr("Run to function %1 requested...").arg(functionName), 5000);
}
@@ -1791,10 +1793,11 @@ void GdbEngine::jumpToLineExec(const QString &fileName, int lineNumber)
frame.file = fileName;
frame.line = lineNumber;
#if 1
- QString loc = breakLocation(fileName);
- postCommand(_("tbreak \"%2\":%1").arg(lineNumber).arg(loc));
+ QByteArray loc = '"' + breakLocation(fileName).toLocal8Bit() + '"' + ':'
+ + QByteArray::number(lineNumber);
+ postCommand("tbreak " + loc);
setState(InferiorRunningRequested);
- postCommand(_("jump \"%2\":%1").arg(lineNumber).arg(loc), RunRequest);
+ postCommand("jump " + loc, RunRequest);
// will produce something like
// &"jump \"/home/apoenitz/dev/work/test1/test1.cpp\":242"
// ~"Continuing at 0x4058f3."
@@ -1803,12 +1806,12 @@ void GdbEngine::jumpToLineExec(const QString &fileName, int lineNumber)
// 23^done"
gotoLocation(frame, true);
//setBreakpoint();
- //postCommand(_("jump ") + fileName + ':' + QString::number(lineNumber));
+ //postCommand("jump " + loc);
#else
gotoLocation(frame, true);
setBreakpoint(fileName, lineNumber);
setState(InferiorRunningRequested);
- postCommand(_("jump ") + fileName + ':' + QString::number(lineNumber), RunRequest);
+ postCommand("jump " + loc, RunRequest);
#endif
}
@@ -1839,12 +1842,12 @@ void GdbEngine::setDebugDebuggingHelpers(const QVariant &on)
{
if (on.toBool()) {
debugMessage(_("SWITCHING ON DUMPER DEBUGGING"));
- postCommand(_("set unwindonsignal off"));
+ postCommand("set unwindonsignal off");
m_manager->breakByFunction(_("qDumpObjectData440"));
//updateLocals();
} else {
debugMessage(_("SWITCHING OFF DUMPER DEBUGGING"));
- postCommand(_("set unwindonsignal on"));
+ postCommand("set unwindonsignal on");
}
}
@@ -1868,7 +1871,7 @@ void GdbEngine::breakpointDataFromOutput(BreakpointData *data, const GdbMi &bkpt
QByteArray file, fullName;
foreach (const GdbMi &child, bkpt.children()) {
if (child.hasName("number")) {
- data->bpNumber = _(child.data());
+ data->bpNumber = child.data();
} else if (child.hasName("func")) {
data->bpFuncName = _(child.data());
} else if (child.hasName("addr")) {
@@ -1883,11 +1886,11 @@ void GdbEngine::breakpointDataFromOutput(BreakpointData *data, const GdbMi &bkpt
} else if (child.hasName("fullname")) {
fullName = child.data();
} else if (child.hasName("line")) {
- data->bpLineNumber = _(child.data());
+ data->bpLineNumber = child.data();
if (child.data().toInt())
data->markerLineNumber = child.data().toInt();
} else if (child.hasName("cond")) {
- data->bpCondition = _(child.data());
+ data->bpCondition = child.data();
// gdb 6.3 likes to "rewrite" conditions. Just accept that fact.
if (data->bpCondition != data->condition && data->conditionsMatch())
data->condition = data->bpCondition;
@@ -1936,27 +1939,28 @@ QString GdbEngine::breakLocation(const QString &file) const
void GdbEngine::sendInsertBreakpoint(int index)
{
const BreakpointData *data = manager()->breakHandler()->at(index);
- QString where;
+ QByteArray where;
if (data->funcName.isEmpty()) {
- where = data->useFullPath ? data->fileName : breakLocation(data->fileName);
+ QString loc = data->useFullPath ? data->fileName : breakLocation(data->fileName);
// The argument is simply a C-quoted version of the argument to the
// non-MI "break" command, including the "original" quoting it wants.
- where = _("\"\\\"%2\\\":%1\"").arg(data->lineNumber).arg(GdbMi::escapeCString(where));
+ where = "\"\\\"" + GdbMi::escapeCString(loc).toLocal8Bit() + "\\\":"
+ + data->lineNumber + '"';
} else {
- where = data->funcName;
+ where = data->funcName.toLatin1();
}
// set up fallback in case of pending breakpoints which aren't handled
// by the MI interface
- QString cmd;
+ QByteArray cmd;
if (m_isMacGdb)
- cmd = _("-break-insert -l -1 -f ");
+ cmd = "-break-insert -l -1 -f ";
else if (m_gdbVersion >= 60800) // Probably some earlier version would work as well ...
- cmd = _("-break-insert -f ");
+ cmd = "-break-insert -f ";
else
- cmd = _("-break-insert ");
+ cmd = "-break-insert ";
//if (!data->condition.isEmpty())
- // cmd += _("-c ") + data->condition + _c(' ');
+ // cmd += "-c " + data->condition + ' ';
cmd += where;
postCommand(cmd, NeedsStop, CB(handleBreakInsert), index);
}
@@ -1964,7 +1968,7 @@ void GdbEngine::sendInsertBreakpoint(int index)
void GdbEngine::reloadBreakListInternal()
{
m_breakListUpdating = true;
- postCommand(_("-break-list"), NeedsStop, CB(handleBreakList));
+ postCommand("-break-list", NeedsStop, CB(handleBreakList));
}
void GdbEngine::handleBreakList(const GdbResponse &response)
@@ -2119,7 +2123,7 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointData *
if (re.indexIn(output) != -1) {
data->bpAddress = re.cap(1);
data->bpFuncName = re.cap(2).trimmed();
- data->bpLineNumber = re.cap(4);
+ data->bpLineNumber = re.cap(4).toLatin1();
QString full = fullName(re.cap(3));
if (full.isEmpty()) {
// FIXME: This happens without UsePreciseBreakpoints regularily.
@@ -2137,7 +2141,7 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointData *
data->bpFileName = full;
} else {
qDebug() << "COULD NOT MATCH " << re.pattern() << " AND " << output;
- data->bpNumber = _("<unavailable>");
+ data->bpNumber = "<unavailable>";
}
}
@@ -2169,7 +2173,7 @@ void GdbEngine::handleBreakInsert1(const GdbResponse &response)
} else {
qDebug() << "INSERTING BREAKPOINT WITH BASE NAME FAILED. GIVING UP";
BreakpointData *data = handler->at(index);
- data->bpNumber = _("<unavailable>");
+ data->bpNumber = "<unavailable>";
}
attemptBreakpointSynchronization(); // trigger "ready"
}
@@ -2208,51 +2212,51 @@ void GdbEngine::attemptBreakpointSynchronization()
BreakHandler *handler = manager()->breakHandler();
foreach (BreakpointData *data, handler->takeDisabledBreakpoints()) {
- QString bpNumber = data->bpNumber;
+ QByteArray bpNumber = data->bpNumber;
if (!bpNumber.trimmed().isEmpty()) {
- postCommand(_("-break-disable ") + bpNumber, NeedsStop);
+ postCommand("-break-disable " + bpNumber, NeedsStop);
data->bpEnabled = false;
}
}
foreach (BreakpointData *data, handler->takeEnabledBreakpoints()) {
- QString bpNumber = data->bpNumber;
+ QByteArray bpNumber = data->bpNumber;
if (!bpNumber.trimmed().isEmpty()) {
- postCommand(_("-break-enable ") + bpNumber, NeedsStop);
+ postCommand("-break-enable " + bpNumber, NeedsStop);
data->bpEnabled = true;
}
}
foreach (BreakpointData *data, handler->takeRemovedBreakpoints()) {
- QString bpNumber = data->bpNumber;
- debugMessage(_("DELETING BP %1 IN %2").arg(bpNumber)
- .arg(data->markerFileName));
+ QByteArray bpNumber = data->bpNumber;
+ debugMessage(_("DELETING BP " + bpNumber + " IN "
+ + data->markerFileName.toLocal8Bit()));
if (!bpNumber.trimmed().isEmpty())
- postCommand(_("-break-delete ") + bpNumber, NeedsStop);
+ postCommand("-break-delete " + bpNumber, NeedsStop);
delete data;
}
for (int index = 0; index != handler->size(); ++index) {
BreakpointData *data = handler->at(index);
if (data->bpNumber.isEmpty()) { // unset breakpoint?
- data->bpNumber = _(" "); // Sent, but no feedback yet
+ data->bpNumber = " "; // Sent, but no feedback yet
sendInsertBreakpoint(index);
} else if (data->bpNumber.toInt()) {
if (data->bpMultiple && data->bpFileName.isEmpty()) {
- postCommand(_("info break %1").arg(data->bpNumber),
+ postCommand("info break " + data->bpNumber,
CB(handleBreakInfo), data->bpNumber.toInt());
continue;
}
// update conditions if needed
if (data->condition != data->bpCondition && !data->conditionsMatch())
- postCommand(_("condition %1 %2").arg(data->bpNumber).arg(data->condition),
+ postCommand("condition " + data->bpNumber + ' ' + data->condition,
CB(handleBreakCondition), index);
// update ignorecount if needed
if (data->ignoreCount != data->bpIgnoreCount)
- postCommand(_("ignore %1 %2").arg(data->bpNumber).arg(data->ignoreCount),
+ postCommand("ignore " + data->bpNumber + ' ' + data->ignoreCount,
CB(handleBreakIgnore), index);
if (!data->enabled && data->bpEnabled) {
- postCommand(_("-break-disable ") + data->bpNumber, NeedsStop);
+ postCommand("-break-disable " + data->bpNumber, NeedsStop);
data->bpEnabled = false;
}
}
@@ -2271,13 +2275,13 @@ void GdbEngine::attemptBreakpointSynchronization()
void GdbEngine::loadSymbols(const QString &moduleName)
{
// FIXME: gdb does not understand quoted names here (tested with 6.8)
- postCommand(_("sharedlibrary ") + dotEscape(moduleName));
+ postCommand("sharedlibrary " + dotEscape(moduleName.toLocal8Bit()));
reloadModulesInternal();
}
void GdbEngine::loadAllSymbols()
{
- postCommand(_("sharedlibrary .*"));
+ postCommand("sharedlibrary .*");
reloadModulesInternal();
}
@@ -2324,10 +2328,10 @@ void GdbEngine::reloadModules()
void GdbEngine::reloadModulesInternal()
{
m_modulesListOutdated = false;
- postCommand(_("info shared"), NeedsStop, CB(handleModulesList));
+ postCommand("info shared", NeedsStop, CB(handleModulesList));
#if 0
if (m_gdbVersion < 70000 && !m_isMacGdb)
- postCommand(_("set stop-on-solib-events 1"));
+ postCommand("set stop-on-solib-events 1");
#endif
}
@@ -2402,10 +2406,10 @@ void GdbEngine::reloadSourceFilesInternal()
{
QTC_ASSERT(!m_sourcesListUpdating, /**/);
m_sourcesListUpdating = true;
- postCommand(_("-file-list-exec-source-files"), NeedsStop, CB(handleQuerySources));
+ postCommand("-file-list-exec-source-files", NeedsStop, CB(handleQuerySources));
#if 0
if (m_gdbVersion < 70000 && !m_isMacGdb)
- postCommand(_("set stop-on-solib-events 1"));
+ postCommand("set stop-on-solib-events 1");
#endif
}
@@ -2425,7 +2429,7 @@ void GdbEngine::selectThread(int index)
QTC_ASSERT(index < threads.size(), return);
int id = threads.at(index).id;
showStatusMessage(tr("Retrieving data for stack view..."), 10000);
- postCommand(_("-thread-select %1").arg(id), CB(handleStackSelectThread));
+ postCommand("-thread-select " + QByteArray::number(id), CB(handleStackSelectThread));
}
void GdbEngine::handleStackSelectThread(const GdbResponse &)
@@ -2440,17 +2444,16 @@ void GdbEngine::handleStackSelectThread(const GdbResponse &)
void GdbEngine::reloadFullStack()
{
- QString cmd = _("-stack-list-frames");
- postCommand(cmd, WatchUpdate, CB(handleStackListFrames),
+ postCommand("-stack-list-frames", WatchUpdate, CB(handleStackListFrames),
QVariant::fromValue<StackCookie>(StackCookie(true, true)));
}
void GdbEngine::reloadStack(bool forceGotoLocation)
{
- QString cmd = _("-stack-list-frames");
+ QByteArray cmd = "-stack-list-frames";
int stackDepth = theDebuggerAction(MaximalStackDepth)->value().toInt();
if (stackDepth && !m_gdbAdapter->isTrkAdapter())
- cmd += _(" 0 ") + QString::number(stackDepth);
+ cmd += " 0 " + QByteArray::number(stackDepth);
// FIXME: gdb 6.4 symbianelf likes to be asked twice. The first time it
// returns with "^error,msg="Previous frame identical to this frame
// (corrupt stack?)". Might be related to the fact that we can't
@@ -2519,7 +2522,7 @@ void GdbEngine::handleStackListFrames(const GdbResponse &response)
if (targetFrame == -1 && isBogus) {
setTokenBarrier();
setState(InferiorRunningRequested);
- postCommand(_("-exec-finish"), RunRequest, CB(handleExecContinue));
+ postCommand("-exec-finish", RunRequest, CB(handleExecContinue));
showStatusMessage(tr("Jumping out of bogus frame..."), 1000);
return;
}
@@ -2588,7 +2591,7 @@ void GdbEngine::activateFrame(int frameIndex)
// Assuming the command always succeeds this saves a roundtrip.
// Otherwise the lines below would need to get triggered
// after a response to this -stack-select-frame here.
- postCommand(_("-stack-select-frame ") + QString::number(frameIndex));
+ postCommand("-stack-select-frame " + QByteArray::number(frameIndex));
stackHandler->setCurrentIndex(frameIndex);
updateLocals();
@@ -2632,18 +2635,18 @@ void GdbEngine::reloadRegisters()
if (state() != InferiorStopped)
return;
if (!m_registerNamesListed) {
- postCommand(_("-data-list-register-names"), CB(handleRegisterListNames));
+ postCommand("-data-list-register-names", CB(handleRegisterListNames));
m_registerNamesListed = true;
}
if (m_gdbAdapter->isTrkAdapter()) {
// FIXME: remove that special case. This is only to prevent
// gdb from asking for the values of the fixed point registers
- postCommand(_("-data-list-register-values x 0 1 2 3 4 5 6 7 8 9 "
- "10 11 12 13 14 15 25"),
+ postCommand("-data-list-register-values x 0 1 2 3 4 5 6 7 8 9 "
+ "10 11 12 13 14 15 25",
Discardable, CB(handleRegisterListValues));
} else {
- postCommand(_("-data-list-register-values x"),
+ postCommand("-data-list-register-values x",
Discardable, CB(handleRegisterListValues));
}
}
@@ -2653,11 +2656,11 @@ void GdbEngine::setRegisterValue(int nr, const QString &value)
Register reg = manager()->registerHandler()->registers().at(nr);
//qDebug() << "NOT IMPLEMENTED: CHANGE REGISTER " << nr << reg.name << ":"
// << value;
- postCommand(_("-var-delete \"R@\""));
- postCommand(_("-var-create \"R@\" * $%1").arg(reg.name));
- postCommand(_("-var-assign \"R@\" %1").arg(value));
- postCommand(_("-var-delete \"R@\""));
- //postCommand(_("-data-list-register-values d"),
+ postCommand("-var-delete \"R@\"");
+ postCommand("-var-create \"R@\" * $" + reg.name);
+ postCommand("-var-assign \"R@\" " + value.toLatin1());
+ postCommand("-var-delete \"R@\"");
+ //postCommand("-data-list-register-values d",
// Discardable, CB(handleRegisterListValues));
reloadRegisters();
}
@@ -2671,7 +2674,7 @@ void GdbEngine::handleRegisterListNames(const GdbResponse &response)
QList<Register> registers;
foreach (const GdbMi &item, response.data.findChild("register-names").children())
- registers.append(Register(_(item.data())));
+ registers.append(Register(item.data()));
manager()->registerHandler()->setRegisters(registers);
}
@@ -2721,19 +2724,19 @@ bool GdbEngine::supportsThreads() const
static QString m_toolTipExpression;
static QPoint m_toolTipPos;
-static QString tooltipINameForExpression(const QString &exp)
+static QByteArray tooltipINameForExpression(const QByteArray &exp)
{
// FIXME: 'exp' can contain illegal characters
- //return QLatin1String("tooltip.") + exp;
+ //return "tooltip." + exp;
Q_UNUSED(exp)
- return QLatin1String("tooltip.x");
+ return "tooltip.x";
}
bool GdbEngine::showToolTip()
{
WatchHandler *handler = manager()->watchHandler();
WatchModel *model = handler->model(TooltipsWatch);
- QString iname = tooltipINameForExpression(m_toolTipExpression);
+ QByteArray iname = tooltipINameForExpression(m_toolTipExpression.toLatin1());
WatchItem *item = model->findItem(iname, model->rootItem());
if (!item) {
hideDebuggerToolTip();
@@ -2819,9 +2822,9 @@ void GdbEngine::setToolTipExpression(const QPoint &mousePos,
*/
WatchData toolTip;
- toolTip.exp = exp;
+ toolTip.exp = exp.toLatin1();
toolTip.name = exp;
- toolTip.iname = tooltipINameForExpression(exp);
+ toolTip.iname = tooltipINameForExpression(toolTip.exp);
manager()->watchHandler()->removeData(toolTip.iname);
manager()->watchHandler()->insertData(toolTip);
}
@@ -2880,22 +2883,22 @@ static void setWatchDataValueEditable(WatchData &data, const GdbMi &mi)
static void setWatchDataExpression(WatchData &data, const GdbMi &mi)
{
if (mi.isValid())
- data.exp = _(mi.data());
+ data.exp = mi.data();
}
static void setWatchDataAddress(WatchData &data, const GdbMi &mi)
{
if (mi.isValid()) {
- data.addr = _(mi.data());
- if (data.exp.isEmpty() && !data.addr.startsWith(_("$")))
- data.exp = _("*(") + gdbQuoteTypes(data.type) + _("*)") + data.addr;
+ data.addr = mi.data();
+ if (data.exp.isEmpty() && !data.addr.startsWith("$"))
+ data.exp = "*(" + gdbQuoteTypes(data.type).toLatin1() + "*)" + data.addr;
}
}
static void setWatchDataSAddress(WatchData &data, const GdbMi &mi)
{
if (mi.isValid())
- data.saddr = _(mi.data());
+ data.saddr = mi.data();
}
void GdbEngine::setUseDebuggingHelpers(const QVariant &on)
@@ -2943,13 +2946,13 @@ static inline QString msgRetrievingWatchData(int pending)
void GdbEngine::runDirectDebuggingHelper(const WatchData &data, bool dumpChildren)
{
Q_UNUSED(dumpChildren)
- QString type = data.type;
- QString cmd;
+ QByteArray type = data.type.toLatin1();
+ QByteArray cmd;
- if (type == __("QString") || type.endsWith(__("::QString")))
- cmd = _("qdumpqstring (&(") + data.exp + _("))");
- else if (type == __("QStringList") || type.endsWith(__("::QStringList")))
- cmd = _("qdumpqstringlist (&(") + data.exp + _("))");
+ if (type == "QString" || type.endsWith("::QString"))
+ cmd = "qdumpqstring (&(" + data.exp + "))";
+ else if (type == "QStringList" || type.endsWith("::QStringList"))
+ cmd = "qdumpqstringlist (&(" + data.exp + "))";
QVariant var;
var.setValue(data);
@@ -2967,10 +2970,10 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren)
WatchData data = data0;
// Avoid endless loops created by faulty dumpers.
- QString processedName = QString(_("%1-%2").arg(dumpChildren).arg(data.iname));
+ QByteArray processedName = QByteArray::number(dumpChildren) + '-' + data.iname;
if (m_processedNames.contains(processedName)) {
gdbInputAvailable(LogStatus,
- _("<Breaking endless loop for %1>").arg(data.iname));
+ _("<Breaking endless loop for " + data.iname + ">"));
data.setAllUnneeded();
data.setValue(_("<unavailable>"));
data.setHasChildren(false);
@@ -2989,13 +2992,13 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren)
const int protocol = 2;
//int protocol = isDisplayedIName(data.iname) ? 3 : 2;
- QString addr;
- if (data.addr.startsWith(__("0x")))
- addr = _("(void*)") + data.addr;
+ QByteArray addr;
+ if (data.addr.startsWith("0x"))
+ addr = "(void*)" + data.addr;
else if (data.exp.isEmpty()) // happens e.g. for QAbstractItem
- addr = _("0");
+ addr = "0";
else
- addr = _("&(") + data.exp + _c(')');
+ addr = "&(" + data.exp + ')';
sendWatchParameters(params);
@@ -3004,27 +3007,27 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren)
protocol << ",0," << addr << ',' << (dumpChildren ? "1" : "0")
<< ',' << extraArgs.join(QString(_c(','))) << ')';
- postCommand(cmd, WatchUpdate | NonCriticalResponse);
+ postCommand(cmd.toLatin1(), WatchUpdate | NonCriticalResponse);
showStatusMessage(msgRetrievingWatchData(m_pendingRequests + 1), 10000);
// retrieve response
- postCommand(_("p (char*)&qDumpOutBuffer"), WatchUpdate,
+ postCommand("p (char*)&qDumpOutBuffer", WatchUpdate,
CB(handleDebuggingHelperValue2), qVariantFromValue(data));
}
void GdbEngine::createGdbVariable(const WatchData &data)
{
- if (data.iname == _("local.flist.0")) {
+ if (data.iname == "local.flist.0") {
int i = 1;
Q_UNUSED(i);
}
- postCommand(_("-var-delete \"%1\"").arg(data.iname), WatchUpdate);
- QString exp = data.exp;
- if (exp.isEmpty() && data.addr.startsWith(__("0x")))
- exp = _("*(") + gdbQuoteTypes(data.type) + _("*)") + data.addr;
+ postCommand("-var-delete \"" + data.iname + '"', WatchUpdate);
+ QByteArray exp = data.exp;
+ if (exp.isEmpty() && data.addr.startsWith("0x"))
+ exp = "*(" + gdbQuoteTypes(data.type).toLatin1() + "*)" + data.addr;
QVariant val = QVariant::fromValue<WatchData>(data);
- postCommand(_("-var-create \"%1\" * \"%2\"").arg(data.iname).arg(exp),
+ postCommand("-var-create \"" + data.iname + "\" * \"" + exp + '"',
WatchUpdate, CB(handleVarCreate), val);
}
@@ -3074,16 +3077,16 @@ void GdbEngine::updateSubItem(const WatchData &data0)
if (theDebuggerBoolSetting(AutoDerefPointers)) {
// Try automatic dereferentiation
- data.exp = _("(*(") + data.exp + _("))");
+ data.exp = "(*(" + data.exp + "))";
data.type = data.type + _("."); // FIXME: fragile HACK to avoid recursion
insertData(data);
} else {
data.setChildrenUnneeded();
insertData(data);
WatchData data1;
- data1.iname = data.iname + QLatin1String(".*");
+ data1.iname = data.iname + ".*";
data1.name = QLatin1Char('*') + data.name;
- data1.exp = QLatin1String("(*(") + data.exp + QLatin1String("))");
+ data1.exp = "(*(" + data.exp + "))";
data1.type = stripPointerType(data.type);
data1.setValueNeeded();
data1.setChildrenUnneeded();
@@ -3126,7 +3129,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
#if DEBUG_SUBITEM
qDebug() << "UPDATE SUBITEM: VALUE";
#endif
- QString cmd = _("-var-evaluate-expression \"") + data.iname + _c('"');
+ QByteArray cmd = "-var-evaluate-expression \"" + data.iname + '"';
postCommand(cmd, WatchUpdate, CB(handleEvaluateExpression),
QVariant::fromValue(data));
return;
@@ -3152,7 +3155,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
if (data.isChildrenNeeded()) {
QTC_ASSERT(!data.variable.isEmpty(), return); // tested above
- QString cmd = _("-var-list-children --all-values \"") + data.variable + _c('"');
+ QByteArray cmd = "-var-list-children --all-values \"" + data.variable + '"';
postCommand(cmd, WatchUpdate, CB(handleVarListChildren), QVariant::fromValue(data));
return;
}
@@ -3179,7 +3182,7 @@ void GdbEngine::updateSubItem(const WatchData &data0)
if (data.isHasChildrenNeeded()) {
QTC_ASSERT(!data.variable.isEmpty(), return); // tested above
- QString cmd = _("-var-list-children --all-values \"") + data.variable + _c('"');
+ QByteArray cmd = "-var-list-children --all-values \"" + data.variable + '"';
postCommand(cmd, Discardable,
CB(handleVarListChildren), QVariant::fromValue(data));
return;
@@ -3201,16 +3204,16 @@ void GdbEngine::updateWatchData(const WatchData &data)
insertData(data1);
rebuildModel();
#else
- if (data.iname.endsWith(_(".")))
+ if (data.iname.endsWith("."))
return;
// Avoid endless loops created by faulty dumpers.
- QString processedName = QString(_("%1-%2").arg(1).arg(data.iname));
+ QByteArray processedName = "1-" + data.iname;
//qDebug() << "PROCESSED NAMES: " << processedName << m_processedNames;
if (m_processedNames.contains(processedName)) {
WatchData data1 = data;
gdbInputAvailable(LogStatus,
- _("<Breaking endless loop for %1>").arg(data1.iname));
+ _("<Breaking endless loop for " + data.iname + '>'));
data1.setAllUnneeded();
data1.setValue(_("<unavailable>"));
data1.setHasChildren(false);
@@ -3310,7 +3313,7 @@ void GdbEngine::handleQueryDebuggingHelper(const GdbResponse &response)
//qDebug() << m_availableSimpleDebuggingHelpers << "DATA DUMPERS AVAILABLE";
}
-static inline QString arrayFillCommand(const char *array, const QByteArray &params)
+static inline QByteArray arrayFillCommand(const char *array, const QByteArray &params)
{
char buf[50];
sprintf(buf, "set {char[%d]} &%s = {", params.size(), array);
@@ -3322,21 +3325,21 @@ static inline QString arrayFillCommand(const char *array, const QByteArray &para
encoded.append(buf);
}
encoded[encoded.size() - 1] = '}';
- return _(encoded);
+ return encoded;
}
void GdbEngine::sendWatchParameters(const QByteArray &params0)
{
QByteArray params = params0;
params.append('\0');
- const QString inBufferCmd = arrayFillCommand("qDumpInBuffer", params);
+ const QByteArray inBufferCmd = arrayFillCommand("qDumpInBuffer", params);
params.replace('\0','!');
gdbInputAvailable(LogMisc, QString::fromUtf8(params));
params.clear();
params.append('\0');
- const QString outBufferCmd = arrayFillCommand("qDumpOutBuffer", params);
+ const QByteArray outBufferCmd = arrayFillCommand("qDumpOutBuffer", params);
postCommand(inBufferCmd);
postCommand(outBufferCmd);
@@ -3507,9 +3510,9 @@ void GdbEngine::handleChildren(const WatchData &data0, const GdbMi &item,
data1.name = QString::number(i);
GdbMi iname = child.findChild("iname");
if (iname.isValid())
- data1.iname = _(iname.data());
+ data1.iname = iname.data();
else
- data1.iname = data.iname + _c('.') + data1.name;
+ data1.iname = data.iname + '.' + data1.name.toLatin1();
if (!data1.name.isEmpty() && data1.name.at(0).isDigit())
data1.name = _c('[') + data1.name + _c(']');
QByteArray key = child.findChild("key").data();
@@ -3572,12 +3575,12 @@ void GdbEngine::handleDebuggingHelperValue3(const GdbResponse &response)
WatchData data1;
data1.name = _("[%1]").arg(i);
data1.type = data.type.left(data.type.size() - 4);
- data1.iname = data.iname + _(".%1").arg(i);
- data1.addr = _(list.at(i));
- data1.exp = _("((") + gdbQuoteTypes(data1.type) + _("*)") + data1.addr + _c(')');
+ data1.iname = data.iname + '.' + QByteArray::number(i);
+ data1.addr = list.at(i);
+ data1.exp = "((" + gdbQuoteTypes(data1.type).toLatin1() + "*)" + data1.addr + ")";
data1.setHasChildren(false);
data1.setValueNeeded();
- QString cmd = _("qdumpqstring (") + data1.exp + _c(')');
+ QByteArray cmd = "qdumpqstring (" + data1.exp + ')';
QVariant var;
var.setValue(data1);
postCommand(cmd, WatchUpdate, CB(handleDebuggingHelperValue3), var);
@@ -3605,34 +3608,42 @@ void GdbEngine::updateLocals(const QVariant &cookie)
manager()->watchHandler()->beginCycle();
m_toolTipExpression.clear();
WatchHandler *handler = m_manager->watchHandler();
- QStringList expanded = handler->expandedINames().toList();
- expanded.append(_("defaults"));
- QString watchers;
- QHash<QString, int> watcherNames = handler->watcherNames();
- QHashIterator<QString, int> it(watcherNames);
+
+ QByteArray expanded;
+ QSet<QByteArray> expandedINames = handler->expandedINames();
+ QSetIterator<QByteArray> jt(expandedINames);
+ while (jt.hasNext()) {
+ expanded.append(jt.next());
+ expanded.append(',');
+ }
+ if (expanded.isEmpty())
+ expanded.append("defaults,");
+ expanded.chop(1);
+
+ QByteArray watchers;
+ QHash<QByteArray, int> watcherNames = handler->watcherNames();
+ QHashIterator<QByteArray, int> it(watcherNames);
while (it.hasNext()) {
it.next();
if (!watchers.isEmpty())
- watchers += _("$$");
- if (it.key() == WatchHandler::watcherEditPlaceHolder())
- watchers += _("<Edit>$%1").arg(it.value());
+ watchers += "$$";
+ if (it.key() == WatchHandler::watcherEditPlaceHolder().toLatin1())
+ watchers += "<Edit>$" + QByteArray::number(it.value());
else
- watchers += _("%1$%2").arg(it.key()).arg(it.value());
+ watchers += it.key() + '$' + QByteArray::number(it.value());
}
- QString options;
+ QByteArray options;
if (theDebuggerBoolSetting(UseDebuggingHelpers))
- options += _("fancy,");
+ options += "fancy,";
if (theDebuggerBoolSetting(AutoDerefPointers))
- options += _("autoderef,");
+ options += "autoderef,";
if (options.isEmpty())
- options += _("defaults,");
+ options += "defaults,";
options.chop(1);
- postCommand(_("-interpreter-exec console \"bb %1 %2 %3\"")
- .arg(options)
- .arg(expanded.join(_(",")))
- .arg(_(watchers.toLatin1().toHex())),
+ postCommand("-interpreter-exec console \"bb "
+ + options + ' ' + expanded + ' ' + watchers.toHex() + '"',
Discardable,
CB(handleStackFrame));
} else {
@@ -3649,12 +3660,12 @@ void GdbEngine::updateLocals(const QVariant &cookie)
&& inferiorPid() > 0)
tryQueryDebuggingHelpers();
- QString level = QString::number(currentFrame());
+ QByteArray level = QByteArray::number(currentFrame());
// '2' is 'list with type and value'
- QString cmd = _("-stack-list-arguments 2 ") + level + _c(' ') + level;
+ QByteArray cmd = "-stack-list-arguments 2 " + level + ' ' + level;
postCommand(cmd, WatchUpdate, CB(handleStackListArguments));
// '2' is 'list with type and value'
- postCommand(_("-stack-list-locals 2"), WatchUpdate,
+ postCommand("-stack-list-locals 2", WatchUpdate,
CB(handleStackListLocals), cookie); // stage 2/2
}
}
@@ -3676,7 +3687,7 @@ void GdbEngine::handleStackFrame(const GdbResponse &response)
all.fromStringMultiple(out);
GdbMi locals = all.findChild("locals");
- WatchData *data = manager()->watchHandler()->findItem(_("local"));
+ WatchData *data = manager()->watchHandler()->findItem("local");
QTC_ASSERT(data, return);
QList<WatchData> list;
handleChildren(*data, locals, &list);
@@ -3685,7 +3696,7 @@ void GdbEngine::handleStackFrame(const GdbResponse &response)
manager()->watchHandler()->insertBulkData(list);
GdbMi watchers = all.findChild("watchers");
- data = manager()->watchHandler()->findItem(_("watch"));
+ data = manager()->watchHandler()->findItem("watch");
QTC_ASSERT(data, return);
list.clear();
handleChildren(*data, watchers, &list);
@@ -3801,7 +3812,7 @@ WatchData GdbEngine::localVariable(const GdbMi &item,
++(it.value());
WatchData data;
QString nam = _(name);
- data.iname = _("local.") + nam + QString::number(n + 1);
+ data.iname = "local." + name + QByteArray::number(n + 1);
//: Variable %1 is the variable name, %2 is a simple count
data.name = WatchData::shadowedName(nam, n);
if (uninitializedVariables.contains(data.name)) {
@@ -3818,9 +3829,9 @@ WatchData GdbEngine::localVariable(const GdbMi &item,
seen->insert(name, 1);
WatchData data;
QString nam = _(name);
- data.iname = _("local.") + nam;
+ data.iname = "local." + name;
data.name = nam;
- data.exp = nam;
+ data.exp = name;
data.framekey = m_currentFrame + data.name;
setWatchDataType(data, item.findChild("type"));
if (uninitializedVariables.contains(data.name)) {
@@ -3869,10 +3880,10 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
//qDebug() << "VAR_LIST_CHILDREN: ITEM" << item.toString();
QByteArray exp = item.findChild("exp").data();
QByteArray name = item.findChild("name").data();
- if (isAccessSpecifier(_(exp))) {
+ if (isAccessSpecifier(exp)) {
// suppress 'private'/'protected'/'public' level
WatchData data;
- data.variable = _(name);
+ data.variable = name;
data.iname = parent.iname;
//data.iname = data.variable;
data.exp = parent.exp;
@@ -3881,7 +3892,7 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
data.setHasChildrenUnneeded();
data.setChildrenUnneeded();
//qDebug() << "DATA" << data.toString();
- QString cmd = _("-var-list-children --all-values \"") + data.variable + _c('"');
+ QByteArray cmd = "-var-list-children --all-values \"" + data.variable + '"';
//iname += '.' + exp;
postCommand(cmd, WatchUpdate,
CB(handleVarListChildren), QVariant::fromValue(data));
@@ -3889,19 +3900,19 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
// happens for structs without data, e.g. interfaces.
WatchData data;
data.name = _(exp);
- data.iname = parent.iname + _c('.') + data.name;
- data.variable = _(name);
+ data.iname = parent.iname + '.' + data.name.toLatin1();
+ data.variable = name;
setWatchDataType(data, item.findChild("type"));
setWatchDataValue(data, item.findChild("value"));
setWatchDataAddress(data, item.findChild("addr"));
setWatchDataSAddress(data, item.findChild("saddr"));
data.setHasChildren(false);
insertData(data);
- } else if (parent.iname.endsWith(_c('.'))) {
+ } else if (parent.iname.endsWith('.')) {
// Happens with anonymous unions
WatchData data;
- data.iname = _(name);
- QString cmd = _("-var-list-children --all-values \"") + data.variable + _c('"');
+ data.iname = name;
+ QByteArray cmd = "-var-list-children --all-values \"" + data.variable + '"';
postCommand(cmd, WatchUpdate,
CB(handleVarListChildren), QVariant::fromValue(data));
} else if (exp == "staticMetaObject") {
@@ -3912,8 +3923,8 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
// I am not sure this is a good idea...
} else {
WatchData data;
- data.iname = parent.iname + _c('.') + __(exp);
- data.variable = _(name);
+ data.iname = parent.iname + '.' + exp;
+ data.variable = name;
setWatchDataType(data, item.findChild("type"));
setWatchDataValue(data, item.findChild("value"));
setWatchDataAddress(data, item.findChild("addr"));
@@ -3925,7 +3936,7 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
data.name = _(exp);
if (data.type == data.name) {
if (isPointerType(parent.type)) {
- data.exp = _("*(") + parent.exp + _c(')');
+ data.exp = "*(" + parent.exp + ')';
data.name = _("*") + parent.name;
} else {
// A type we derive from? gdb crashes when creating variables here
@@ -3933,24 +3944,24 @@ void GdbEngine::handleVarListChildrenHelper(const GdbMi &item,
}
} else if (exp.startsWith("*")) {
// A pointer
- data.exp = _("*(") + parent.exp + _c(')');
+ data.exp = "*(" + parent.exp + ')';
} else if (startsWithDigit(data.name)) {
// An array. No variables needed?
data.name = _c('[') + data.name + _c(']');
- data.exp = parent.exp + _('[' + exp + ']');
+ data.exp = parent.exp + '[' + exp + ']';
} else if (0 && parent.name.endsWith(_c('.'))) {
// Happens with anonymous unions
- data.exp = parent.exp + data.name;
+ data.exp = parent.exp + data.name.toLatin1();
//data.name = "<anonymous union>";
} else if (exp.isEmpty()) {
// Happens with anonymous unions
data.exp = parent.exp;
data.name = tr("<n/a>");
- data.iname = parent.iname + _(".@");
+ data.iname = parent.iname + ".@";
data.type = tr("<anonymous union>");
} else {
// A structure. Hope there's nothing else...
- data.exp = parent.exp + _c('.') + data.name;
+ data.exp = parent.exp + '.' + data.name.toLatin1();
}
if (hasDebuggingHelperForType(data.type)) {
@@ -3982,7 +3993,7 @@ void GdbEngine::handleVarListChildren(const GdbResponse &response)
// happens e.g. if no debug information is present or
// if the class really has no children
WatchData data1;
- data1.iname = data.iname + _(".child");
+ data1.iname = data.iname + ".child";
//: About variable's value
data1.value = tr("<no information>");
data1.hasChildren = false;
@@ -3990,12 +4001,14 @@ void GdbEngine::handleVarListChildren(const GdbResponse &response)
insertData(data1);
data.setAllUnneeded();
insertData(data);
- } else if (!isAccessSpecifier(data.variable.split(_c('.')).last())) {
- data.setChildrenUnneeded();
- insertData(data);
- } else {
+ } else if (data.variable.endsWith("private")
+ || data.variable.endsWith("protected")
+ || data.variable.endsWith("public")) {
// this skips the spurious "public", "private" etc levels
// gdb produces
+ } else {
+ data.setChildrenUnneeded();
+ insertData(data);
}
} else {
data.setError(QString::fromLocal8Bit(response.data.findChild("msg").data()));
@@ -4016,9 +4029,9 @@ void GdbEngine::handleChangedItem(QStandardItem *item)
void GdbEngine::assignValueInDebugger(const QString &expression, const QString &value)
{
- postCommand(_("-var-delete assign"));
- postCommand(_("-var-create assign * ") + expression);
- postCommand(_("-var-assign assign ") + value, Discardable, CB(handleVarAssign));
+ postCommand("-var-delete assign");
+ postCommand("-var-create assign * " + expression.toLatin1());
+ postCommand("-var-assign assign " + value.toLatin1(), Discardable, CB(handleVarAssign));
}
QString GdbEngine::qtDumperLibraryName() const
@@ -4070,7 +4083,7 @@ void GdbEngine::tryLoadDebuggingHelpers()
file.open(QIODevice::ReadOnly);
QByteArray contents = file.readAll();
m_debuggingHelperState = DebuggingHelperLoadTried;
- postCommand(_(contents));
+ postCommand(contents);
return;
}
if (m_dumperInjectionLoad && inferiorPid() <= 0) // Need PID to inject
@@ -4082,20 +4095,23 @@ void GdbEngine::tryLoadDebuggingHelpers()
return;
m_debuggingHelperState = DebuggingHelperLoadTried;
- const QString dlopenLib =
- (startParameters().startMode == StartRemote)
- ? startParameters().remoteDumperLib : manager()->qtDumperLibraryName();
+ QByteArray dlopenLib;
+ if (startParameters().startMode == StartRemote)
+ dlopenLib = startParameters().remoteDumperLib.toLocal8Bit();
+ else
+ manager()->qtDumperLibraryName().toLocal8Bit();
#if defined(Q_OS_WIN)
if (m_dumperInjectionLoad) {
/// Launch asynchronous remote thread to load.
SharedLibraryInjector injector(inferiorPid());
QString errorMessage;
- if (injector.remoteInject(dlopenLib, false, &errorMessage)) {
+ const QString dlopenLibString = _(dlopenLib);
+ if (injector.remoteInject(dlopenLibString, false, &errorMessage)) {
debugMessage(_("Dumper injection loading triggered (%1)...").
- arg(dlopenLib));
+ arg(dlopenLibString));
} else {
debugMessage(_("Dumper loading (%1) failed: %2").
- arg(dlopenLib, errorMessage));
+ arg(dlopenLibString, errorMessage));
debugMessage(errorMessage);
manager()->showQtDumperLibraryWarning(errorMessage);
m_debuggingHelperState = DebuggingHelperUnavailable;
@@ -4103,33 +4119,33 @@ void GdbEngine::tryLoadDebuggingHelpers()
}
} else {
debugMessage(_("Loading dumpers via debugger call (%1)...").
- arg(dlopenLib));
- postCommand(_("sharedlibrary .*")); // for LoadLibraryA
- //postCommand(_("handle SIGSEGV pass stop print"));
- //postCommand(_("set unwindonsignal off"));
- postCommand(_("call LoadLibraryA(\"") + GdbMi::escapeCString(dlopenLib) + _("\")"),
+ arg(_(dlopenLib)));
+ postCommand("sharedlibrary .*"); // for LoadLibraryA
+ //postCommand("handle SIGSEGV pass stop print");
+ //postCommand("set unwindonsignal off");
+ postCommand("call LoadLibraryA(\"" + GdbMi::escapeCString(dlopenLib) + "\")",
CB(handleDebuggingHelperSetup));
- postCommand(_("sharedlibrary ") + dotEscape(dlopenLib));
+ postCommand("sharedlibrary " + dotEscape(dlopenLib));
}
#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) ")"),
+ //postCommand("sharedlibrary libc"); // for malloc
+ //postCommand("sharedlibrary libdl"); // for dlopen
+ postCommand("call (void)dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ + "\", " STRINGIFY(RTLD_NOW) ")",
CB(handleDebuggingHelperSetup));
- //postCommand(_("sharedlibrary ") + dotEscape(dlopenLib));
+ //postCommand("sharedlibrary " + dotEscape(dlopenLib));
#else
- //postCommand(_("p dlopen"));
- postCommand(_("sharedlibrary libc")); // for malloc
- postCommand(_("sharedlibrary libdl")); // for dlopen
- postCommand(_("call (void*)dlopen(\"") + GdbMi::escapeCString(dlopenLib)
- + _("\", " STRINGIFY(RTLD_NOW) ")"),
+ //postCommand("p dlopen");
+ postCommand("sharedlibrary libc"); // for malloc
+ postCommand("sharedlibrary libdl"); // for dlopen
+ postCommand("call (void*)dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ + "\", " STRINGIFY(RTLD_NOW) ")",
CB(handleDebuggingHelperSetup));
// some older systems like CentOS 4.6 prefer this:
- postCommand(_("call (void*)__dlopen(\"") + GdbMi::escapeCString(dlopenLib)
- + _("\", " STRINGIFY(RTLD_NOW) ")"),
+ postCommand("call (void*)__dlopen(\"" + GdbMi::escapeCString(dlopenLib)
+ + "\", " STRINGIFY(RTLD_NOW) ")",
CB(handleDebuggingHelperSetup));
- postCommand(_("sharedlibrary ") + dotEscape(dlopenLib));
+ postCommand("sharedlibrary " + dotEscape(dlopenLib));
#endif
if (!m_dumperInjectionLoad)
tryQueryDebuggingHelpers();
@@ -4138,23 +4154,25 @@ void GdbEngine::tryLoadDebuggingHelpers()
void GdbEngine::tryQueryDebuggingHelpers()
{
// retrieve list of dumpable classes
- postCommand(_("call (void*)qDumpObjectData440(1,0,0,0,0,0,0,0)"));
- postCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper));
+ postCommand("call (void*)qDumpObjectData440(1,0,0,0,0,0,0,0)");
+ postCommand("p (char*)&qDumpOutBuffer", CB(handleQueryDebuggingHelper));
}
void GdbEngine::recheckDebuggingHelperAvailability()
{
if (m_gdbAdapter->dumperHandling() != AbstractGdbAdapter::DumperNotAvailable) {
// retreive list of dumpable classes
- postCommand(_("call (void*)qDumpObjectData440(1,0,0,0,0,0,0,0)"));
- postCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper));
+ postCommand("call (void*)qDumpObjectData440(1,0,0,0,0,0,0,0)");
+ postCommand("p (char*)&qDumpOutBuffer", CB(handleQueryDebuggingHelper));
}
}
void GdbEngine::watchPoint(const QPoint &pnt)
{
//qDebug() << "WATCH " << pnt;
- postCommand(_("call (void*)watchPoint(%1,%2)").arg(pnt.x()).arg(pnt.y()),
+ QByteArray x = QByteArray::number(pnt.x());
+ QByteArray y = QByteArray::number(pnt.y());
+ postCommand("call (void*)watchPoint(" + x + ',' + y + ')',
NeedsStop, CB(handleWatchPoint));
}
@@ -4188,7 +4206,8 @@ struct MemoryAgentCookie
void GdbEngine::fetchMemory(MemoryViewAgent *agent, quint64 addr, quint64 length)
{
//qDebug() << "GDB MEMORY FETCH" << agent << addr << length;
- postCommand(_("-data-read-memory %1 x 1 1 %2").arg(addr).arg(length),
+ postCommand("-data-read-memory " + QByteArray::number(addr) + " x 1 1 "
+ + QByteArray::number(length),
NeedsStop, CB(handleFetchMemory),
QVariant::fromValue(MemoryAgentCookie(agent, addr)));
}
@@ -4235,9 +4254,10 @@ void GdbEngine::fetchDisassembler(DisassemblerViewAgent *agent,
fetchDisassemblerByAddress(agent, true);
} else {
// Disassemble full function:
- QString cmd = _("-data-disassemble -f %1 -l %2 -n -1 -- 1");
- postCommand(cmd.arg(frame.file).arg(frame.line),
- Discardable, CB(handleFetchDisassemblerByLine),
+ QByteArray cmd = "-data-disassemble"
+ " -f " + frame.file.toLocal8Bit() +
+ " -l " + QByteArray::number(frame.line) + "-n -1 -- 1";
+ postCommand(cmd, Discardable, CB(handleFetchDisassemblerByLine),
QVariant::fromValue(DisassemblerAgentCookie(agent)));
}
}
@@ -4249,16 +4269,16 @@ void GdbEngine::fetchDisassemblerByAddress(DisassemblerViewAgent *agent,
bool ok = true;
quint64 address = agent->address().toULongLong(&ok, 0);
QTC_ASSERT(ok, qDebug() << "ADDRESS: " << agent->address() << address; return);
- QString start = QString::number(address - 20, 16);
- QString end = QString::number(address + 100, 16);
+ QByteArray start = QByteArray::number(address - 20, 16);
+ QByteArray end = QByteArray::number(address + 100, 16);
// -data-disassemble [ -s start-addr -e end-addr ]
// | [ -f filename -l linenum [ -n lines ] ] -- mode
if (useMixedMode)
- postCommand(_("-data-disassemble -s 0x%1 -e 0x%2 -- 1").arg(start).arg(end),
+ postCommand("-data-disassemble -s 0x" + start + " -e 0x" + end + " -- 1",
Discardable, CB(handleFetchDisassemblerByAddress1),
QVariant::fromValue(DisassemblerAgentCookie(agent)));
else
- postCommand(_("-data-disassemble -s 0x%1 -e 0x%2 -- 0").arg(start).arg(end),
+ postCommand("-data-disassemble -s 0x" + start + " -e 0x" + end + " -- 0",
Discardable, CB(handleFetchDisassemblerByAddress0),
QVariant::fromValue(DisassemblerAgentCookie(agent)));
}
@@ -4420,8 +4440,8 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
return false;
}
- const QString dumperSourcePath =
- Core::ICore::instance()->resourcePath() + _("/gdbmacros/");
+ const QByteArray dumperSourcePath =
+ Core::ICore::instance()->resourcePath().toLocal8Bit() + "/gdbmacros/";
// Do this only after the process is running, so we get no needless error
// notifications
@@ -4437,48 +4457,46 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
debugMessage(_("GDB STARTED, INITIALIZING IT"));
m_commandTimer->setInterval(commandTimeoutTime());
- postCommand(_("show version"), CB(handleShowVersion));
+ postCommand("show version", CB(handleShowVersion));
- postCommand(_("-interpreter-exec console \"python execfile('%1dumper.py')\"")
- .arg(dumperSourcePath),
+ postCommand("-interpreter-exec console \"python execfile('" + dumperSourcePath + "dumper.py')\"",
NonCriticalResponse);
- postCommand(_("-interpreter-exec console \"python execfile('%1gdbmacros.py')\"")
- .arg(dumperSourcePath),
+ postCommand("-interpreter-exec console \"python execfile('" + dumperSourcePath + "gdbmacros.py')\"",
NonCriticalResponse);
- postCommand(_("-interpreter-exec console \"help bb\""),
+ postCommand("-interpreter-exec console \"help bb\"",
CB(handleIsSynchroneous));
- //postCommand(_("-enable-timings");
- postCommand(_("set print static-members off")); // Seemingly doesn't work.
- //postCommand(_("set debug infrun 1"));
- //postCommand(_("define hook-stop\n-thread-list-ids\n-stack-list-frames\nend"));
- //postCommand(_("define hook-stop\nprint 4\nend"));
- //postCommand(_("define hookpost-stop\nprint 5\nend"));
- //postCommand(_("define hook-call\nprint 6\nend"));
- //postCommand(_("define hookpost-call\nprint 7\nend"));
- //postCommand(_("set print object on")); // works with CLI, but not MI
- //postCommand(_("set step-mode on")); // we can't work with that yes
- //postCommand(_("set exec-done-display on"));
- //postCommand(_("set print pretty on"));
- //postCommand(_("set confirm off"));
- //postCommand(_("set pagination off"));
+ //postCommand("-enable-timings");
+ postCommand("set print static-members off"); // Seemingly doesn't work.
+ //postCommand("set debug infrun 1");
+ //postCommand("define hook-stop\n-thread-list-ids\n-stack-list-frames\nend");
+ //postCommand("define hook-stop\nprint 4\nend");
+ //postCommand("define hookpost-stop\nprint 5\nend");
+ //postCommand("define hook-call\nprint 6\nend");
+ //postCommand("define hookpost-call\nprint 7\nend");
+ //postCommand("set print object on"); // works with CLI, but not MI
+ //postCommand("set step-mode on"); // we can't work with that yes
+ //postCommand("set exec-done-display on");
+ //postCommand("set print pretty on");
+ //postCommand("set confirm off");
+ //postCommand("set pagination off");
// The following does not work with 6.3.50-20050815 (Apple version gdb-1344)
// (Mac OS 10.6), but does so for gdb-966 (10.5):
- //postCommand(_("set print inferior-events 1"));
+ //postCommand("set print inferior-events 1");
- postCommand(_("set breakpoint pending on"));
- postCommand(_("set print elements 10000"));
+ postCommand("set breakpoint pending on");
+ postCommand("set print elements 10000");
- //postCommand(_("set substitute-path /var/tmp/qt-x11-src-4.5.0 "
- // "/home/sandbox/qtsdk-2009.01/qt"));
+ //postCommand("set substitute-path /var/tmp/qt-x11-src-4.5.0 "
+ // "/home/sandbox/qtsdk-2009.01/qt");
// one of the following is needed to prevent crashes in gdb on code like:
// template <class T> T foo() { return T(0); }
// int main() { return foo<int>(); }
// (gdb) call 'int foo<int>'()
// /build/buildd/gdb-6.8/gdb/valops.c:2069: internal-error:
- postCommand(_("set overload-resolution off"));
+ postCommand("set overload-resolution off");
//postCommand(_("set demangle-style none"));
// From the docs:
// Stop means reenter debugger if this signal happens (implies print).
@@ -4489,19 +4507,19 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
// We need "print" as otherwise we would get no feedback whatsoever
// Custom DebuggingHelper crashs which happen regularily for when accessing
// uninitialized variables.
- postCommand(_("handle SIGSEGV nopass stop print"));
+ postCommand("handle SIGSEGV nopass stop print");
// This is useful to kill the inferior whenever gdb dies.
//postCommand(_("handle SIGTERM pass nostop print"));
- postCommand(_("set unwindonsignal on"));
- //postCommand(_("pwd"));
- postCommand(_("set width 0"));
- postCommand(_("set height 0"));
+ postCommand("set unwindonsignal on");
+ //postCommand("pwd");
+ postCommand("set width 0");
+ postCommand("set height 0");
if (m_isMacGdb) {
- postCommand(_("-gdb-set inferior-auto-start-cfm off"));
- postCommand(_("-gdb-set sharedLibrary load-rules "
+ postCommand("-gdb-set inferior-auto-start-cfm off");
+ postCommand("-gdb-set sharedLibrary load-rules "
"dyld \".*libSystem.*\" all "
"dyld \".*libauto.*\" all "
"dyld \".*AppKit.*\" all "
@@ -4509,13 +4527,13 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
"dyld \".*Foundation.*\" all "
"dyld \".*CFDataFormatters.*\" all "
"dyld \".*libobjc.*\" all "
- "dyld \".*CarbonDataFormatters.*\" all"));
+ "dyld \".*CarbonDataFormatters.*\" all");
}
QString scriptFileName = theDebuggerStringSetting(GdbScriptFile);
if (!scriptFileName.isEmpty()) {
if (QFileInfo(scriptFileName).isReadable()) {
- postCommand(_("source ") + scriptFileName);
+ postCommand("source " + scriptFileName.toLocal8Bit());
} else {
showMessageBox(QMessageBox::Warning,
tr("Cannot find debugger initialization script"),
@@ -4527,10 +4545,10 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr
}
if (m_gdbAdapter->dumperHandling() == AbstractGdbAdapter::DumperLoadedByGdbPreload
&& checkDebuggingHelpers()) {
- QString cmd = _("set environment ");
- cmd += _(Debugger::Constants::Internal::LD_PRELOAD_ENV_VAR);
- cmd += _c(' ');
- cmd += manager()->qtDumperLibraryName();
+ QByteArray cmd = "set environment ";
+ cmd += Debugger::Constants::Internal::LD_PRELOAD_ENV_VAR;
+ cmd += ' ';
+ cmd += manager()->qtDumperLibraryName().toLocal8Bit();
postCommand(cmd);
m_debuggingHelperState = DebuggingHelperLoadTried;
}
@@ -4601,20 +4619,17 @@ void GdbEngine::handleAdapterStarted()
void GdbEngine::handleInferiorPrepared()
{
- const QString qtInstallPath = m_startParameters->qtInstallPath;
+ const QByteArray qtInstallPath = m_startParameters->qtInstallPath.toLocal8Bit();
if (!qtInstallPath.isEmpty()) {
- QString qtBuildPath;
+ QByteArray qtBuildPath;
#if defined(Q_OS_WIN)
- qtBuildPath = _("C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.6/qt");
- postCommand(_("set substitute-path %1 %2")
- .arg(qtBuildPath).arg(qtInstallPath));
- qtBuildPath = _("C:/iwmake/build_mingw_opensource");
- postCommand(_("set substitute-path %1 %2")
- .arg(qtBuildPath).arg(qtInstallPath));
+ qtBuildPath = "C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.6/qt";
+ postCommand("set substitute-path " + qtBuildPath + ' ' + qtInstallPath);
+ qtBuildPath = "C:/iwmake/build_mingw_opensource";
+ postCommand("set substitute-path " + qtBuildPath + ' ' + qtInstallPath);
#elif defined(Q_OS_UNIX) && !defined (Q_OS_MAC)
- qtBuildPath = _("/var/tmp/qt-x11-src-4.6.0");
- postCommand(_("set substitute-path %1 %2")
- .arg(qtBuildPath).arg(qtInstallPath));
+ qtBuildPath = "/var/tmp/qt-x11-src-4.6.0";
+ postCommand("set substitute-path " + qtBuildPath + ' ' + qtInstallPath);
#endif
}
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 3a1bd2c945..3aff525046 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -201,7 +201,7 @@ private: ////////// Gdb Command Management //////////
GdbCommandCallback callback;
AdapterCallback adapterCallback;
const char *callbackName;
- QString command;
+ QByteArray command;
QVariant cookie;
QTime postTime;
};
@@ -211,20 +211,20 @@ private: ////////// Gdb Command Management //////////
// send and decrements on receipt, effectively preventing
// watch model updates before everything is finished.
void flushCommand(const GdbCommand &cmd);
- void postCommand(const QString &command,
+ void postCommand(const QByteArray &command,
GdbCommandFlags flags,
GdbCommandCallback callback = 0,
const char *callbackName = 0,
const QVariant &cookie = QVariant());
- void postCommand(const QString &command,
+ void postCommand(const QByteArray &command,
GdbCommandCallback callback = 0,
const char *callbackName = 0,
const QVariant &cookie = QVariant());
- void postCommand(const QString &command,
+ void postCommand(const QByteArray &command,
AdapterCallback callback,
const char *callbackName,
const QVariant &cookie = QVariant());
- void postCommand(const QString &command,
+ void postCommand(const QByteArray &command,
GdbCommandFlags flags,
AdapterCallback callback,
const char *callbackName,
@@ -458,7 +458,7 @@ private: ////////// View & Data Stuff //////////
void setWatchDataType(WatchData &data, const GdbMi &mi);
void setWatchDataDisplayedType(WatchData &data, const GdbMi &mi);
- QSet<QString> m_processedNames;
+ QSet<QByteArray> m_processedNames;
QMap<QString, QString> m_varToType;
private: ////////// Dumper Management //////////
diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp
index a4c0d34d86..76f2aa1086 100644
--- a/src/plugins/debugger/gdb/plaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp
@@ -99,11 +99,13 @@ void PlainGdbAdapter::startAdapter()
void PlainGdbAdapter::startInferior()
{
QTC_ASSERT(state() == InferiorStarting, qDebug() << state());
- if (!startParameters().processArgs.isEmpty())
- m_engine->postCommand(_("-exec-arguments ")
- + startParameters().processArgs.join(_(" ")));
+ if (!startParameters().processArgs.isEmpty()) {
+ QString args = startParameters().processArgs.join(_(" "));
+ m_engine->postCommand("-exec-arguments " + args.toLocal8Bit());
+ }
QFileInfo fi(startParameters().executable);
- m_engine->postCommand(_("-file-exec-and-symbols \"%1\"").arg(fi.absoluteFilePath()),
+ QByteArray path = fi.absoluteFilePath().toLocal8Bit();
+ m_engine->postCommand("-file-exec-and-symbols \"" + path + '"',
CB(handleFileExecAndSymbols));
}
@@ -116,7 +118,7 @@ void PlainGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response)
// Note that successfully preloading the debugging helpers will
// automatically load pthreads, so this will be unnecessary.
if (m_engine->m_gdbVersion < 70000)
- m_engine->postCommand(_("info target"), CB(handleInfoTarget));
+ m_engine->postCommand("info target", CB(handleInfoTarget));
#endif
emit inferiorPrepared();
} else {
@@ -138,7 +140,7 @@ void PlainGdbAdapter::handleInfoTarget(const GdbResponse &response)
if (needle.indexIn(msg) != -1) {
m_engine->m_entryPoint =
"0x" + needle.cap(1).toLatin1().rightJustified(sizeof(void *) * 2, '0');
- m_engine->postCommand(_("tbreak *0x") + needle.cap(1));
+ m_engine->postCommand("tbreak *0x" + needle.cap(1).toAscii());
// Do nothing here - inferiorPrepared handles the sequencing.
} else {
emit inferiorStartFailed(_("Parsing start address failed"));
@@ -152,7 +154,7 @@ void PlainGdbAdapter::handleInfoTarget(const GdbResponse &response)
void PlainGdbAdapter::startInferiorPhase2()
{
setState(InferiorRunningRequested);
- m_engine->postCommand(_("-exec-run"), GdbEngine::RunRequest, CB(handleExecRun));
+ m_engine->postCommand("-exec-run", GdbEngine::RunRequest, CB(handleExecRun));
}
void PlainGdbAdapter::handleExecRun(const GdbResponse &response)
diff --git a/src/plugins/debugger/gdb/remotegdbadapter.cpp b/src/plugins/debugger/gdb/remotegdbadapter.cpp
index 01fd28053b..d3dd16273b 100644
--- a/src/plugins/debugger/gdb/remotegdbadapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbadapter.cpp
@@ -155,21 +155,24 @@ void RemoteGdbAdapter::startInferior()
{
QTC_ASSERT(state() == InferiorStarting, qDebug() << state());
- m_engine->postCommand(_("set architecture %1")
- .arg(startParameters().remoteArchitecture));
- m_engine->postCommand(_("set sysroot %1").arg(startParameters().sysRoot));
- m_engine->postCommand(_("set solib-search-path %1").
- arg(QFileInfo(startParameters().dumperLibrary).path()));
-
- if (!startParameters().processArgs.isEmpty())
- m_engine->postCommand(_("-exec-arguments ")
- + startParameters().processArgs.join(_(" ")));
+ m_engine->postCommand("set architecture "
+ + startParameters().remoteArchitecture.toLatin1());
+ m_engine->postCommand("set sysroot "
+ + startParameters().sysRoot.toLocal8Bit());
+ m_engine->postCommand("set solib-search-path "
+ + QFileInfo(startParameters().dumperLibrary).path().toLocal8Bit());
+
+ if (!startParameters().processArgs.isEmpty()) {
+ QString args = startParameters().processArgs.join(_(" "));
+ m_engine->postCommand("-exec-arguments " + args.toLocal8Bit());
+ }
- m_engine->postCommand(_("set target-async on"), CB(handleSetTargetAsync));
+ m_engine->postCommand("set target-async on", CB(handleSetTargetAsync));
QString x = startParameters().executable;
QFileInfo fi(startParameters().executable);
QString fileName = fi.absoluteFilePath();
- m_engine->postCommand(_("-file-exec-and-symbols \"%1\"").arg(fileName),
+ m_engine->postCommand("-file-exec-and-symbols \""
+ + fileName.toLocal8Bit() + '"',
CB(handleFileExecAndSymbols));
}
@@ -191,7 +194,7 @@ void RemoteGdbAdapter::handleFileExecAndSymbols(const GdbResponse &response)
// (2) starts the remote application
// (3) stops the remote application (early, e.g. in the dynamic linker)
QString channel = startParameters().remoteChannel;
- m_engine->postCommand(_("target remote %1").arg(channel),
+ m_engine->postCommand("target remote " + channel.toLatin1(),
CB(handleTargetRemote));
} else {
QString msg = tr("Starting remote executable failed:\n");
@@ -224,7 +227,7 @@ void RemoteGdbAdapter::startInferiorPhase2()
void RemoteGdbAdapter::interruptInferior()
{
- m_engine->postCommand(_("-exec-interrupt"));
+ m_engine->postCommand("-exec-interrupt");
}
void RemoteGdbAdapter::shutdown()
diff --git a/src/plugins/debugger/gdb/termgdbadapter.cpp b/src/plugins/debugger/gdb/termgdbadapter.cpp
index 53378a4205..6b096b2830 100644
--- a/src/plugins/debugger/gdb/termgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/termgdbadapter.cpp
@@ -129,7 +129,8 @@ void TermGdbAdapter::startInferior()
QTC_ASSERT(state() == InferiorStarting, qDebug() << state());
const qint64 attachedPID = m_stubProc.applicationPID();
m_engine->handleInferiorPidChanged(attachedPID);
- m_engine->postCommand(_("attach %1").arg(attachedPID), CB(handleStubAttached));
+ m_engine->postCommand("attach " + QByteArray::number(attachedPID),
+ CB(handleStubAttached));
}
void TermGdbAdapter::handleStubAttached(const GdbResponse &response)
@@ -140,7 +141,7 @@ void TermGdbAdapter::handleStubAttached(const GdbResponse &response)
debugMessage(_("INFERIOR ATTACHED"));
emit inferiorPrepared();
#ifdef Q_OS_LINUX
- m_engine->postCommand(_("-stack-list-frames 0 0"), CB(handleEntryPoint));
+ m_engine->postCommand("-stack-list-frames 0 0", CB(handleEntryPoint));
#endif
} else if (response.resultClass == GdbResultError) {
QString msg = QString::fromLocal8Bit(response.data.findChild("msg").data());
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index 4d459a74fd..2b972ac326 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -1685,15 +1685,15 @@ void TrkGdbAdapter::handleCreateProcess(const TrkResult &result)
logMessage(startMsg);
- const QString fileName = m_symbolFile;
- if (m_symbolFile.isEmpty()) {
+ const QByteArray symbolFile = m_symbolFile.toLocal8Bit();
+ if (symbolFile.isEmpty()) {
logMessage(_("WARNING: No symbol file available."));
} else {
- m_engine->postCommand(_("add-symbol-file \"%1\" %2").arg(m_symbolFile)
- .arg(m_session.codeseg));
- m_engine->postCommand(_("symbol-file \"%1\"").arg(m_symbolFile));
+ m_engine->postCommand("add-symbol-file \"" + symbolFile + "\" "
+ + QByteArray::number(m_session.codeseg));
+ m_engine->postCommand("symbol-file \"" + symbolFile + "\"");
}
- m_engine->postCommand(_("target remote ") + gdbServerName(),
+ m_engine->postCommand("target remote " + gdbServerName().toLatin1(),
CB(handleTargetRemote));
}
diff --git a/src/plugins/debugger/registerhandler.h b/src/plugins/debugger/registerhandler.h
index d7f16d0463..de3b8a3df8 100644
--- a/src/plugins/debugger/registerhandler.h
+++ b/src/plugins/debugger/registerhandler.h
@@ -46,10 +46,10 @@ class Register
{
public:
Register() : changed(true) {}
- Register(QString const &name_) : name(name_), changed(true) {}
+ Register(QByteArray const &name_) : name(name_), changed(true) {}
public:
- QString name;
+ QByteArray name;
QString value;
bool changed;
};
diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp
index b8436f1084..bcb397ca74 100644
--- a/src/plugins/debugger/script/scriptengine.cpp
+++ b/src/plugins/debugger/script/scriptengine.cpp
@@ -390,7 +390,7 @@ void ScriptEngine::attemptBreakpointSynchronization()
updateNeeded = true;
}
if (data->bpNumber.isEmpty()) {
- data->bpNumber = QString::number(index + 1);
+ data->bpNumber = QByteArray::number(index + 1);
updateNeeded = true;
}
if (!data->fileName.isEmpty() && data->markerFileName.isEmpty()) {
@@ -560,7 +560,7 @@ void ScriptEngine::maybeBreakNow(bool byFunction)
// we just run into a breakpoint
//SDEBUG("RESOLVING BREAKPOINT AT " << fileName << lineNumber);
BreakpointData *data = handler->at(index);
- data->bpLineNumber = QString::number(lineNumber);
+ data->bpLineNumber = QByteArray::number(lineNumber);
data->bpFileName = fileName;
data->bpFuncName = functionName;
data->markerLineNumber = lineNumber;
@@ -703,8 +703,8 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
while (it.hasNext()) {
it.next();
WatchData data1;
- data1.iname = data.iname + "." + it.name();
- data1.exp = it.name();
+ data1.iname = data.iname + "." + it.name().toLatin1();
+ data1.exp = it.name().toLatin1();
data1.name = it.name();
data1.scriptValue = it.value();
if (manager()->watchHandler()->isExpandedIName(data1.iname))
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 361b5863ba..37d9dc7794 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -224,7 +224,7 @@ void WatchData::setType(const QString &str, bool guessChildrenFromType)
void WatchData::setAddress(const QString &str)
{
- addr = str;
+ addr = str.toLatin1();
}
QString WatchData::toString() const
@@ -349,15 +349,15 @@ WatchModel::WatchModel(WatchHandler *handler, WatchType type)
switch (m_type) {
case LocalsWatch:
- m_root->iname = QLatin1String("local");
+ m_root->iname = "local";
m_root->name = WatchHandler::tr("Locals");
break;
case WatchersWatch:
- m_root->iname = QLatin1String("watch");
+ m_root->iname = "watch";
m_root->name = WatchHandler::tr("Watchers");
break;
case TooltipsWatch:
- m_root->iname = QLatin1String("tooltip");
+ m_root->iname = "tooltip";
m_root->name = WatchHandler::tr("Tooltip");
break;
}
@@ -461,11 +461,11 @@ void WatchModel::destroyItem(WatchItem *item)
delete item;
}
-static QString parentName(const QString &iname)
+static QByteArray parentName(const QByteArray &iname)
{
- int pos = iname.lastIndexOf(QLatin1Char('.'));
+ int pos = iname.lastIndexOf('.');
if (pos == -1)
- return QString();
+ return QByteArray();
return iname.left(pos);
}
@@ -931,9 +931,9 @@ QVariant WatchModel::headerData(int section, Qt::Orientation orientation, int ro
return QVariant();
}
-struct IName : public QString
+struct IName : public QByteArray
{
- IName(const QString &iname) : QString(iname) {}
+ IName(const QByteArray &iname) : QByteArray(iname) {}
};
bool iNameLess(const QString &iname1, const QString &iname2)
@@ -1028,7 +1028,7 @@ void WatchModel::insertBulkData(const QList<WatchData> &list)
//foreach (const WatchItem &data, list)
// qDebug() << "BULK: " << ++bulk << data.toString();
QTC_ASSERT(!list.isEmpty(), return);
- QString parentIName = parentName(list.at(0).iname);
+ QByteArray parentIName = parentName(list.at(0).iname);
WatchItem *parent = findItem(parentIName, m_root);
if (!parent) {
WatchData parent;
@@ -1117,7 +1117,7 @@ void WatchModel::insertBulkData(const QList<WatchData> &list)
dump();
}
-WatchItem *WatchModel::findItem(const QString &iname, WatchItem *root) const
+WatchItem *WatchModel::findItem(const QByteArray &iname, WatchItem *root) const
{
if (root->iname == iname)
return root;
@@ -1248,7 +1248,7 @@ void WatchHandler::insertBulkData(const QList<WatchData> &list)
if (list.isEmpty())
return;
- QMap<QString, QList<WatchData> > hash;
+ QMap<QByteArray, QList<WatchData> > hash;
foreach (const WatchData &data, list) {
// we insert everything, including incomplete stuff
@@ -1259,7 +1259,7 @@ void WatchHandler::insertBulkData(const QList<WatchData> &list)
qWarning("%s:%d: Attempt to bulk-insert invalid watch item: %s", __FILE__, __LINE__, qPrintable(data.toString()));
}
}
- foreach (const QString &parentIName, hash.keys()) {
+ foreach (const QByteArray &parentIName, hash.keys()) {
WatchModel *model = modelForIName(parentIName);
QTC_ASSERT(model, return);
model->insertBulkData(hash[parentIName]);
@@ -1271,7 +1271,7 @@ void WatchHandler::insertBulkData(const QList<WatchData> &list)
}
}
-void WatchHandler::removeData(const QString &iname)
+void WatchHandler::removeData(const QByteArray &iname)
{
WatchModel *model = modelForIName(iname);
if (!model)
@@ -1287,21 +1287,21 @@ void WatchHandler::watchExpression()
watchExpression(action->data().toString());
}
-QString WatchHandler::watcherName(const QString &exp)
+QByteArray WatchHandler::watcherName(const QByteArray &exp)
{
- return QLatin1String("watch.") + QString::number(m_watcherNames[exp]);
+ return "watch." + QByteArray::number(m_watcherNames[exp]);
}
void WatchHandler::watchExpression(const QString &exp)
{
// FIXME: 'exp' can contain illegal characters
- m_watcherNames[exp] = watcherCounter++;
WatchData data;
- data.exp = exp;
+ data.exp = exp.toLatin1();
data.name = exp;
+ m_watcherNames[data.exp] = watcherCounter++;
if (exp.isEmpty() || exp == watcherEditPlaceHolder())
data.setAllUnneeded();
- data.iname = watcherName(exp);
+ data.iname = watcherName(data.exp);
IDebuggerEngine *engine = m_manager->currentEngine();
if (engine && engine->isSynchroneous())
m_manager->updateWatchData(data);
@@ -1392,8 +1392,9 @@ void WatchHandler::removeWatchExpression()
removeWatchExpression(action->data().toString());
}
-void WatchHandler::removeWatchExpression(const QString &exp)
+void WatchHandler::removeWatchExpression(const QString &exp0)
{
+ QByteArray exp = exp0.toLatin1();
MODEL_DEBUG("REMOVE WATCH: " << exp);
m_watcherNames.remove(exp);
foreach (WatchItem *item, m_watchers->rootItem()->children) {
@@ -1409,7 +1410,7 @@ void WatchHandler::updateWatchers()
{
//qDebug() << "UPDATE WATCHERS";
// copy over all watchers and mark all watchers as incomplete
- foreach (const QString &exp, m_watcherNames.keys()) {
+ foreach (const QByteArray &exp, m_watcherNames.keys()) {
WatchData data;
data.iname = watcherName(exp);
data.setAllNeeded();
@@ -1423,7 +1424,7 @@ void WatchHandler::loadWatchers()
{
QVariant value = m_manager->sessionValue("Watchers");
foreach (const QString &exp, value.toStringList())
- m_watcherNames[exp] = watcherCounter++;
+ m_watcherNames[exp.toLatin1()] = watcherCounter++;
//qDebug() << "LOAD WATCHERS: " << m_watchers;
//reinitializeWatchersHelper();
@@ -1433,7 +1434,7 @@ QStringList WatchHandler::watchedExpressions() const
{
// Filter out invalid watchers.
QStringList watcherNames;
- QHashIterator<QString, int> it(m_watcherNames);
+ QHashIterator<QByteArray, int> it(m_watcherNames);
while (it.hasNext()) {
it.next();
const QString &watcherName = it.key();
@@ -1487,7 +1488,7 @@ void WatchHandler::loadSessionData()
{
loadWatchers();
loadTypeFormats();
- foreach (const QString &exp, m_watcherNames.keys()) {
+ foreach (const QByteArray &exp, m_watcherNames.keys()) {
WatchData data;
data.iname = watcherName(exp);
data.setAllUnneeded();
@@ -1508,19 +1509,19 @@ WatchModel *WatchHandler::model(WatchType type) const
return 0;
}
-WatchModel *WatchHandler::modelForIName(const QString &iname) const
+WatchModel *WatchHandler::modelForIName(const QByteArray &iname) const
{
- if (iname.startsWith(QLatin1String("local")))
+ if (iname.startsWith("local"))
return m_locals;
- if (iname.startsWith(QLatin1String("watch")))
+ if (iname.startsWith("watch"))
return m_watchers;
- if (iname.startsWith(QLatin1String("tooltip")))
+ if (iname.startsWith("tooltip"))
return m_tooltips;
QTC_ASSERT(false, qDebug() << "INAME: " << iname);
return 0;
}
-WatchData *WatchHandler::findItem(const QString &iname) const
+WatchData *WatchHandler::findItem(const QByteArray &iname) const
{
const WatchModel *model = modelForIName(iname);
QTC_ASSERT(model, return 0);
diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h
index 976a51f743..6a56ca1a33 100644
--- a/src/plugins/debugger/watchhandler.h
+++ b/src/plugins/debugger/watchhandler.h
@@ -109,8 +109,8 @@ public:
QString toString() const;
QString toToolTip() const;
- bool isLocal() const { return iname.startsWith(QLatin1String("local.")); }
- bool isWatcher() const { return iname.startsWith(QLatin1String("watch.")); }
+ bool isLocal() const { return iname.startsWith("local."); }
+ bool isWatcher() const { return iname.startsWith("watch."); }
bool isValid() const { return !iname.isEmpty(); }
bool isEqual(const WatchData &other) const;
@@ -119,17 +119,17 @@ public:
static QString shadowedName(const QString &name, int seen);
public:
- QString iname; // internal name sth like 'local.baz.public.a'
- QString exp; // the expression
+ QByteArray iname; // internal name sth like 'local.baz.public.a'
+ QByteArray exp; // the expression
QString name; // displayed name
QString value; // displayed value
QByteArray editvalue; // displayed value
QString valuetooltip; // tooltip in value column
QString type; // type for further processing
- QString displayedType; // displayed type (optional)
- QString variable; // name of internal Gdb variable if created
- QString addr; // displayed adress
- QString saddr; // stored address (pointer in container)
+ QString displayedType;// displayed type (optional)
+ QByteArray variable; // name of internal Gdb variable if created
+ QByteArray addr; // displayed adress
+ QByteArray saddr; // stored address (pointer in container)
QString framekey; // key for type cache
QScriptValue scriptValue; // if needed...
bool hasChildren;
@@ -215,7 +215,7 @@ private:
void insertData(const WatchData &data);
void insertBulkData(const QList<WatchData> &data);
- WatchItem *findItem(const QString &iname, WatchItem *root) const;
+ WatchItem *findItem(const QByteArray &iname, WatchItem *root) const;
void reinitialize();
void removeOutdated();
void removeOutdatedHelper(WatchItem *item);
@@ -243,7 +243,7 @@ private:
WatchHandler *m_handler;
WatchType m_type;
WatchItem *m_root;
- QSet<QString> m_fetchTriggered;
+ QSet<QByteArray> m_fetchTriggered;
// Part of the workaround to update the [+] marker when items
// are added to a container.
bool m_inExtraLayoutChanged;
@@ -256,7 +256,7 @@ class WatchHandler : public QObject
public:
explicit WatchHandler(DebuggerManager *manager);
WatchModel *model(WatchType type) const;
- WatchModel *modelForIName(const QString &data) const;
+ WatchModel *modelForIName(const QByteArray &iname) const;
//public slots:
void cleanup();
@@ -272,20 +272,20 @@ public:
void insertData(const WatchData &data);
void insertBulkData(const QList<WatchData> &data);
- void removeData(const QString &iname);
- WatchData *findItem(const QString &iname) const;
+ void removeData(const QByteArray &iname);
+ WatchData *findItem(const QByteArray &iname) const;
void loadSessionData();
void saveSessionData();
- bool isDisplayedIName(const QString &iname) const
+ bool isDisplayedIName(const QByteArray &iname) const
{ return m_displayedINames.contains(iname); }
- bool isExpandedIName(const QString &iname) const
+ bool isExpandedIName(const QByteArray &iname) const
{ return m_expandedINames.contains(iname); }
- QSet<QString> expandedINames() const
+ QSet<QByteArray> expandedINames() const
{ return m_expandedINames; }
QStringList watchedExpressions() const;
- QHash<QString, int> watcherNames() const
+ QHash<QByteArray, int> watcherNames() const
{ return m_watcherNames; }
static QString watcherEditPlaceHolder();
@@ -306,14 +306,14 @@ private:
typedef QMap<QString, QPointer<QWidget> > EditWindows;
EditWindows m_editWindows;
- QHash<QString, int> m_watcherNames;
- QString watcherName(const QString &exp);
+ QHash<QByteArray, int> m_watcherNames;
+ QByteArray watcherName(const QByteArray &exp);
QHash<QString, int> m_typeFormats;
QHash<QString, int> m_individualFormats;
void setDisplayedIName(const QString &iname, bool on);
- QSet<QString> m_expandedINames; // those expanded in the treeview
- QSet<QString> m_displayedINames; // those with "external" viewers
+ QSet<QByteArray> m_expandedINames; // those expanded in the treeview
+ QSet<QByteArray> m_displayedINames; // those with "external" viewers
WatchModel *m_locals;
WatchModel *m_watchers;
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index c5c9aac500..1aabf139f9 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -138,12 +138,11 @@ QDebug operator<<(QDebug d, const Scope &scope)
namespace Debugger {
namespace Internal {
-QString dotEscape(QString str)
+QByteArray dotEscape(QByteArray str)
{
- const QChar dot = QLatin1Char('.');
- str.replace(QLatin1Char(' '), dot);
- str.replace(QLatin1Char('\\'), dot);
- str.replace(QLatin1Char('/'), dot);
+ str.replace(' ', '.');
+ str.replace('\\', '.');
+ str.replace('/', '.');
return str;
}
@@ -275,15 +274,6 @@ bool isCharPointerType(const QString &type)
|| type == QLatin1String("char const *");
}
-bool isAccessSpecifier(const QString &str)
-{
- static const QStringList items = QStringList()
- << QLatin1String("private")
- << QLatin1String("protected")
- << QLatin1String("public");
- return items.contains(str);
-}
-
bool startsWithDigit(const QString &str)
{
return !str.isEmpty() && str.at(0).isDigit();
@@ -1270,13 +1260,13 @@ void QtDumperHelper::evaluationParameters(const WatchData &data,
inBuffer->clear();
inBuffer->append(outertype.toUtf8());
inBuffer->append('\0');
- inBuffer->append(data.iname.toUtf8());
+ inBuffer->append(data.iname);
inBuffer->append('\0');
- inBuffer->append(data.exp.toUtf8());
+ inBuffer->append(data.exp);
inBuffer->append('\0');
inBuffer->append(inner.toUtf8());
inBuffer->append('\0');
- inBuffer->append(data.iname.toUtf8());
+ inBuffer->append(data.iname);
inBuffer->append('\0');
if (debug)
@@ -1361,6 +1351,17 @@ static bool gdbMiGetStringValue(QString *target,
return true;
}
+static bool gdbMiGetByteArrayValue(QByteArray *target,
+ const GdbMi &node,
+ const char *child,
+ const char *encodingChild = 0)
+{
+ QString str;
+ const bool success = gdbMiGetStringValue(&str, node, child, encodingChild);
+ *target = str.toLatin1();
+ return success;
+}
+
static bool gdbMiGetBoolValue(bool *target,
const GdbMi &node,
const char *child)
@@ -1377,7 +1378,8 @@ static bool gdbMiGetBoolValue(bool *target,
* (next level only, it is not further inherited). For example, the root item
* can provide a "childtype" node that specifies the type of the children. */
-struct GdbMiRecursionContext {
+struct GdbMiRecursionContext
+{
GdbMiRecursionContext(int recursionLevelIn = 0) :
recursionLevel(recursionLevelIn), childNumChild(-1), childIndex(0) {}
@@ -1385,7 +1387,7 @@ struct GdbMiRecursionContext {
int childNumChild;
int childIndex;
QString childType;
- QString parentIName;
+ QByteArray parentIName;
};
static void gbdMiToWatchData(const GdbMi &root,
@@ -1396,16 +1398,19 @@ static void gbdMiToWatchData(const GdbMi &root,
qDebug() << Q_FUNC_INFO << '\n' << root.toString(false, 0);
WatchData w;
QString v;
+ QByteArray b;
// Check for name/iname and use as expression default
if (ctx.recursionLevel == 0) {
// parents have only iname, from which name is derived
- if (!gdbMiGetStringValue(&w.iname, root, "iname"))
+ QString iname;
+ if (!gdbMiGetStringValue(&iname, root, "iname"))
qWarning("Internal error: iname missing");
- w.name = w.iname;
+ w.iname = iname.toLatin1();
+ w.name = iname;
const int lastDotPos = w.name.lastIndexOf(QLatin1Char('.'));
if (lastDotPos != -1)
w.name.remove(0, lastDotPos + 1);
- w.exp = w.name;
+ w.exp = w.name.toLatin1();
} else {
// Children can have a 'name' attribute. If missing, assume array index
// For display purposes, it can be overridden by "key"
@@ -1414,8 +1419,8 @@ static void gbdMiToWatchData(const GdbMi &root,
}
// Set iname
w.iname = ctx.parentIName;
- w.iname += QLatin1Char('.');
- w.iname += w.name;
+ w.iname += '.';
+ w.iname += w.name.toLatin1();
// Key?
QString key;
if (gdbMiGetStringValue(&key, root, "key", "keyencoded")) {
@@ -1427,12 +1432,12 @@ static void gbdMiToWatchData(const GdbMi &root,
qWarning("%s\n", qPrintable(msg));
}
gdbMiGetStringValue(&w.displayedType, root, "displayedtype");
- if (gdbMiGetStringValue(&v, root, "editvalue"))
- w.editvalue = v.toLatin1();
- if (gdbMiGetStringValue(&v, root, "exp"))
- w.exp = v;
- gdbMiGetStringValue(&w.addr, root, "addr");
- gdbMiGetStringValue(&w.saddr, root, "saddr");
+ if (gdbMiGetByteArrayValue(&b, root, "editvalue"))
+ w.editvalue = b;
+ if (gdbMiGetByteArrayValue(&b, root, "exp"))
+ w.exp = b;
+ gdbMiGetByteArrayValue(&w.addr, root, "addr");
+ gdbMiGetByteArrayValue(&w.saddr, root, "saddr");
gdbMiGetBoolValue(&w.valueEnabled, root, "valueenabled");
gdbMiGetBoolValue(&w.valueEditable, root, "valueeditable");
if (gdbMiGetStringValue(&v, root, "valuetooltip", "valuetooltipencoded"))
diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h
index 477eed2d33..d880359fca 100644
--- a/src/plugins/debugger/watchutils.h
+++ b/src/plugins/debugger/watchutils.h
@@ -55,7 +55,7 @@ namespace Internal {
class WatchData;
class GdbMi;
-QString dotEscape(QString str);
+QByteArray dotEscape(QByteArray str);
QString currentTime();
bool isSkippableFunction(const QString &funcName, const QString &fileName);
bool isLeavableFunction(const QString &funcName, const QString &fileName);
@@ -71,7 +71,6 @@ bool hasSideEffects(const QString &exp);
bool isKeyWord(const QString &exp);
bool isPointerType(const QString &type);
bool isCharPointerType(const QString &type);
-bool isAccessSpecifier(const QString &str);
bool startsWithDigit(const QString &str);
QString stripPointerType(QString type);
QString gdbQuoteTypes(const QString &type);