[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-devel
Subject:    Re: [PATCH][EXAMPLE] gdbserver embedded debugging in kdevelop
From:       Roger Larsson <roger.larsson () norran ! net>
Date:       2003-08-06 3:39:42
[Download RAW message or body]

On Wednesday 30 July 2003 00.50, Roger Larsson wrote:
> Hi,
>
> I have added some scripting features necessary for embedded debugging in
> kdevelop.
>
> Linked is also a project that uses those features to debug over ssh on an
> x86 using static libraries.
> 	http://w1.910.telia.com/~u91005870/hello-distclean.zip
> 	you will have to edit user and computer names...
>
> Short description:
> * After build the executable has to be transferred to the target.
>   This is done in src/Makefile.am
> 	all: hello.remote
> 	hello.remote: hello
> 	        transfer-target.sh hello
>   Note: transfer-target.sh also strips the executable.
>
> * When pressing RUN button (>)
> 	* First a shell script "prepare-target.sh" (place in path) is executed
> that uses ssh (could use rsh, serial terminal, etc.) to start the
> application on the target - input and output are redirected.
>
> 	* A user defined gdb script, "prepare-target.gdb", is run.
> 	  This connects to the target application.
> 	  and executes an optional "continue" to reach the first breakpoint.
>
> * Additional feature
> 	* A gdb script run at init time (not tested)
>
> Missing:
> * GUI for configure options, see "hello.kdevelop" for manual configuration.

Added, review this part carefully.

>
> Problem:
> * Timing between shell script and gdb script is tight...
> * ./configure => "-g -O2", this leads to:
> 	* breakpoints might not work
> 	* confusing single stepping.

I should note that this is a potential problem - and that the possibility
can be reduced with a
  shell sleep 5
in the prepare-target.gdb file

/RogerL

-- 
Roger Larsson
Skellefteċ
Sweden

["remote-kdevelop-R6.patch" (text/x-diff)]

Index: debuggerconfigwidget.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/debugger/debuggerconfigwidget.cpp,v
retrieving revision 1.10
diff -u -3 -p -r1.10 debuggerconfigwidget.cpp
--- debuggerconfigwidget.cpp	28 Jul 2003 16:51:51 -0000	1.10
+++ debuggerconfigwidget.cpp	6 Aug 2003 01:34:20 -0000
@@ -52,6 +52,11 @@ DebuggerConfigWidget::DebuggerConfigWidg
     }
     debuggingShell_edit->setText( shell );
 
+    // Use setFile instead?
+    configGdbScript_edit->setText( DomUtil::readEntry(dom, \
"/kdevdebugger/general/configGdbScript")); +    runShellScript_edit ->setText( \
DomUtil::readEntry(dom, "/kdevdebugger/general/runShellScript")); +    \
runGdbScript_edit   ->setText( DomUtil::readEntry(dom, \
"/kdevdebugger/general/runGdbScript")); +
     displayStaticMembers_box->setChecked(  DomUtil::readBoolEntry(dom, \
                "/kdevdebugger/display/staticmembers", false));
     asmDemangle_box->setChecked(           DomUtil::readBoolEntry(dom, \
                "/kdevdebugger/display/demanglenames", true));
     breakOnLoadingLibrary_box->setChecked( DomUtil::readBoolEntry(dom, \
"/kdevdebugger/general/breakonloadinglibs", true)); @@ -72,6 +77,10 @@ void \
                DebuggerConfigWidget::accept()
     DomUtil::writeEntry(dom, "/kdevdebugger/general/programargs", \
                programArgs_edit->text());
     DomUtil::writeEntry(dom, "/kdevdebugger/general/gdbpath", gdbPath_edit->text());
     DomUtil::writeEntry(dom, "/kdevdebugger/general/dbgshell", \
debuggingShell_edit->text()); +
+    DomUtil::writeEntry(dom, "/kdevdebugger/general/configGdbScript", \
configGdbScript_edit->text()); +    DomUtil::writeEntry(dom, \
"/kdevdebugger/general/runShellScript", runShellScript_edit ->text()); +    \
DomUtil::writeEntry(dom, "/kdevdebugger/general/runGdbScript", runGdbScript_edit   \
->text());  
     DomUtil::writeBoolEntry(dom, "/kdevdebugger/display/staticmembers", \
                displayStaticMembers_box->isChecked());
     DomUtil::writeBoolEntry(dom, "/kdevdebugger/display/demanglenames", \
                asmDemangle_box->isChecked());
Index: debuggerconfigwidgetbase.ui
===================================================================
RCS file: /home/kde/kdevelop/parts/debugger/debuggerconfigwidgetbase.ui,v
retrieving revision 1.9
diff -u -3 -p -r1.9 debuggerconfigwidgetbase.ui
--- debuggerconfigwidgetbase.ui	28 Jul 2003 16:51:51 -0000	1.9
+++ debuggerconfigwidgetbase.ui	6 Aug 2003 01:34:20 -0000
@@ -1,4 +1,4 @@
-<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
 <class>DebuggerConfigWidgetBase</class>
 <widget class="QWidget">
     <property name="name">
@@ -8,163 +8,419 @@
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>718</width>
-            <height>421</height>
+            <width>758</width>
+            <height>418</height>
         </rect>
     </property>
     <property name="caption">
         <string>Debugger Configuration</string>
     </property>
-    <grid>
+    <widget class="QCheckBox">
         <property name="name">
-            <cstring>unnamed</cstring>
+            <cstring>asmDemangle_box</cstring>
         </property>
-
-        <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>asmDemangle_box</cstring>
-            </property>
-            <property name="text">
-                <string>Display &amp;demangled names</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>When displaying the disassembled code you
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>232</y>
+                <width>710</width>
+                <height>19</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Display &amp;demangled names</string>
+        </property>
+        <property name="accel">
+            <string>Alt+D</string>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>When displaying the disassembled code you
 can select to see the methods' mangled names.
 However, non-mangled names are easier to read.</string>
-            </property>
-        </widget>
-        <widget class="QCheckBox" row="6" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>enableFloatingToolBar_box</cstring>
-            </property>
-            <property name="text">
-                <string>Enable &amp;floating toolbar</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>Use the floating toolbar. This toolbar always stays
-on top of all windows so that if the app covers KDevelop
-you have control of the app through the small toolbar. It
-can also be docked into the panel.
-
-This toolbar is in addition to the toolbar in KDevelop.</string>
-            </property>
-        </widget>
-        <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>displayStaticMembers_box</cstring>
-            </property>
-            <property name="text">
-                <string>Display static &amp;members</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>Displaying static members makes GDB slower in
-producing data within KDE and Qt.
-It may change the "signature" of the data
-which QString and friends rely on,
-but if you need to debug into these values then
-check this option.</string>
-            </property>
-        </widget>
-        <widget class="QCheckBox" row="7" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>dbgTerminal_box</cstring>
-            </property>
-            <property name="text">
-                <string>Enable separate &amp;terminal for application IO</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>This allows you to enter terminal input when your
+        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>runGdbScript_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>162</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>configGdbScript_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>106</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Config gdb script:</string>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>programArgs_edit</cstring>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>Arguments that are given to the application when it is \
debugged.</string> +        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>gdbPath_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>60</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <widget class="QCheckBox">
+        <property name="name">
+            <cstring>dbgTerminal_box</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>307</y>
+                <width>710</width>
+                <height>19</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Enable separate &amp;terminal for application IO</string>
+        </property>
+        <property name="accel">
+            <string>Alt+T</string>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>This allows you to enter terminal input when your
 application contains terminal input code (e.g. cin, fgets, etc.).
 If you use terminal input in your application then check this option.
 Otherwise leave it unchecked.</string>
-            </property>
-        </widget>
-        <widget class="QCheckBox" row="5" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>breakOnLoadingLibrary_box</cstring>
-            </property>
-            <property name="text">
-                <string>Try settings &amp;breakpoints on library loading</string>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>If GDB hasn't seen a library that will be loaded via
+        </property>
+    </widget>
+    <widget class="QCheckBox">
+        <property name="name">
+            <cstring>breakOnLoadingLibrary_box</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>257</y>
+                <width>710</width>
+                <height>19</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Try settings &amp;breakpoints on library loading</string>
+        </property>
+        <property name="accel">
+            <string>Alt+B</string>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>If GDB hasn't seen a library that will be loaded via
 "dlopen" then it will refuse to set a breakpoint in that code.
 We can get GDB to stop on a library load and hence
 try to set the pending breakpoints. See the documentation
 for more details and a "gotcha" relating to this behavior.
 
 If you are not "dlopen"ing libs then leave this unchecked.</string>
-            </property>
-        </widget>
-        <widget class="QLineEdit" row="2" column="1">
-            <property name="name">
-                <cstring>gdbPath_edit</cstring>
-            </property>
-        </widget>
-        <widget class="QLabel" row="2" column="0">
-            <property name="name">
-                <cstring>gdbPath_label</cstring>
-            </property>
-            <property name="text">
-                <string>Path to &amp;gdb:</string>
-            </property>
-            <property name="buddy" stdset="0">
-                <cstring>gdbPath_edit</cstring>
-            </property>
-        </widget>
-        <widget class="QLineEdit" row="1" column="1">
-            <property name="name">
-                <cstring>debuggingShell_edit</cstring>
-            </property>
-        </widget>
-        <widget class="QLabel" row="1" column="0">
-            <property name="name">
-                <cstring>debuggingShell_label</cstring>
-            </property>
-            <property name="text">
-                <string>Debugging &amp;shell:</string>
-            </property>
-            <property name="buddy" stdset="0">
-                <cstring>debuggingShell_edit</cstring>
-            </property>
-        </widget>
-        <widget class="QLabel" row="0" column="0">
-            <property name="name">
-                <cstring>programArgs_label</cstring>
-            </property>
-            <property name="text">
-                <string>Program &amp;arguments:</string>
-            </property>
-            <property name="buddy" stdset="0">
-                <cstring>programArgs_edit</cstring>
-            </property>
-            <property name="whatsThis" stdset="0">
-                <string>Arguments that are given to the application when it is \
                debugged.</string>
-            </property>
-        </widget>
-        <widget class="QLineEdit" row="0" column="1">
-            <property name="name">
-                <cstring>programArgs_edit</cstring>
-            </property>
-        </widget>
-        <spacer row="8" column="1">
-            <property name="name">
-                <cstring>Spacer2</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="sizeHint">
-                <size>
-                    <width>20</width>
-                    <height>60</height>
-                </size>
-            </property>
-        </spacer>
-    </grid>
+        </property>
+    </widget>
+    <widget class="QCheckBox">
+        <property name="name">
+            <cstring>displayStaticMembers_box</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>207</y>
+                <width>710</width>
+                <height>19</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Display static &amp;members</string>
+        </property>
+        <property name="accel">
+            <string>Alt+M</string>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>Displaying static members makes GDB slower in
+producing data within KDE and Qt.
+It may change the "signature" of the data
+which QString and friends rely on,
+but if you need to debug into these values then
+check this option.</string>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>runGdbScript_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>162</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Run gdb script:</string>
+            <comment>Gdb script to be executed at run time.</comment>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>gdbPath_edit</cstring>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>programArgs_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>4</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Program &amp;arguments:</string>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>programArgs_edit</cstring>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>Arguments that are given to the application when it is \
debugged.</string> +        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>debuggingShell_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>32</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>runShellScript_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>134</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Run shell script:</string>
+            <comment>Shell script to be executed at run time</comment>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>debuggingShell_edit</cstring>
+        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>runShellScript_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>134</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <widget class="QCheckBox">
+        <property name="name">
+            <cstring>enableFloatingToolBar_box</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>282</y>
+                <width>710</width>
+                <height>19</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Enable &amp;floating toolbar</string>
+        </property>
+        <property name="accel">
+            <string>Alt+F</string>
+        </property>
+        <property name="whatsThis" stdset="0">
+            <string>Use the floating toolbar. This toolbar always stays
+on top of all windows so that if the app covers KDevelop
+you have control of the app through the small toolbar. It
+can also be docked into the panel.
+
+This toolbar is in addition to the toolbar in KDevelop.</string>
+        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>configGdbScript_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>106</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>gdbPath_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>60</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Path to &amp;gdb:</string>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>gdbPath_edit</cstring>
+        </property>
+    </widget>
+    <widget class="QLabel">
+        <property name="name">
+            <cstring>debuggingShell_label</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>32</y>
+                <width>110</width>
+                <height>22</height>
+            </rect>
+        </property>
+        <property name="text">
+            <string>Debugging &amp;shell:</string>
+        </property>
+        <property name="buddy" stdset="0">
+            <cstring>debuggingShell_edit</cstring>
+        </property>
+    </widget>
+    <widget class="QLineEdit">
+        <property name="name">
+            <cstring>programArgs_edit</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>119</x>
+                <y>4</y>
+                <width>594</width>
+                <height>22</height>
+            </rect>
+        </property>
+    </widget>
+    <spacer>
+        <property name="name">
+            <cstring>Spacer2_2</cstring>
+        </property>
+        <property name="orientation">
+            <enum>Vertical</enum>
+        </property>
+        <property name="sizeType">
+            <enum>Expanding</enum>
+        </property>
+        <property name="sizeHint">
+            <size>
+                <width>270</width>
+                <height>16</height>
+            </size>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>190</y>
+                <width>270</width>
+                <height>16</height>
+            </rect>
+        </property>
+    </spacer>
+    <spacer>
+        <property name="name">
+            <cstring>Spacer2_2_2</cstring>
+        </property>
+        <property name="orientation">
+            <enum>Vertical</enum>
+        </property>
+        <property name="sizeType">
+            <enum>Expanding</enum>
+        </property>
+        <property name="sizeHint">
+            <size>
+                <width>270</width>
+                <height>16</height>
+            </size>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>3</x>
+                <y>88</y>
+                <width>270</width>
+                <height>16</height>
+            </rect>
+        </property>
+    </spacer>
+    <spacer>
+        <property name="name">
+            <cstring>Spacer2</cstring>
+        </property>
+        <property name="orientation">
+            <enum>Vertical</enum>
+        </property>
+        <property name="sizeType">
+            <enum>Expanding</enum>
+        </property>
+        <property name="sizeHint">
+            <size>
+                <width>260</width>
+                <height>20</height>
+            </size>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>8</x>
+                <y>332</y>
+                <width>260</width>
+                <height>20</height>
+            </rect>
+        </property>
+    </spacer>
 </widget>
 <includes>
     <include location="global" impldecl="in implementation">kdialog.h</include>
Index: gdbcontroller.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/debugger/gdbcontroller.cpp,v
retrieving revision 1.53
diff -u -3 -p -r1.53 gdbcontroller.cpp
--- gdbcontroller.cpp	3 Aug 2003 08:14:08 -0000	1.53
+++ gdbcontroller.cpp	6 Aug 2003 01:34:20 -0000
@@ -173,6 +173,12 @@ GDBController::~GDBController()
 
 void GDBController::configure()
 {
+    // A a configure.gdb script will prevent these from uncontrolled growth...
+    config_configGdbScript_       = DomUtil::readEntry(dom, \
"/kdevdebugger/general/configGdbScript"); +    config_runShellScript_        = \
DomUtil::readEntry(dom, "/kdevdebugger/general/runShellScript"); +    \
config_runGdbScript_          = DomUtil::readEntry(dom, \
"/kdevdebugger/general/runGdbScript"); +
+//  add macros for reading QStrings? or in configGdbScript?
     config_forceBPSet_            = DomUtil::readBoolEntry(dom, \
                "/kdevdebugger/general/allowforcedbpset", true);
     config_dbgTerminal_           = DomUtil::readBoolEntry(dom, \
                "/kdevdebugger/general/separatetty", false);
     config_gdbPath_               = DomUtil::readEntry(dom, \
"/kdevdebugger/general/gdbpath"); @@ -226,8 +232,14 @@ void \
                GDBController::configure()
                 queueCmd(new GDBCommand("set stop-on 0", NOTRUNCMD, NOTINFOCMD));
         }
 
+	if (!config_configGdbScript_.isEmpty()) {
+	    queueCmd(new GDBCommand("source " + config_configGdbScript_,
+				    NOTRUNCMD, NOTINFOCMD, 0));
+	}
+
         if (restart)
             queueCmd(new GDBCommand("continue", RUNCMD, NOTINFOCMD, 0));
+
     }
 }
 
@@ -1204,6 +1216,7 @@ void GDBController::slotStart(const QStr
     connect( dbgProcess_, SIGNAL(processExited(KProcess*)),
              this,        SLOT(slotDbgProcessExited(KProcess*)) );
 
+    application_ = application;
     if (!shell.isEmpty())
     {
         *dbgProcess_ << "/bin/sh" << "-c" << shell + " " +config_gdbPath_
@@ -1418,9 +1431,41 @@ void GDBController::slotRun()
     if (stateIsOn(s_appBusy|s_dbgNotStarted|s_shuttingDown))
         return;
 
-    queueCmd(new GDBCommand(
-                            stateIsOn(s_appNotStarted) ?"run" : "continue",
-                            RUNCMD, NOTINFOCMD, 0));
+    if (stateIsOn(s_appNotStarted)) {
+
+	if (!config_runShellScript_.isEmpty()) {
+	    // Special for remote debug...
+	    QCString tty(tty_->getSlave().latin1());
+	    QCString options = QCString(" 2>&1 >") + tty + QCString(" <") + tty;
+
+	    KProcess *proc = new KProcess;
+
+	    *proc << "sh" << "-c";
+	    *proc << config_runShellScript_ + 
+		" " + application_.latin1() + options;
+	    proc->start(KProcess::DontCare);
+	}
+
+	if (!config_runGdbScript_.isEmpty()) {// gdb script at run is requested
+
+	    // Race notice: wait for the remote gdbserver/executable
+	    // - but that might be an issue for this script to handle...
+
+	    // Future: the shell script should be able to pass info (like pid)
+	    // to the gdb script...
+
+	    queueCmd(new GDBCommand("source " + config_runGdbScript_,
+				    RUNCMD, NOTINFOCMD, 0));
+
+	    // Note: script could contain "run" or "continue" 
+	}
+	else {
+	    queueCmd(new GDBCommand("run", RUNCMD, NOTINFOCMD, 0));
+	}
+    }
+    else {
+	queueCmd(new GDBCommand("continue", RUNCMD, NOTINFOCMD, 0));
+    }
 }
 
 // **************************************************************************
Index: gdbcontroller.h
===================================================================
RCS file: /home/kde/kdevelop/parts/debugger/gdbcontroller.h,v
retrieving revision 1.21
diff -u -3 -p -r1.21 gdbcontroller.h
--- gdbcontroller.h	28 Jul 2003 16:51:51 -0000	1.21
+++ gdbcontroller.h	6 Aug 2003 01:34:20 -0000
@@ -160,6 +160,7 @@ private:
 
     STTY*             tty_;
     QString           badCore_;
+    QString           application_;
 
     // Some state variables
     int               state_;
@@ -175,6 +176,9 @@ private:
     bool    config_dbgTerminal_;
     QString config_gdbPath_;
     QString config_dbgShell_;
+    QCString config_configGdbScript_;
+    QCString config_runShellScript_;
+    QCString config_runGdbScript_;
 };
 
 }


_______________________________________________
Kdevelop-devel mailing list
Kdevelop-devel@barney.cs.uni-potsdam.de
http://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic