Skip to content

get_executable_lines_for_file crashes for not compiling files #178

@jsoref

Description

@jsoref

I'm in the middle of merging mercurial, so I have merge conflicts. I also am debugging it (albeit with a different hg).

(py)[timeless@gcc2-power8 crew8]$ ./hg --cwd ../crew summary --debugger
entering debugger - type c to continue starting hg or h for help
Traceback (most recent call last):
  File "/home/timeless/hg/crew8/mercurial/dispatch.py", line 202, in _runcatch
    debugtrace[debugger]()
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/__init__.py", line 150, in set_trace
    dbg = _get_debugger()
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/__init__.py", line 35, in _get_debugger
    dbg = Debugger(**kwargs)
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/debugger.py", line 165, in __init__
    for bpoint_descr in load_breakpoints():
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/settings.py", line 482, in load_breakpoints
    return parse_breakpoints(lines)
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/settings.py", line 448, in parse_breakpoints
    if get_breakpoint_invalid_reason(filename, lineno) is None:
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/lowlevel.py", line 46, in get_breakpoint_invalid_reason
    if lineno not in get_executable_lines_for_file(filename):
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/lowlevel.py", line 23, in get_executable_lines_for_file
    codes = [compile("".join(getlines(filename)), filename, "exec")]
  File "/home/timeless/hg/crew/mercurial/util.py", line 443
    <<<<<<< local
     ^
SyntaxError: invalid syntax
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 2.7.8 (default, Jul  8 2015, 18:13:08) [GCC 4.9.2 20150212 (Red Hat 4.9.2-6)]
** Mercurial Distributed SCM (version 3.7.3+808-62879c5a749b+20160413)
** Extensions loaded:
Traceback (most recent call last):
  File "./hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/home/timeless/hg/crew8/mercurial/dispatch.py", line 59, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/home/timeless/hg/crew8/mercurial/dispatch.py", line 125, in dispatch
    ret = _runcatch(req)
  File "/home/timeless/hg/crew8/mercurial/dispatch.py", line 211, in _runcatch
    debugmortem[debugger](sys.exc_info()[2])
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/__init__.py", line 215, in post_mortem
    dbg = _get_debugger()
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/__init__.py", line 35, in _get_debugger
    dbg = Debugger(**kwargs)
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/debugger.py", line 165, in __init__
    for bpoint_descr in load_breakpoints():
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/settings.py", line 482, in load_breakpoints
    return parse_breakpoints(lines)
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/settings.py", line 448, in parse_breakpoints
    if get_breakpoint_invalid_reason(filename, lineno) is None:
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/lowlevel.py", line 46, in get_breakpoint_invalid_reason
    if lineno not in get_executable_lines_for_file(filename):
  File "/home/timeless/hg/py/lib/python2.7/site-packages/pudb-2015.4.2-py2.7.egg/pudb/lowlevel.py", line 23, in get_executable_lines_for_file
    codes = [compile("".join(getlines(filename)), filename, "exec")]
  File "/home/timeless/hg/crew/mercurial/util.py", line 443
    <<<<<<< local
     ^
SyntaxError: invalid syntax

get_executable_lines_for_file needs to use a try block for compile

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions