From 22a33b2e073d3ea524c36f0f920f35db8bc1da43 Mon Sep 17 00:00:00 2001 From: Sami Vaarala Date: Thu, 17 Sep 2015 23:29:07 +0300 Subject: [PATCH] Util to resolve combined line to orig file/line --- util/resolve_combined_lineno.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 util/resolve_combined_lineno.py diff --git a/util/resolve_combined_lineno.py b/util/resolve_combined_lineno.py new file mode 100644 index 0000000000..2f2d0b72e5 --- /dev/null +++ b/util/resolve_combined_lineno.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# +# Resolve a line number in the combined source into an uncombined file/line +# using a dist/src/metadata.json file. +# +# Usage: $ python resolve_combined_lineno.py dist/src/metadata.json 12345 +# + +import os +import sys +import json + +def main(): + with open(sys.argv[1], 'rb') as f: + metadata = json.loads(f.read()) + lineno = int(sys.argv[2]) + + for e in reversed(metadata['line_map']): + if lineno >= e['combined_line']: + orig_lineno = e['original_line'] + (lineno - e['combined_line']) + print('%s:%d -> %s:%d' % ('duktape.c', lineno, + e['original_file'], orig_lineno)) + break + +if __name__ == '__main__': + main()