summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2012-12-17 11:57:56 +0100
committerJan Pokorný <jpokorny@redhat.com>2012-12-17 11:57:56 +0100
commit0b4aa1eba90f7070daff2865e8f09cfdf4c890bb (patch)
treea6ed33be868ae6fb8d14aa5b390624a571aadc2e
parent16be13fd98953c883b39c09b2709a2f09dabe9b1 (diff)
downloadgdb-bt-reformat-0b4aa1eba90f7070daff2865e8f09cfdf4c890bb.tar.gz
gdb-bt-reformat-0b4aa1eba90f7070daff2865e8f09cfdf4c890bb.tar.xz
gdb-bt-reformat-0b4aa1eba90f7070daff2865e8f09cfdf4c890bb.zip
Handle strings as (resolved) function arguments correctly
Test case line: (this=0x7fffffffe280, nodename="", clustername="", msg="") \ at Monitor.cpp:199 Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-rwxr-xr-xgdb-bt-reformat12
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb-bt-reformat b/gdb-bt-reformat
index fbad6fa..30005eb 100755
--- a/gdb-bt-reformat
+++ b/gdb-bt-reformat
@@ -11,12 +11,13 @@ DEF_IDENT = '[A-Za-z_][A-Za-z0-9_]*'
DEF_UNKNOWN = '[?]{2}'
DEF_HEX = '0x[0-9A-Za-z]+'
DEF_MSG = '[<][ A-Za-z0-9_]+[>]'
+DEF_STR = '["][ A-Za-z0-9_]*["]'
DEF_PATH = '[A-Za-z0-9._/]+'
-RE_BT = re.compile(\
- '(?P<init>^\#[0-9]+\s+)'\
- '(?:(?P<hex>%(DEF_HEX)s) in )?'\
- '(?P<where>%(DEF_IDENT)s(?:(?: |::)%(DEF_IDENT)s)*|(?P<unknown>%(DEF_UNKNOWN)s))'\
- ' (?P<args>[(](?:(?<=[( ])%(DEF_IDENT)s=(?:%(DEF_IDENT)s|%(DEF_MSG)s|%(DEF_HEX)s)(?:, )?)*[)])'\
+RE_BT = re.compile(
+ '(?P<init>^\#[0-9]+\s+)'
+ '(?:(?P<hex>%(DEF_HEX)s) in )?'
+ '(?P<where>%(DEF_IDENT)s(?:(?: |::)%(DEF_IDENT)s)*|(?P<unknown>%(DEF_UNKNOWN)s))'
+ ' (?P<args>[(](?:(?<=[( ])%(DEF_IDENT)s=(?:%(DEF_IDENT)s|%(DEF_MSG)s|%(DEF_HEX)s|%(DEF_STR)s)(?:, )?)*[)])'
'(?(unknown)| at (?P<path>%(DEF_PATH)s):(?P<line>[1-9][0-9]*))'
% locals())
@@ -32,6 +33,7 @@ class BtLine(object):
self._found = RE_BT.search(self._line)
if self._found:
for k, v in self._found.groupdict().iteritems():
+ #print "\t{0}: {1}".format(k, v)
setattr(self, k, v)
else:
raise BtLineError