New submission from Francesco Del Degan <[email protected]>:
$ python -m profile
Usage: profile.py [-o output_file_path] [-s sort] scriptfile [arg] ...
$ python -m profile -s calls
Traceback (most recent call last):
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py",
line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py",
line 34, in _run_code
exec code in run_globals
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/profile.py",
line 619, in <module>
main()
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/profile.py",
line 614, in main
parser.print_usage()
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py",
line 1584, in print_usage
print >>file, self.get_usage()
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py",
line 1570, in get_usage
self.expand_prog_name(self.usage))
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py",
line 1547, in expand_prog_name
return s.replace("%prog", self.get_prog_name())
File
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py",
line 1542, in get_prog_name
return os.path.basename(sys.argv[0])
IndexError: list index out of range
This is triggered by an early override of sys.argv when usage() is called
(Lib/profile.py:603):
if not sys.argv[1:]:
parser.print_usage()
sys.exit(2)
(options, args) = parser.parse_args()
sys.argv[:] = args
if (len(sys.argv) > 0):
sys.path.insert(0, os.path.dirname(sys.argv[0]))
run('execfile(%r)' % (sys.argv[0],), options.outfile, options.sort)
else:
parser.print_usage()
return parser
In the "else" branch it tries to print usage but sys.argv[] were already
overwritten.
Attached is the proposed patch (tested with 2.5, 2.6, 3.1).
----------
components: Library (Lib)
files: python-profile-sysargv.patch
keywords: patch
messages: 91240
nosy: pr0gg3d
severity: normal
status: open
title: Profiler doesn't print usage (indexError instead)
type: behavior
versions: Python 2.5, Python 2.6, Python 3.1
Added file: http://bugs.python.org/file14639/python-profile-sysargv.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue6635>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com