Updated documentation.
[kdbg.git] / kdbg / gdbdriver.h
blobb5dfdad85b2c4f4239c237039c380fc933783ea0
1 // $Id$
3 // Copyright by Johannes Sixt
4 // This file is under GPL, the GNU General Public Licence
6 #ifndef GDBDRIVER_H
7 #define GDBDRIVER_H
9 #include "dbgdriver.h"
12 class GdbDriver : public DebuggerDriver
14 Q_OBJECT
15 public:
16 GdbDriver();
17 ~GdbDriver();
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,
37 QueueMode mode);
38 virtual CmdQueueItem* queueCmd(DbgCommand, QString strArg,
39 QueueMode mode);
40 virtual CmdQueueItem* queueCmd(DbgCommand, int intArg,
41 QueueMode mode);
42 virtual CmdQueueItem* queueCmd(DbgCommand, QString strArg, int intArg,
43 QueueMode mode);
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,
56 VarTree*& var);
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);
64 protected:
65 int m_gdbMajor, m_gdbMinor;
66 QString m_programWD; /* just an intermediate storage */
67 QString m_redirect; /* redirection to /dev/null */
68 bool m_haveCoreFile;
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);
75 void parseMarker();
78 #endif // GDBDRIVER_H