nemiver r785 - in branches/0.5: . src/dbgengine src/persp/dbgperspective tests



Author: dodji
Date: Sun Apr  6 14:58:15 2008
New Revision: 785
URL: http://svn.gnome.org/viewvc/nemiver?rev=785&view=rev

Log:
Pull commits #779, #780, #781, #782 and #783 from trunk.

The command line was:
svn merge -r778:783 svn+ssh://svn.gnome.org/svn/nemiver/trunk



Modified:
   branches/0.5/ChangeLog
   branches/0.5/NEWS
   branches/0.5/configure.ac
   branches/0.5/src/dbgengine/nmv-gdb-engine.cc
   branches/0.5/src/dbgengine/nmv-gdbmi-parser.cc
   branches/0.5/src/persp/dbgperspective/nmv-dbg-perspective.cc
   branches/0.5/tests/Makefile.am
   branches/0.5/tests/test-gdbmi.cc

Modified: branches/0.5/NEWS
==============================================================================
--- branches/0.5/NEWS	(original)
+++ branches/0.5/NEWS	Sun Apr  6 14:58:15 2008
@@ -1,3 +1,14 @@
+0.5.2 Release
+=============
+
+Fixes
+--------------
+
+    * unplug some immature non regression tests for now
+    * fix an infinite loop when parsing an output record having a line starting
+      with '='
+    * fix #526291 â Nemiver doesn't propose to stop the debugging application
+
 0.5.1 Release
 =============
 

Modified: branches/0.5/configure.ac
==============================================================================
--- branches/0.5/configure.ac	(original)
+++ branches/0.5/configure.ac	Sun Apr  6 14:58:15 2008
@@ -1,7 +1,7 @@
 dnl **************************************************************
 dnl Process this file with autoconf to produce a configure script.
 dnl **************************************************************
-AC_INIT(nemiver, 0.5.1)
+AC_INIT(nemiver, 0.5.2)
 AC_PREREQ(2.59)
 AC_CONFIG_SRCDIR(README)
 AC_CONFIG_MACRO_DIR([m4])
@@ -12,7 +12,7 @@
 
 MAJOR_VERSION=0
 MINOR_VERSION=5
-MICRO_VERSION=1
+MICRO_VERSION=2
 
 NEMIVER_VERSION="$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION"
 AC_SUBST(NEMIVER_VERSION)

Modified: branches/0.5/src/dbgengine/nmv-gdb-engine.cc
==============================================================================
--- branches/0.5/src/dbgengine/nmv-gdb-engine.cc	(original)
+++ branches/0.5/src/dbgengine/nmv-gdb-engine.cc	Sun Apr  6 14:58:15 2008
@@ -652,7 +652,7 @@
         NEMIVER_TRY
 
         if ((a_cond & Glib::IO_IN) || (a_cond & Glib::IO_PRI)) {
-            gsize nb_read (0), CHUNK_SIZE(512);
+            gsize nb_read (0), CHUNK_SIZE(10*1024);
             char buf[CHUNK_SIZE+1];
             Glib::IOStatus status (Glib::IO_STATUS_NORMAL);
             UString meaningful_buffer;
@@ -664,8 +664,6 @@
                     std::string raw_str(buf, nb_read);
                     UString tmp = Glib::locale_to_utf8 (raw_str);
                     gdb_stdout_buffer.append (tmp);
-
-
                 } else {
                     break;
                 }
@@ -674,9 +672,9 @@
             LOG_DD ("gdb_stdout_buffer: <buf>" << gdb_stdout_buffer << "</buf>");
 
             UString::size_type i=0;
-            while ((i = gdb_stdout_buffer.raw ().find ("(gdb)")) !=
+            while ((i = gdb_stdout_buffer.raw ().find ("\n(gdb)")) !=
                     std::string::npos) {
-                i += 4;/*is the offset in the buffer of the end of
+                i += 6;/*is the offset in the buffer of the end of
                          *of the '(gdb)' prompt
                          */
                 int size = i+1;

Modified: branches/0.5/src/dbgengine/nmv-gdbmi-parser.cc
==============================================================================
--- branches/0.5/src/dbgengine/nmv-gdbmi-parser.cc	(original)
+++ branches/0.5/src/dbgengine/nmv-gdbmi-parser.cc	Sun Apr  6 14:58:15 2008
@@ -2730,6 +2730,15 @@
         record.stream_record (stream_record);
 
         while (cur < end && isspace (a_input.raw ()[cur])) {++cur;}
+    } else if (a_input.raw ()[cur] == '=') {
+        //this is a notification sent by gdb. For now, the only one
+        //I have seen like this is of the form:
+        //'=thread-created,id=1',
+        //and the notification ends with a '\n' character.
+        //Of course it is not documented
+        //Let's ignore this by now
+        while (a_input.raw ()[cur] != '\n') {++cur;}
+        ++cur;//consume the '\n' character
     }
 
     if (!a_input.raw ().compare (cur, 9,"*stopped,")) {

Modified: branches/0.5/src/persp/dbgperspective/nmv-dbg-perspective.cc
==============================================================================
--- branches/0.5/src/persp/dbgperspective/nmv-dbg-perspective.cc	(original)
+++ branches/0.5/src/persp/dbgperspective/nmv-dbg-perspective.cc	Sun Apr  6 14:58:15 2008
@@ -1989,6 +1989,7 @@
     unset_where () ;
     attached_to_target_signal ().emit (true) ;
     display_info (_("Program exited")) ;
+    workbench ().set_title_extension ("");
 
     //****************************
     //grey out all the menu

Modified: branches/0.5/tests/Makefile.am
==============================================================================
--- branches/0.5/tests/Makefile.am	(original)
+++ branches/0.5/tests/Makefile.am	Sun Apr  6 14:58:15 2008
@@ -1,13 +1,16 @@
 if AUTOTESTS
 # 'make check' automatically runs programs listed in the TESTS variable
-#
+
+
+#runtestoverloads
+#runtestglobalvariables
 TESTS=\
 runtestgdbmi runtestunicode \
 runtestcpptrait runtestvarlist \
 runtestvarwalker runtestbreakpoint \
-runtestoverloads runtestderef \
+runtestderef \
 runtestlocalvarslist runtestcpplexer \
-runtestcppparser runtestglobalvariables \
+runtestcppparser  \
 runtestlibtoolwrapperdetection
 
 

Modified: branches/0.5/tests/test-gdbmi.cc
==============================================================================
--- branches/0.5/tests/test-gdbmi.cc	(original)
+++ branches/0.5/tests/test-gdbmi.cc	Sun Apr  6 14:58:15 2008
@@ -14,9 +14,21 @@
 
 static const char* gv_attrs0 = "msg=\"No symbol \\\"g_return_if_fail\\\" in current context.\"" ;
 
-static const char* gv_stopped_async_output =
+static const char* gv_stopped_async_output0 =
 "*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"1\",frame={addr=\"0x0804afb0\",func=\"main\",args=[{name=\"argc\",value=\"1\"},{name=\"argv\",value=\"0xbfc79ed4\"}],file=\"today-main.c\",fullname=\"/home/dodji/devel/gitstore/omoko.git/applications/openmoko-today/src/today-main.c\",line=\"285\"}\n" ;
 
+static const char* gv_stopped_async_output1 =
+"*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"1\",frame={addr=\"0x08048d38\",func=\"main\",args=[],file=\"fooprog.cc\",fullname=\"/opt/dodji/git/nemiver.git/tests/fooprog.cc\",line=\"80\"}\n";
+
+
+static const char *gv_output_record0 =
+"&\"Failed to read a valid object file image from memory.\\n\"\n"
+"~\"[Thread debugging using libthread_db enabled]\\n\"\n"
+"~\"[New Thread 0xb7892720 (LWP 20182)]\\n\"\n"
+"=thread-created,id=1\n"
+"*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"1\",frame={addr=\"0x08048d38\",func=\"main\",args=[],file=\"fooprog.cc\",fullname=\"/opt/dodji/git/nemiver.git/tests/fooprog.cc\",line=\"80\"}\n"
+"(gdb)";
+
 //the partial result of a gdbmi command: -stack-list-argument 1 command
 //this command is used to implement IDebugger::list_frames_arguments()
 static const char* gv_stack_arguments0 =
@@ -135,18 +147,35 @@
 void
 test_stoppped_async_output ()
 {
-    bool is_ok=false,got_frame=false ;
+    bool is_ok=false, got_frame=false ;
     UString::size_type to=0 ;
     IDebugger::Frame frame ;
     map<UString, UString> attrs ;
 
-    is_ok = parse_stopped_async_output (gv_stopped_async_output, 0, to,
+    is_ok = parse_stopped_async_output (gv_stopped_async_output0, 0, to,
+                                        got_frame, frame, attrs) ;
+    BOOST_REQUIRE (is_ok) ;
+    BOOST_REQUIRE (got_frame) ;
+    BOOST_REQUIRE (attrs.size ()) ;
+
+    to=0;
+    is_ok = parse_stopped_async_output (gv_stopped_async_output1, 0, to,
                                         got_frame, frame, attrs) ;
     BOOST_REQUIRE (is_ok) ;
     BOOST_REQUIRE (got_frame) ;
     BOOST_REQUIRE (attrs.size ()) ;
 }
 
+void
+test_output_record ()
+{
+    bool is_ok=false;
+    UString::size_type to=0;
+    Output output;
+
+    is_ok = parse_output_record (gv_output_record0, 0, to, output);
+    BOOST_REQUIRE (is_ok) ;
+}
 
 void
 test_stack_arguments0 ()
@@ -488,6 +517,7 @@
     suite->add (BOOST_TEST_CASE (&test_str2)) ;
     suite->add (BOOST_TEST_CASE (&test_attr0)) ;
     suite->add (BOOST_TEST_CASE (&test_stoppped_async_output)) ;
+    suite->add (BOOST_TEST_CASE (&test_output_record)) ;
     suite->add (BOOST_TEST_CASE (&test_stack_arguments0)) ;
     suite->add (BOOST_TEST_CASE (&test_stack_arguments1)) ;
     suite->add (BOOST_TEST_CASE (&test_local_vars)) ;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]