diff options
-rw-r--r-- | tools/autodebugger_c.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/autodebugger_c.py b/tools/autodebugger_c.py new file mode 100644 index 00000000..0876e054 --- /dev/null +++ b/tools/autodebugger_c.py @@ -0,0 +1,29 @@ +''' +Processes a C source file, adding debugging information. + +Similar to autodebugger.py, but runs on .c files +''' + +import os, sys, re + +filename, ofilename = sys.argv[1], sys.argv[2] +f = open(filename, 'r') +data = f.read() +f.close() + +lines = data.split('\n') +for i in range(len(lines)): + m = re.match('^ [ ]*([\w\d \[\]]+) = +([^;]+);$', lines[i]) + if m and (' if ' not in lines[i-1] or '{' in lines[i-1]) and \ + (' if ' not in lines[i+1] or '{' in lines[i+1]) and \ + (' else' not in lines[i-1] or '{' in lines[i-1]) and \ + (' else' not in lines[i+1] or '{' in lines[i+1]): + var = m.groups(1)[0].rstrip().split(' ')[-1] + lines[i] += ''' printf("%d:%s=%%d\\n", %s);''' % (i+1, var, var) + +f = open(ofilename, 'w') +f.write('\n'.join(lines)) +f.close() + +print 'Success.' + |