3 // Copyright by Johannes Sixt
4 // This file is under GPL, the GNU General Public Licence
12 class GdbDriver
: public DebuggerDriver
19 virtual QString
driverName() const;
20 virtual QString
defaultInvocation() const;
21 static QString
defaultGdb();
22 virtual bool startup(QString cmdStr
);
23 virtual void commandFinished(CmdQueueItem
* cmd
);
24 virtual CmdQueueItem
* executeCmd(DbgCommand
,
25 bool clearLow
= false);
26 virtual CmdQueueItem
* executeCmd(DbgCommand
, QString strArg
,
27 bool clearLow
= false);
28 virtual CmdQueueItem
* executeCmd(DbgCommand
, int intArg
,
29 bool clearLow
= false);
30 virtual CmdQueueItem
* executeCmd(DbgCommand
, QString strArg
, int intArg
,
31 bool clearLow
= false);
32 virtual CmdQueueItem
* executeCmd(DbgCommand
, QString strArg1
, QString strArg2
,
33 bool clearLow
= false);
34 virtual CmdQueueItem
* executeCmd(DbgCommand
, int intArg1
, int intArg2
,
35 bool clearLow
= false);
36 virtual CmdQueueItem
* queueCmd(DbgCommand
,
38 virtual CmdQueueItem
* queueCmd(DbgCommand
, QString strArg
,
40 virtual CmdQueueItem
* queueCmd(DbgCommand
, int intArg
,
42 virtual CmdQueueItem
* queueCmd(DbgCommand
, QString strArg
, int intArg
,
45 virtual void terminate();
46 virtual void interruptInferior();
47 virtual VarTree
* parseQCharArray(const char* output
, bool wantErrorValue
);
48 virtual void parseBackTrace(const char* output
, QList
<StackFrame
>& stack
);
49 virtual bool parseFrameChange(const char* output
,
50 int& frameNo
, QString
& file
, int& lineNo
);
51 virtual bool parseBreakList(const char* output
, QList
<Breakpoint
>& brks
);
52 virtual bool parseBreakpoint(const char* output
, int& id
,
53 QString
& file
, int& lineNo
);
54 virtual void parseLocals(const char* output
, QList
<VarTree
>& newVars
);
55 virtual bool parsePrintExpr(const char* output
, bool wantErrorValue
,
57 virtual bool parseChangeWD(const char* output
, QString
& message
);
58 virtual bool parseChangeExecutable(const char* output
, QString
& message
);
59 virtual bool parseCoreFile(const char* output
);
60 virtual uint
parseProgramStopped(const char* output
, QString
& message
);
61 virtual void parseSharedLibs(const char* output
, QStrList
& shlibs
);
62 virtual bool parseFindType(const char* output
, QString
& type
);
63 virtual void parseRegisters(const char* output
, QList
<RegisterInfo
>& regs
);
65 int m_gdbMajor
, m_gdbMinor
;
66 QString m_programWD
; /* just an intermediate storage */
67 QString m_redirect
; /* redirection to /dev/null */
70 QString
makeCmdString(DbgCommand cmd
, QString strArg
);
71 QString
makeCmdString(DbgCommand cmd
, int intArg
);
72 QString
makeCmdString(DbgCommand cmd
, QString strArg
, int intArg
);
73 QString
makeCmdString(DbgCommand cmd
, QString strArg1
, QString strArg2
);
74 QString
makeCmdString(DbgCommand cmd
, int intArg1
, int intArg2
);