diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 2d1e5e18325082ca339d3e8a8a8f7995a37777d2..ea6f6fea51e112615b1926bce53726de08ef6c53 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -180,6 +180,11 @@ void DebuggerManager::init() m_registerHandler = 0; m_statusLabel = new QLabel; + // FIXME: Do something to show overly long messages at least partially + //QSizePolicy policy = m_statusLabel->sizePolicy(); + //policy.setHorizontalPolicy(QSizePolicy::MinimumExpanding); + //m_statusLabel->setSizePolicy(policy); + //m_statusLabel->setWordWrap(true); m_breakWindow = new BreakWindow; m_disassemblerWindow = new DisassemblerWindow; m_modulesWindow = new ModulesWindow(this); diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 273a95cbc20141432fdfe244a18c837a08cef837..24e952f3071350a838a03bcc349d7d2c579904fe 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -724,54 +724,14 @@ void GdbEngine::handleTargetCore(const GdbResultRecord &, const QVariant &) { qq->notifyInferiorStopped(); q->showStatusMessage(tr("Core file loaded.")); - q->resetLocation(); - - // - // Stack - // + tryLoadDebuggingHelpers(); qq->stackHandler()->setCurrentIndex(0); updateLocals(); // Quick shot - reloadStack(); if (supportsThreads()) postCommand(_("-thread-list-ids"), WatchUpdate, CB(handleStackListThreads), 0); - - // - // Disassembler - // - // XXX we have no data here ... - //m_address = data.findChild("frame").findChild("addr").data(); - //qq->reloadDisassembler(); - - // - // Registers - // qq->reloadRegisters(); - - // Gdb-Macro based DebuggingHelpers - postCommand(_( - "define qdumpqstring\n" - "set $i = 0\n" - "set $l = $arg0->d->size\n" - "set $p = $arg0->d->data\n" - "while $i < $l\n" - "printf \"%d \",$p[$i++]\n" - "end\n" - "printf \"\\n\"\n" - "end\n" - )); - - postCommand(_( - "define qdumpqstringlist\n" - "set $i = $arg0->d->begin\n" - "set $e = $arg0->d->end\n" - "while $i < $e\n" - "printf \"%d \",$arg0->d->array + $i++\n" - "end\n" - "printf \"\\n\"\n" - "end\n" - )); } #if 0 @@ -1677,6 +1637,7 @@ void GdbEngine::handleTargetRemote(const GdbResultRecord &record, const QVariant { if (record.resultClass == GdbResultDone) { //postCommand(_("-exec-continue"), CB(handleExecRun)); + m_waitingForBreakpointSynchronizationToContinue = true; handleAqcuiredInferior(); } else if (record.resultClass == GdbResultError) { // 16^error,msg="hd:5555: Connection timed out." @@ -3904,8 +3865,32 @@ void GdbEngine::tryLoadDebuggingHelpers() if (m_debuggingHelperState != DebuggingHelperUninitialized) return; - if (!startModeAllowsDumpers()) + if (!startModeAllowsDumpers()) { + // load gdb macro based dumpers at least + postCommand(_( + "define qdumpqstring\n" + "set $i = 0\n" + "set $l = $arg0->d->size\n" + "set $p = $arg0->d->data\n" + "while $i < $l\n" + "printf \"%d \",$p[$i++]\n" + "end\n" + "printf \"\\n\"\n" + "end\n" + )); + + postCommand(_( + "define qdumpqstringlist\n" + "set $i = $arg0->d->begin\n" + "set $e = $arg0->d->end\n" + "while $i < $e\n" + "printf \"%d \",$arg0->d->array + $i++\n" + "end\n" + "printf \"\\n\"\n" + "end\n" + )); return; + } PENDING_DEBUG("TRY LOAD CUSTOM DUMPERS"); m_debuggingHelperState = DebuggingHelperUnavailable;