nemiver r956 - in trunk: . src/dbgengine tests
- From: dodji svn gnome org
- To: svn-commits-list gnome org
- Subject: nemiver r956 - in trunk: . src/dbgengine tests
- Date: Thu, 11 Dec 2008 13:33:08 +0000 (UTC)
Author: dodji
Date: Thu Dec 11 13:33:08 2008
New Revision: 956
URL: http://svn.gnome.org/viewvc/nemiver?rev=956&view=rev
Log:
Fix 564113 - GDB/MI parsing error
* src/dbgengine/nmv-gdbmi-parser.cc (GDBMIParser::parse_result_record):
Don't forget lines can end up abruptly.
* tests/test-gdbmi.cc: Added a new regression test for this bug.
This should close #564113.
Modified:
trunk/ChangeLog
trunk/src/dbgengine/nmv-gdbmi-parser.cc
trunk/tests/test-gdbmi.cc
Modified: trunk/src/dbgengine/nmv-gdbmi-parser.cc
==============================================================================
--- trunk/src/dbgengine/nmv-gdbmi-parser.cc (original)
+++ trunk/src/dbgengine/nmv-gdbmi-parser.cc Thu Dec 11 13:33:08 2008
@@ -4860,7 +4860,7 @@
return false;
}
- if (RAW_CHAR_AT (cur) != '\n') {
+ if (RAW_CHAR_AT (cur) != '\n' && !m_priv->index_passed_end (cur)) {
LOG_PARSING_ERROR2 (cur);
return false;
}
@@ -5949,7 +5949,7 @@
SKIP_BLANK2 (cur);
if (RAW_CHAR_AT (cur) != '"') {
UString value ;
- if (!parse_c_string_body (cur, m_priv->end, value)) {
+ if (!parse_c_string_body (cur, cur, value)) {
LOG_PARSING_ERROR2 (cur);
return false;
}
Modified: trunk/tests/test-gdbmi.cc
==============================================================================
--- trunk/tests/test-gdbmi.cc (original)
+++ trunk/tests/test-gdbmi.cc Thu Dec 11 13:33:08 2008
@@ -43,6 +43,11 @@
"*running,thread-id=\"1\"n"
"(gdb)";
+static const char *gv_output_record2=
+"^done,value=\"{tree (int, int, int, tree, tree)} 0x483c2f <build_template_parm_index>\"\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 =
@@ -251,6 +256,10 @@
parser.push_input (gv_output_record1);
is_ok = parser.parse_output_record (0, to, output);
BOOST_REQUIRE (is_ok) ;
+
+ parser.push_input (gv_output_record2);
+ is_ok = parser.parse_output_record (0, to, output);
+ BOOST_REQUIRE (is_ok) ;
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]