KDevelop API Documentation

languages/java/debugger/jdbcontroller.h

Go to the documentation of this file.
00001 /*************************************************************************** 00002 jdbcontroller.h - description 00003 ------------------- 00004 begin : Sun Aug 8 1999 00005 copyright : (C) 1999 by John Birch 00006 email : jbb@kdevelop.org 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef _JDBCONTROLLER_H_ 00019 #define _JDBCONTROLLER_H_ 00020 00021 #include "dbgcontroller.h" 00022 #include <qobject.h> 00023 #include <qptrlist.h> 00024 #include <qdict.h> 00025 #include <qstringlist.h> 00026 00027 00028 class KProcess; 00029 class QString; 00030 00031 namespace JAVADebugger 00032 { 00033 00034 class Breakpoint; 00035 class DbgCommand; 00036 class FramestackWidget; 00037 class VarItem; 00038 class VariableTree; 00039 class STTY; 00040 00041 class JDBVarItem : QObject { 00042 Q_OBJECT 00043 public: 00044 JDBVarItem(); 00045 QString toString(); 00046 00047 QString value; 00048 QString name; 00049 QPtrList<JDBVarItem> siblings; 00050 00051 }; 00052 00053 00059 class JDBController : public DbgController 00060 { 00061 Q_OBJECT 00062 00063 public: 00064 JDBController(VariableTree *varTree, FramestackWidget *frameStack, QString projectDirectory, QString mainProgram); 00065 ~JDBController(); 00066 void reConfig(); 00067 00068 protected: 00069 void queueCmd(DbgCommand *cmd, bool executeNext=false); 00070 00071 private: 00072 QString getFile(QString className); 00073 void varUpdateDone(); 00074 void parseBacktraceList (char *buf); 00075 void parseLocals (char *buf); 00076 void analyzeDump (QString data); 00077 char* parseLine (char *buf); 00078 char* parseInfo (char *buf); 00079 char* parseBacktrace (char *buf); 00080 char* parseLocalVars (char *buf); 00081 char* parseDump (char *buf); 00082 void parseLocals(); 00083 void parseFrameSelected (char *buf); 00084 00085 char *parse (char *buf); 00086 00087 void pauseApp(); 00088 void executeCmd (); 00089 void destroyCmds(); 00090 void removeInfoRequests(); 00091 void actOnProgramPause(const QString &msg); 00092 void programNoApp(const QString &msg, bool msgBox); 00093 00094 void setBreakpoint(const QCString &BPSetCmd, int key); 00095 void clearBreakpoint(const QCString &BPClearCmd); 00096 void modifyBreakpoint(Breakpoint *BP); 00097 00098 void setStateOn(int stateOn) { state_ |= stateOn; } 00099 void setStateOff(int stateOff) { state_ &= ~stateOff; } 00100 bool stateIsOn(int state) { return state_ &state; } 00101 00102 QString classpath_; 00103 QString mainclass_; 00104 QString projectDirectory_; 00105 QString curLine; 00106 QString curMethod, locals; 00107 QDict<JDBVarItem> localData; 00108 QStringList nameQueue; 00109 int s_command; 00110 int stackLineCount, varLineCount; 00111 bool parsedThis; 00112 public slots: 00113 void slotStart(const QString &application, const QString &args, const QString &sDbgShell=QString()); 00114 void slotCoreFile(const QString &coreFile); 00115 void slotAttachTo(int pid); 00116 00117 void slotRun(); 00118 void slotRunUntil(const QString &filename, int lineNum); 00119 void slotStepInto(); 00120 void slotStepOver(); 00121 void slotStepIntoIns(); 00122 void slotStepOverIns(); 00123 void slotStepOutOff(); 00124 00125 void slotBreakInto(); 00126 void slotBPState(Breakpoint *BP); 00127 void slotClearAllBreakpoints(); 00128 00129 void slotDisassemble(const QString &start, const QString &end); 00130 void slotMemoryDump(const QString &start, const QString &amount); 00131 void slotRegisters(); 00132 void slotLibraries(); 00133 00134 void slotExpandItem(VarItem *parent); 00135 void slotExpandUserItem(VarItem *parent, const QCString &userRequest); 00136 void slotSelectFrame(int frame); 00137 void slotSetLocalViewState(bool onOff); 00138 00139 protected slots: 00140 void slotDbgStdout(KProcess *proc, char *buf, int buflen); 00141 void slotDbgStderr(KProcess *proc, char *buf, int buflen); 00142 void slotDbgWroteStdin(KProcess *proc); 00143 void slotDbgProcessExited(KProcess *proc); 00144 void slotStepInSource(const QString &fileName, int lineNum); 00145 void slotDbgStatus(const QString &status, int state); 00146 void slotDebuggerStarted(); 00147 00148 private slots: 00149 void slotAbortTimedEvent(); 00150 00151 signals: 00152 void rawData (const QString &rawData); 00153 void showStepInSource (const QString &fileName, int lineNum, const QString &address); 00154 void rawJDBBreakpointList (char *buf); 00155 void rawJDBBreakpointSet (char *buf, int key); 00156 void rawJDBDisassemble (char *buf); 00157 void rawJDBMemoryDump (char *buf); 00158 void rawJDBRegisters (char *buf); 00159 void rawJDBLibraries (char *buf); 00160 void ttyStdout (const char *output); 00161 void ttyStderr (const char *output); 00162 void dbgStatus (const QString &status, int statusFlag); 00163 void acceptPendingBPs (); 00164 void unableToSetBPNow (int BPNo); 00165 void debuggerStarted (); 00166 00167 private: 00168 FramestackWidget* frameStack_; 00169 VariableTree* varTree_; 00170 int currentFrame_; 00171 00172 int state_; 00173 int jdbSizeofBuf_; // size of the output buffer 00174 int jdbOutputLen_; // amount of data in the output buffer 00175 char* jdbOutput_; // buffer for the output from kprocess 00176 00177 QPtrList<DbgCommand> cmdList_; 00178 DbgCommand* currentCmd_; 00179 00180 STTY* tty_; 00181 bool programHasExited_; 00182 00183 // Configuration values 00184 bool config_breakOnLoadingLibrary_; 00185 bool config_forceBPSet_; 00186 bool config_displayStaticMembers_; 00187 bool config_dbgTerminal_; 00188 QString config_jdbPath_; 00189 }; 00190 00191 } 00192 00193 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Oct 19 08:01:43 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003