Debugger: Fix Window grabbing on GDB

Needs to make namespace detection work without valid frame

Task-number: QTCREATORBUG-17326
Change-Id: Ia7c7017db4ef384d4f246e11a5601d01f4f366f1
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
hjk
2016-12-13 09:46:51 +01:00
parent 6c8d6c97e5
commit c2eada278e
9 changed files with 245 additions and 126 deletions

View File

@@ -44,6 +44,8 @@
#include <QTime>
#include <QTimer>
#include <functional>
namespace Debugger {
namespace Internal {
@@ -151,11 +153,13 @@ private: ////////// Gdb Command Management //////////
enum GdbCommandFlag {
NoFlags = 0,
// The command needs a stopped inferior.
NeedsStop = 1,
NeedsTemporaryStop = 1,
// No need to wait for the reply before continuing inferior.
Discardable = 2,
// Needs a dummy extra command to force GDB output flushing.
NeedsFlush = 4,
// The command needs a stopped inferior and will stay stopped afterward.
NeedsFullStop = 8,
// Callback expects ResultRunning instead of ResultDone.
RunRequest = 16,
// Callback expects ResultExit instead of ResultDone.
@@ -267,6 +271,7 @@ private: ////////// View & Data Stuff //////////
void selectThread(ThreadId threadId) override;
void activateFrame(int index) override;
void handleAutoContinueInferior();
//
// Breakpoint specific stuff
@@ -378,7 +383,7 @@ protected:
void changeMemory(MemoryAgent *agent, quint64 addr, const QByteArray &data) override;
void handleFetchMemory(const DebuggerResponse &response, MemoryAgentCookie ac);
virtual void watchPoint(const QPoint &) override;
void watchPoint(const QPoint &) override;
void handleWatchPoint(const DebuggerResponse &response);
void showToolTip();
@@ -420,10 +425,11 @@ protected:
QString m_lastWinException;
QString m_lastMissingDebugInfo;
bool m_terminalTrap;
bool m_temporaryStopPending;
bool usesExecInterrupt() const;
bool usesTargetAsync() const;
DebuggerCommandSequence m_onStop;
QHash<int, QString> m_scheduledTestResponses;
QSet<int> m_testCases;