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.
10 #include "dbgdriver.h"
14 class XsldbgDriver
:public DebuggerDriver
{
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
=
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
,
42 virtual CmdQueueItem
*queueCmd(DbgCommand
, int intArg
, QueueMode mode
);
43 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg
, int intArg
,
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
);
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
,
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
,
76 virtual bool parseCoreFile(const char *output
);
77 virtual uint
parseProgramStopped(const char *output
,
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
> ®s
);
83 virtual bool parseInfoLine(const char *output
, QString
& addrFrom
,
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
);
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 */
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
,
105 QString
makeCmdString(DbgCommand cmd
, int intArg1
, int intArg2
);
109 #endif // XSLDBGDRIVER_H