Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Allow clients to debug code from command line, like pdb or epdb

Đang mở
#1,568 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
cli, devtools

Hướng nghiên cứu

Bắt đầu với debugpy/main.py và server/cli.py, sau đó lần theo đường dẫn được báo cáo qua server/api.py và các tệp pydevd được vendored. Tái hiện lỗi OutputEvent/command và xác định liệu việc gỡ lỗi qua dòng lệnh và trong interactive shell có được hỗ trợ hay không. Công việc được xem là hoàn tất khi một quy trình làm việc qua dòng lệnh đã thống nhất hoạt động mà không gặp lỗi này và cách sử dụng của nó được ghi lại.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Hi there,
in my company many don't use VSCode. For this reason our main guidelines to debug are to use pdb or epdb. (https://pypi.org/project/epdb/)
However, in an effort to have just one library that works for all use cases, I'd like to have debugpy to work from command line too.

I have tried this:

python -m debugpy --connect 5678 <path of the file with debugpy.listen()> 

Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 252, in _on_run
    self.process_net_command_json(self.py_db, json_contents)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py", line 171, in process_net_command_json
    method_name = 'on_%s_request' % (request.command.lower(),)
AttributeError: 'OutputEvent' object has no attribute 'command'
^CTraceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/__main__.py", line 39, in <module>
    cli.main()
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/cli.py", line 430, in main
    run()
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/cli.py", line 268, in run_file
    start_debugging(target)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/cli.py", line 258, in start_debugging
    debugpy.connect(options.address, access_token=options.adapter_access_token)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/public_api.py", line 31, in wrapper
    return wrapped(*args, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/api.py", line 141, in debug
    return func(address, settrace_kwargs, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/api.py", line 297, in connect
    _settrace(host=host, port=port, client_access_token=access_token, **settrace_kwargs)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/server/api.py", line 45, in _settrace
    return pydevd.settrace(*args, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/pydevd.py", line 2821, in settrace
    _locked_settrace(
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/pydevd.py", line 2929, in _locked_settrace
    py_db.wait_for_ready_to_run()
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/pydevd.py", line 838, in wait_for_ready_to_run
    self._py_db_command_thread_event.wait(0.1)
  File "/usr/local/lib/python3.8/threading.py", line 558, in wait
    signaled = self._cond.wait(timeout)
  File "/usr/local/lib/python3.8/threading.py", line 306, in wait
    gotit = waiter.acquire(True, timeout)

doesn't stop in debug.

I've also tried to use debugpy in python shell:

>>> import debugpy
>>> debugpy.connect(5678)
Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 252, in _on_run
    self.process_net_command_json(self.py_db, json_contents)
  File "/root/.cache/pypoetry/virtualenvs/viralize-adserver-9TtSrW0h-py3.8/lib/python3.8/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py", line 171, in process_net_command_json
    method_name = 'on_%s_request' % (request.command.lower(),)
AttributeError: 'OutputEvent' object has no attribute 'command'

What is supposed to be this "command"?

Also, am I doing something that is intended to be used like this, or what? I think no, because there is no such reference on the web.

Ngôn ngữ chính
Python
Star
2.5k
Fork
202
Merge trung bình
5 ngày 1 giờ
Pull request đã merge (30 ngày)
1

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/debugpy

Tất cả issue của microsoft/debugpy

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.