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

List:       kde-commits
Subject:    KDE/kdebase/runtime/drkonqi
From:       George Kiagiadakis <kiagiadakis.george () gmail ! com>
Date:       2010-08-21 16:53:13
Message-ID: 20100821165313.DA3C2AC867 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1166375 by gkiagia:

Fix bug in the parser: catch the prefix "(anonymous namespace)::" (if it exists) in \
the function name.

 M  +7 -6      parser/backtraceparsergdb.cpp  
 M  +2 -0      tests/backtraceparsertest/backtraceparsertest_data/data.ini  
 A             tests/backtraceparsertest/backtraceparsertest_data/test_anon_namespace \



--- trunk/KDE/kdebase/runtime/drkonqi/parser/backtraceparsergdb.cpp #1166374:1166375
@@ -60,8 +60,9 @@
 
     regExp.setPattern("^#([0-9]+)" //matches the stack frame number, ex. "#0"
                       "[\\s]+(0x[0-9a-f]+[\\s]+in[\\s]+)?" // matches " 0x0000dead \
                in " (optionally)
-                      "([^\\(]+)" //matches the function name (anything except left \
                parenthesis,
-                      // which is the start of the arguments section)
+                      "((\\(anonymous namespace\\)::)?[^\\(]+)" //matches the \
function name +                      //(anything except left parenthesis, which is \
the start of the arguments section) +                      //and optionally the \
prefix "(anonymous namespace)::"  "(\\(.*\\))?" //matches the function arguments
                                     //(when the app doesn't have debugging symbols)
                       "[\\s]+(const[\\s]+)?" //matches a traling const, if it exists
@@ -79,11 +80,11 @@
         d->m_stackFrameNumber = regExp.cap(1).toInt();
         d->m_functionName = regExp.cap(3).trimmed();
 
-        if (!regExp.cap(6).isEmpty()) { //we have file information (stuff after \
                from|at)
-            if (regExp.cap(7) == "at") { //'at' means we have a source file
-                d->m_file = regExp.cap(8);
+        if (!regExp.cap(7).isEmpty()) { //we have file information (stuff after \
from|at) +            if (regExp.cap(8) == "at") { //'at' means we have a source file
+                d->m_file = regExp.cap(9);
             } else { //'from' means we have a library
-                d->m_library = regExp.cap(8);
+                d->m_library = regExp.cap(9);
             }
         }
 
--- trunk/KDE/kdebase/runtime/drkonqi/tests/backtraceparsertest/backtraceparsertest_data/data.ini \
#1166374:1166375 @@ -20,6 +20,7 @@
 test_usefulfunctions4=KarbonPart::addShape|KoShapeDeleteCommand::undo|QUndoCommand::undo
  test_usefulfunctions5=qt_assert|KMetaDataWidget::Private::slotLoadingFinished|KMetaDataWidget::qt_metacall
  test_trailing_const=QString::operator==|qStringComparisonHelper|QString::operator!=
+test_anon_namespace=formatICalInvitationHelper|KCal::IncidenceFormatter::formatICalInvitationNoHtml|(anonymous \
namespace)::Formatter::format  
 [debugger]
 test_a=gdb
@@ -40,3 +41,4 @@
 test_usefulfunctions4=gdb
 test_usefulfunctions5=gdb
 test_trailing_const=gdb
+test_anon_namespace=gdb


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

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