languages/cpp/debugger/dbgcontroller.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
#ifndef _DBGCONTROLLER_H_
00017
#define _DBGCONTROLLER_H_
00018
00019
#include <qobject.h>
00020
#include <domutil.h>
00021
00022
class KProcess;
00023
class QString;
00024
class QStrList;
00025
00026
namespace GDBDebugger
00027 {
00028
00029
class Breakpoint;
00030
class DbgCommand;
00031
class TrimmableItem;
00032
class VarItem;
00033
00034
00038
00039
00040 enum DBGStateFlags
00041 {
00042
s_dbgNotStarted = 1,
00043
s_appNotStarted = 2,
00044
s_appBusy = 4,
00045
s_waitForWrite = 8,
00046
s_programExited = 16,
00047
s_silent = 32,
00048
s_viewLocals = 64,
00049
s_viewBT = 128,
00050
s_viewBP = 256,
00051
s_attached = 512,
00052
s_core = 1024,
00053
s_waitTimer = 2048,
00054
s_shuttingDown = 4096,
00055
s_viewThreads = 8192
00056 };
00057
00058
00059
00060 class DbgController :
public QObject
00061 {
00062 Q_OBJECT
00063
00064
public:
00065
00066
DbgController();
00067
virtual ~DbgController();
00068
00069
virtual bool stateIsOn(
int state ) = 0;
00070
00071
protected:
00072
virtual void queueCmd(
DbgCommand *cmd,
bool executeNext) = 0;
00073
virtual char *
parse(
char *str) = 0;
00074
00075
public slots:
00076
virtual void configure() = 0;
00077
00086
virtual void slotStart(
const QString& shell,
00087
const DomUtil::PairList& run_envvars,
00088
const QString& run_directory,
00089
const QString &application,
00090
const QString& run_arguments) = 0;
00091
00092
virtual void slotCoreFile(
const QString &coreFile) = 0;
00093
virtual void slotAttachTo(
int pid) = 0;
00094
00095
virtual void slotStopDebugger() = 0;
00096
00097
virtual void slotRun() = 0;
00098
virtual void slotRunUntil(
const QString &fileName,
int lineNum) = 0;
00099
virtual void slotStepInto() = 0;
00100
virtual void slotStepOver() = 0;
00101
virtual void slotStepIntoIns() = 0;
00102
virtual void slotStepOverIns() = 0;
00103
virtual void slotStepOutOff() = 0;
00104
00105
virtual void slotBreakInto() = 0;
00106
virtual void slotBPState(
const Breakpoint&) = 0;
00107
00108
virtual void slotDisassemble(
const QString &start,
const QString &end) = 0;
00109
virtual void slotMemoryDump(
const QString &start,
const QString &amount)= 0;
00110
virtual void slotRegisters() = 0;
00111
virtual void slotLibraries() = 0;
00112
00113
virtual void slotExpandItem(
TrimmableItem *parent) = 0;
00114
virtual void slotExpandUserItem(
VarItem *parent,
00115
const QCString &userRequest) = 0;
00116
virtual void slotSelectFrame(
int frame,
int thread,
bool needFrames) = 0;
00117
virtual void slotSetLocalViewState(
bool onOff) = 0;
00118
00119
00120 virtual void slotVarItemConstructed(
VarItem *) {}
00121
00122
protected slots:
00123
virtual void slotDbgStdout(
KProcess *proc,
char *buf,
int buflen) = 0;
00124 virtual void slotDbgStderr(
KProcess*,
char*,
int) {} ;
00125
virtual void slotDbgWroteStdin(
KProcess *proc) = 0;
00126
virtual void slotDbgProcessExited(
KProcess *proc) = 0;
00127
00128 signals:
00129
void gotoSourcePosition (
const QString &fileName,
int lineNum);
00130
void rawGDBBreakpointList (
char *buf);
00131
void rawGDBBreakpointSet (
char *buf,
int key);
00132
void rawGDBDisassemble (
char *buf);
00133
void rawGDBMemoryDump (
char *buf);
00134
void rawGDBRegisters (
char *buf);
00135
void rawGDBLibraries (
char *buf);
00136
void ttyStdout (
const char *output);
00137
void ttyStderr (
const char *output);
00138
void gdbStdout (
const char *output);
00139
void gdbStderr (
const char *output);
00140
void showStepInSource (
const QString &fileName,
int lineNum,
const QString &address);
00141
void dbgStatus (
const QString &status,
int statusFlag);
00142
00143
protected:
00144 KProcess *
dbgProcess_;
00145 };
00146
00147 }
00148
00149
#endif
This file is part of the documentation for KDevelop Version 3.0.4.