microsoft / ptvsd

Python debugger package for use with Visual Studio and Visual Studio Code.
Other
550 stars 68 forks source link

Same breakpoint hit multiple times #491

Closed karthiknadig closed 6 years ago

karthiknadig commented 6 years ago

Repro code: Python 2.7, set breakpoint on print. It can hit multiple times. This seems like a issue with breakpoint on first line.

print('Hello')

Traceback from first hit:

  File "c:\users\kanadig\appdata\local\microsoft\visualstudio\15.0_8875dd93exp\extensions\microsoft corporation\python\15.8.0\ptvsd_launcher.py", line 119, in <module>
    vspd.debug(filename, port_num, debug_id, debug_options, run_as)
  File "C:\GIT\ptvsd\ptvsd\debugger.py", line 37, in debug
    run(address, filename, *args, **kwargs)
  File "C:\GIT\ptvsd\ptvsd\_local.py", line 48, in run_file
    run(argv, addr, **kwargs)
  File "C:\GIT\ptvsd\ptvsd\_local.py", line 99, in _run
    _pydevd.main()
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1719, in main
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1073, in run
    return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1080, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Users\kanadig\source\repos\PyScratch\PyScratch\Scratch3.py", line 1, in <module>
    print('hello')
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_trace_dispatch_regular.py", line 117, in trace_dispatch
    return thread_tracer.__call__(frame, event, arg)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_trace_dispatch_regular.py", line 305, in __call__
    ).trace_dispatch(frame, event, arg)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_frame.py", line 644, in trace_dispatch
    self.do_wait_suspend(thread, frame, event, arg)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_frame.py", line 134, in do_wait_suspend
    traceback.print_stack()

Traceback from second hit:

  File "c:\users\kanadig\appdata\local\microsoft\visualstudio\15.0_8875dd93exp\extensions\microsoft corporation\python\15.8.0\ptvsd_launcher.py", line 119, in <module>
    vspd.debug(filename, port_num, debug_id, debug_options, run_as)
  File "C:\GIT\ptvsd\ptvsd\debugger.py", line 37, in debug
    run(address, filename, *args, **kwargs)
  File "C:\GIT\ptvsd\ptvsd\_local.py", line 48, in run_file
    run(argv, addr, **kwargs)
  File "C:\GIT\ptvsd\ptvsd\_local.py", line 99, in _run
    _pydevd.main()
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1719, in main
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1073, in run
    return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1080, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Users\kanadig\source\repos\PyScratch\PyScratch\Scratch3.py", line 1, in <module>
    print('hello')
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_frame.py", line 644, in trace_dispatch
    self.do_wait_suspend(thread, frame, event, arg)
  File "C:\GIT\ptvsd\ptvsd\_vendored\pydevd\_pydevd_bundle\pydevd_frame.py", line 134, in do_wait_suspend
    traceback.print_stack()
fabioz commented 6 years ago

Taking a look at this (as a note, this seems to be an issue only on python 2.7 and works properly on python 3.6).