Change ValueEdit widget to remember the item instead of the row number.
[kdbg.git] / kdbg / gdbdriver.h
blobf17b1f231ca2203de2bb1488f9e4a4b6640431f0
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 virtual QStringList boolOptionList() const;
22 void setDefaultInvocation(QString cmd) { m_defaultCmd = cmd; }
23 static QString defaultGdb();
24 virtual bool startup(QString cmdStr);
25 virtual void commandFinished(CmdQueueItem* cmd);
26 virtual CmdQueueItem* executeCmd(DbgCommand,
27 bool clearLow = false);
28 virtual CmdQueueItem* executeCmd(DbgCommand, QString strArg,
29 bool clearLow = false);
30 virtual CmdQueueItem* executeCmd(DbgCommand, int intArg,
31 bool clearLow = false);
32 virtual CmdQueueItem* executeCmd(DbgCommand, QString strArg, int intArg,
33 bool clearLow = false);
34 virtual CmdQueueItem* executeCmd(DbgCommand, QString strArg1, QString strArg2,
35 bool clearLow = false);
36 virtual CmdQueueItem* executeCmd(DbgCommand, int intArg1, int intArg2,
37 bool clearLow = false);
38 virtual CmdQueueItem* queueCmd(DbgCommand,
39 QueueMode mode);
40 virtual CmdQueueItem* queueCmd(DbgCommand, QString strArg,
41 QueueMode mode);
42 virtual CmdQueueItem* queueCmd(DbgCommand, int intArg,
43 QueueMode mode);
44 virtual CmdQueueItem* queueCmd(DbgCommand, QString strArg, int intArg,
45 QueueMode mode);
46 virtual CmdQueueItem* queueCmd(DbgCommand, QString strArg1, QString strArg2,
47 QueueMode mode);
49 virtual void terminate();
50 virtual void detachAndTerminate();
51 virtual void interruptInferior();
52 virtual void setPrintQStringDataCmd(const char* cmd);
53 virtual ExprValue* parseQCharArray(const char* output, bool wantErrorValue, bool qt3like);
54 virtual void parseBackTrace(const char* output, QList<StackFrame>& stack);
55 virtual bool parseFrameChange(const char* output, int& frameNo,
56 QString& file, int& lineNo, DbgAddr& address);
57 virtual bool parseBreakList(const char* output, QList<Breakpoint>& brks);
58 virtual bool parseThreadList(const char* output, QList<ThreadInfo>& threads);
59 virtual bool parseBreakpoint(const char* output, int& id,
60 QString& file, int& lineNo, QString& address);
61 virtual void parseLocals(const char* output, QList<ExprValue>& newVars);
62 virtual ExprValue* parsePrintExpr(const char* output, bool wantErrorValue);
63 virtual bool parseChangeWD(const char* output, QString& message);
64 virtual bool parseChangeExecutable(const char* output, QString& message);
65 virtual bool parseCoreFile(const char* output);
66 virtual uint parseProgramStopped(const char* output, QString& message);
67 virtual void parseSharedLibs(const char* output, QStrList& shlibs);
68 virtual bool parseFindType(const char* output, QString& type);
69 virtual void parseRegisters(const char* output, QList<RegisterInfo>& regs);
70 virtual bool parseInfoLine(const char* output,
71 QString& addrFrom, QString& addrTo);
72 virtual void parseDisassemble(const char* output, QList<DisassembledCode>& code);
73 virtual QString parseMemoryDump(const char* output, QList<MemoryDump>& memdump);
74 virtual QString parseSetVariable(const char* output);
75 virtual QString editableValue(VarTree* value);
76 protected:
77 int m_gdbMajor, m_gdbMinor;
78 QString m_programWD; /* just an intermediate storage */
79 QString m_redirect; /* redirection to /dev/null */
80 bool m_haveCoreFile;
81 QString m_defaultCmd; /* how to invoke gdb */
83 QString makeCmdString(DbgCommand cmd, QString strArg);
84 QString makeCmdString(DbgCommand cmd, int intArg);
85 QString makeCmdString(DbgCommand cmd, QString strArg, int intArg);
86 QString makeCmdString(DbgCommand cmd, QString strArg1, QString strArg2);
87 QString makeCmdString(DbgCommand cmd, int intArg1, int intArg2);
88 void parseMarker();
91 #endif // GDBDRIVER_H