diff --git a/Lib/trace.py b/Lib/trace.py index c0cca9d0607..49ad7a8cb78 100644 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -797,12 +797,9 @@ def main(argv=None): ignoredirs=ignore_dirs, infile=counts_file, outfile=counts_file, timing=timing) try: - fp = open(progname) - try: - script = fp.read() - finally: - fp.close() - t.run('exec(%r)' % (script,)) + with open(progname) as fp: + code = compile(fp.read(), progname, 'exec') + t.run(code) except IOError as err: _err_exit("Cannot run file %r because: %s" % (sys.argv[0], err)) except SystemExit: diff --git a/Misc/NEWS b/Misc/NEWS index 57998e371f0..7f3f0e1bd73 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -78,6 +78,9 @@ C-API Library ------- +- Issue #9323: Fixed a bug in trace.py that resulted in loosing the + name of the script being traced. Patch by Eli Bendersky. + - Issue #9282: Fixed --listfuncs option of trace.py. Thanks Eli Bendersky for the patch. diff --git a/Misc/maintainers.rst b/Misc/maintainers.rst index 7795eb06e79..b9984b118e8 100644 --- a/Misc/maintainers.rst +++ b/Misc/maintainers.rst @@ -212,7 +212,7 @@ timeit tkinter gpolo token georg.brandl tokenize -trace +trace alexander.belopolsky traceback georg.brandl tty turtle gregorlingl