diff options
author | Devang Patel <dpatel@apple.com> | 2010-12-07 00:34:59 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-12-07 00:34:59 +0000 |
commit | 8802f0b2d01be96a4062853990faa3f03eb3e3aa (patch) | |
tree | c871b0ccdb87ef6c87ebf1f0bc55a07262cf098f /utils/CompareDebugInfo.py | |
parent | f5f2300d2489ba1110b919abd18714ad707ec9a8 (diff) |
Add python scripts to extract debug info using LLDB and do comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121079 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/CompareDebugInfo.py')
-rwxr-xr-x | utils/CompareDebugInfo.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/utils/CompareDebugInfo.py b/utils/CompareDebugInfo.py new file mode 100755 index 0000000000..12a086b518 --- /dev/null +++ b/utils/CompareDebugInfo.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +import os +import sys + +class BreakPoint: + def __init__(self, bp_name): + self.name = bp_name + self.values = {} + + def recordArgument(self, arg_name, value): + self.values[arg_name] = value + + def __repr__(self): + print self.name + items = self.values.items() + for i in range(len(items)): + print items[i][0]," = ",items[i][1] + return '' + + def __cmp__(self, other): + return cmp(self.values, other.values) + +def read_input(filename, dict): + f = open(filename, "r") + lines = f.readlines() + for l in range(len(lines)): + c = lines[l].split() + if c[0] == "#Argument": + bp = dict.get(c[2]) + if bp is None: + bp = BreakPoint(c[1]) + dict[c[2]] = bp + bp.recordArgument(c[3], c[4]) + + f.close() + return + +f1_breakpoints = {} +read_input(sys.argv[1], f1_breakpoints) +f1_items = f1_breakpoints.items() + +f2_breakpoints = {} +read_input(sys.argv[2], f2_breakpoints) +f2_items = f2_breakpoints.items() + +mismatch = 0 +for f2bp in range(len(f2_items)): + id = f2_items[f2bp][0] + bp = f2_items[f2bp][1] + bp1 = f1_breakpoints.get(id) + if bp1 is None: + print "bp is missing" + else: + if bp1 != bp: + mismatch = mismatch + 1 + +l2 = len(f2_items) +print "==========" +if l2 != 0: + print sys.argv[3]," success rate is", (l2-mismatch)*100/l2,"%" +else: + print sys.argv[3]," success rate is 100%" +print "==========" |