3 // Copyright by Johannes Sixt, Keith Isdale
4 // This file is under GPL, the GNU General Public Licence
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
);
24 void slotReceiveOutput(KProcess
* process
, char *buffer
, int buflen
);
26 virtual CmdQueueItem
*executeCmd(DbgCommand
, bool clearLow
= false);
27 virtual CmdQueueItem
*executeCmd(DbgCommand
, QString strArg
,
28 bool clearLow
= false);
29 virtual CmdQueueItem
*executeCmd(DbgCommand
, int intArg
,
30 bool clearLow
= false);
31 virtual CmdQueueItem
*executeCmd(DbgCommand
, QString strArg
,
32 int intArg
, bool clearLow
= false);
33 virtual CmdQueueItem
*executeCmd(DbgCommand
, QString strArg1
,
34 QString strArg2
, bool clearLow
=
36 virtual CmdQueueItem
*executeCmd(DbgCommand
, int intArg1
, int intArg2
,
37 bool clearLow
= false);
38 virtual CmdQueueItem
*queueCmd(DbgCommand
, QueueMode mode
);
39 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg
,
41 virtual CmdQueueItem
*queueCmd(DbgCommand
, int intArg
, QueueMode mode
);
42 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg
, int intArg
,
44 virtual CmdQueueItem
*queueCmd(DbgCommand
, QString strArg1
,
45 QString strArg2
, QueueMode mode
);
47 virtual void terminate();
48 virtual void detachAndTerminate();
49 virtual void interruptInferior();
51 virtual void setPrintQStringDataCmd(const char* cmd
);
53 * Parses the output as an array of QChars.
55 virtual VarTree
*parseQCharArray(const char *output
,
56 bool wantErrorValue
, bool qt3like
);
58 virtual void parseBackTrace(const char *output
,
59 QList
< StackFrame
> &stack
);
60 virtual bool parseFrameChange(const char *output
, int &frameNo
,
61 QString
& file
, int &lineNo
,
63 virtual bool parseBreakList(const char *output
,
64 QList
< Breakpoint
> &brks
);
65 virtual bool parseThreadList(const char *output
,
66 QList
< ThreadInfo
> &threads
);
67 virtual bool parseBreakpoint(const char *output
, int &id
,
68 QString
& file
, int &lineNo
, QString
& address
);
69 virtual void parseLocals(const char *output
,
70 QList
< VarTree
> &newVars
);
71 virtual bool 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