Document how to specify templates in type tables.
[kdbg.git] / kdbg / xsldbgdriver.h
blobbcd52461516bcfdc0131c05d03637b02a26ed636
1 /*
2 * Copyright Johannes Sixt, Keith Isdale
3 * This file is licensed under the GNU General Public License Version 2.
4 * See the file COPYING in the toplevel directory of the source directory.
5 */
7 #ifndef XSLDBGDRIVER_H
8 #define XSLDBGDRIVER_H
10 #include "dbgdriver.h"
11 #include "qregexp.h"
14 class XsldbgDriver:public DebuggerDriver {
15 Q_OBJECT public:
16 XsldbgDriver();
17 ~XsldbgDriver();
19 virtual QString driverName() const;
20 virtual QString defaultInvocation() const;
21 virtual QStringList boolOptionList() const;
22 static QString defaultXsldbg();
23 virtual bool startup(QString cmdStr);
24 virtual void commandFinished(CmdQueueItem * cmd);
25 void slotReceiveOutput(KProcess * process, char *buffer, int buflen);
27 virtual CmdQueueItem *executeCmd(DbgCommand, 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,
33 int intArg, bool clearLow = false);
34 virtual CmdQueueItem *executeCmd(DbgCommand, QString strArg1,
35 QString strArg2, bool clearLow =
36 false);
37 virtual CmdQueueItem *executeCmd(DbgCommand, int intArg1, int intArg2,
38 bool clearLow = false);
39 virtual CmdQueueItem *queueCmd(DbgCommand, QueueMode mode);
40 virtual CmdQueueItem *queueCmd(DbgCommand, QString strArg,
41 QueueMode mode);
42 virtual CmdQueueItem *queueCmd(DbgCommand, int intArg, QueueMode mode);
43 virtual CmdQueueItem *queueCmd(DbgCommand, QString strArg, int intArg,
44 QueueMode mode);
45 virtual CmdQueueItem *queueCmd(DbgCommand, QString strArg1,
46 QString strArg2, QueueMode mode);
48 virtual void terminate();
49 virtual void detachAndTerminate();
50 virtual void interruptInferior();
52 virtual void setPrintQStringDataCmd(const char* cmd);
53 /**
54 * Parses the output as an array of QChars.
56 virtual ExprValue *parseQCharArray(const char *output,
57 bool wantErrorValue, bool qt3like);
59 virtual void parseBackTrace(const char *output,
60 QList < StackFrame > &stack);
61 virtual bool parseFrameChange(const char *output, int &frameNo,
62 QString & file, int &lineNo,
63 DbgAddr & address);
64 virtual bool parseBreakList(const char *output,
65 QList < Breakpoint > &brks);
66 virtual bool parseThreadList(const char *output,
67 QList < ThreadInfo > &threads);
68 virtual bool parseBreakpoint(const char *output, int &id,
69 QString & file, int &lineNo, QString& address);
70 virtual void parseLocals(const char *output,
71 QList < ExprValue > &newVars);
72 virtual ExprValue * parsePrintExpr(const char *output, bool wantErrorValue);
73 virtual bool parseChangeWD(const char *output, QString & message);
74 virtual bool parseChangeExecutable(const char *output,
75 QString & message);
76 virtual bool parseCoreFile(const char *output);
77 virtual uint parseProgramStopped(const char *output,
78 QString & message);
79 virtual void parseSharedLibs(const char *output, QStrList & shlibs);
80 virtual bool parseFindType(const char *output, QString & type);
81 virtual void parseRegisters(const char *output,
82 QList < RegisterInfo > &regs);
83 virtual bool parseInfoLine(const char *output, QString & addrFrom,
84 QString & addrTo);
85 virtual void parseDisassemble(const char *output,
86 QList < DisassembledCode > &code);
87 virtual QString parseMemoryDump(const char *output,
88 QList < MemoryDump > &memdump);
89 virtual QString parseSetVariable(const char* output);
91 protected:
92 int m_gdbMajor, m_gdbMinor;
93 QString m_programWD; /* just an intermediate storage */
94 QString m_xslFile; /* needed to display it initially */
95 bool m_haveDataFile; /* have we set the XML data file to use? */
96 QString m_redirect; /* redirection to /dev/null */
97 bool m_haveCoreFile;
98 QRegExp m_markerRE;
100 QString makeCmdString(DbgCommand cmd, QString strArg);
101 QString makeCmdString(DbgCommand cmd, int intArg);
102 QString makeCmdString(DbgCommand cmd, QString strArg, int intArg);
103 QString makeCmdString(DbgCommand cmd, QString strArg1,
104 QString strArg2);
105 QString makeCmdString(DbgCommand cmd, int intArg1, int intArg2);
106 void parseMarker();
109 #endif // XSLDBGDRIVER_H