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"
13 class XsldbgDriver
:public DebuggerDriver
{
18 virtual QString
driverName() const;
19 virtual QString
defaultInvocation() const;
20 virtual QStringList
boolOptionList() const;
21 static QString
defaultXsldbg();
22 virtual bool startup(QString cmdStr
);
23 virtual void commandFinished(CmdQueueItem
* cmd
);
25 virtual CmdQueueItem
*executeCmd(DbgCommand
, 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
,
31 int intArg
, bool clearLow
= false);
32 virtual CmdQueueItem
*executeCmd(DbgCommand
, QString strArg1
,
33 QString strArg2
, bool clearLow
=
35 virtual CmdQueueItem
*executeCmd(DbgCommand
, int intArg1
, int intArg2
,
36 bool clearLow
= false);
37 virtual CmdQueueItem
*queueCmd(DbgCommand
, QueueMode mode
);
38 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg
,
40 virtual CmdQueueItem
*queueCmd(DbgCommand
, int intArg
, QueueMode mode
);
41 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg
, int intArg
,
43 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg1
,
44 QString strArg2
, QueueMode mode
);
46 virtual void terminate();
47 virtual void detachAndTerminate();
48 virtual void interruptInferior();
50 virtual void setPrintQStringDataCmd(const char* cmd
);
52 * Parses the output as an array of QChars.
54 virtual ExprValue
*parseQCharArray(const char *output
,
55 bool wantErrorValue
, bool qt3like
);
57 virtual void parseBackTrace(const char *output
,
58 std::list
< StackFrame
> &stack
);
59 virtual bool parseFrameChange(const char *output
, int &frameNo
,
60 QString
& file
, int &lineNo
,
62 virtual bool parseBreakList(const char *output
,
63 std::list
< Breakpoint
> &brks
);
64 virtual std::list
<ThreadInfo
> parseThreadList(const char *output
);
65 virtual bool parseBreakpoint(const char *output
, int &id
,
66 QString
& file
, int &lineNo
, QString
& address
);
67 virtual void parseLocals(const char *output
,
68 std::list
< ExprValue
* > &newVars
);
69 virtual ExprValue
* parsePrintExpr(const char *output
, bool wantErrorValue
);
70 virtual bool parseChangeWD(const char *output
, QString
& message
);
71 virtual bool parseChangeExecutable(const char *output
,
73 virtual bool parseCoreFile(const char *output
);
74 virtual uint
parseProgramStopped(const char *output
,
76 virtual QStringList
parseSharedLibs(const char *output
);
77 virtual bool parseFindType(const char *output
, QString
& type
);
78 virtual std::list
<RegisterInfo
> parseRegisters(const char *output
);
79 virtual bool parseInfoLine(const char *output
, QString
& addrFrom
,
81 virtual std::list
<DisassembledCode
> parseDisassemble(const char *output
);
82 virtual QString
parseMemoryDump(const char *output
,
83 std::list
< MemoryDump
> &memdump
);
84 virtual QString
parseSetVariable(const char* output
);
87 QString m_programWD
; /* just an intermediate storage */
88 QString m_xslFile
; /* needed to display it initially */
89 bool m_haveDataFile
; /* have we set the XML data file to use? */
90 QString m_redirect
; /* redirection to /dev/null */
93 QString
makeCmdString(DbgCommand cmd
, QString strArg
);
94 QString
makeCmdString(DbgCommand cmd
, int intArg
);
95 QString
makeCmdString(DbgCommand cmd
, QString strArg
, int intArg
);
96 QString
makeCmdString(DbgCommand cmd
, QString strArg1
,
98 QString
makeCmdString(DbgCommand cmd
, int intArg1
, int intArg2
);
99 virtual int findPrompt(const QByteArray
& output
) const;
103 #endif // XSLDBGDRIVER_H