Cấp độ đăng nhập yêu cầu python
Tiện ích mở rộng Python hỗ trợ gỡ lỗi một số loại ứng dụng Python. Để biết hướng dẫn ngắn về cách gỡ lỗi cơ bản, hãy xem Hướng dẫn - Định cấu hình và chạy trình gỡ lỗi. Cũng xem hướng dẫn Flask. Cả hai hướng dẫn đều thể hiện các kỹ năng cốt lõi như thiết lập điểm dừng và duyệt qua mã Show
Đối với các tính năng gỡ lỗi chung chẳng hạn như kiểm tra các biến, đặt điểm dừng và các hoạt động khác không phụ thuộc vào ngôn ngữ, hãy xem lại phần gỡ lỗi Mã VS Bài viết này chủ yếu giải quyết các cấu hình gỡ lỗi dành riêng cho Python, bao gồm các bước cần thiết cho các loại ứng dụng cụ thể và gỡ lỗi từ xa Khởi tạo cấu hìnhCấu hình điều khiển hành vi của Mã VS trong phiên gỡ lỗi. Các cấu hình được xác định trong tệp 1 được lưu trữ trong thư mục 2 trong không gian làm việc của bạn
Để khởi tạo cấu hình gỡ lỗi, trước tiên hãy chọn chế độ xem Chạy trong thanh bên Nếu bạn chưa xác định bất kỳ cấu hình nào, bạn sẽ thấy một nút để Chạy và Gỡ lỗi và một liên kết để tạo cấu hình (khởi chạy. json) tập tin Để tạo tệp 1 với cấu hình Python, hãy làm theo các bước sau
Chi tiết về các thuộc tính cấu hình sẽ được đề cập sau trong bài viết này trong phần Cấu hình tiêu chuẩn và các tùy chọn. Các cấu hình khác cũng được mô tả trong bài viết này trong Gỡ lỗi các loại ứng dụng cụ thể cấu hình bổ sungTheo mặc định, Mã VS chỉ hiển thị các cấu hình phổ biến nhất được cung cấp bởi tiện ích mở rộng Python. Bạn có thể chọn các cấu hình khác để đưa vào 1 bằng cách sử dụng lệnh Thêm cấu hình được hiển thị trong danh sách và trình chỉnh sửa 1. Khi bạn sử dụng lệnh, Mã VS sẽ nhắc bạn với danh sách tất cả các cấu hình có sẵn (hãy chắc chắn chọn tùy chọn Python)Chọn Đính kèm bằng ID quy trình sẽ mang lại kết quả như sau. Xem Gỡ lỗi các loại ứng dụng cụ thể để biết chi tiết về tất cả các cấu hình này Trong khi gỡ lỗi, Thanh trạng thái hiển thị cấu hình hiện tại và trình thông dịch gỡ lỗi hiện tại. Chọn cấu hình sẽ hiển thị danh sách từ đó bạn có thể chọn cấu hình khác Theo mặc định, trình gỡ lỗi sử dụng cùng một trình thông dịch được chọn cho không gian làm việc của bạn, giống như các tính năng khác của tiện ích mở rộng Python cho Mã VS. Để sử dụng một trình thông dịch khác để gỡ lỗi cụ thể, hãy đặt giá trị cho 7 trong 1 cho cấu hình trình gỡ lỗi hiện hành. Ngoài ra, hãy chọn trình thông dịch có tên trên Thanh trạng thái để chọn một trình thông dịch khácGỡ lỗi cơ bảnNếu bạn chỉ quan tâm đến việc gỡ lỗi tập lệnh Python, cách đơn giản nhất là chọn mũi tên xuống bên cạnh nút chạy trên trình chỉnh sửa và chọn Gỡ lỗi tệp Python trong Terminal Nếu bạn đang tìm cách gỡ lỗi ứng dụng web bằng Flask, Django hoặc FastAPI, tiện ích mở rộng Python cung cấp cấu hình gỡ lỗi được tạo động dựa trên cấu trúc dự án của bạn trong tùy chọn Hiển thị tất cả cấu hình gỡ lỗi tự động, thông qua chế độ xem Chạy và Gỡ lỗi Nhưng nếu bạn đang tìm cách gỡ lỗi các loại ứng dụng khác, bạn có thể khởi động trình gỡ lỗi thông qua chế độ xem Chạy bằng cách nhấp vào nút Chạy và Gỡ lỗi Khi chưa đặt cấu hình nào, bạn sẽ được cung cấp một danh sách các tùy chọn gỡ lỗi. Tại đây, bạn có thể chọn tùy chọn thích hợp để nhanh chóng gỡ lỗi mã của mình Hai tùy chọn phổ biến là sử dụng cấu hình Tệp Python để chạy tệp Python hiện đang mở hoặc sử dụng cấu hình Đính kèm sử dụng ID tiến trình để đính kèm trình gỡ lỗi vào một quy trình đang chạy Để biết thông tin về cách tạo và sử dụng cấu hình gỡ lỗi, hãy xem phần Khởi tạo cấu hình và Cấu hình bổ sung. Khi một cấu hình được thêm vào, nó có thể được chọn từ danh sách thả xuống và bắt đầu sử dụng nút Bắt đầu gỡ lỗi Gỡ lỗi dòng lệnhTrình gỡ lỗi cũng có thể được chạy từ dòng lệnh. Cú pháp dòng lệnh của trình gỡ lỗi như sau ________số 8Ví dụ: từ dòng lệnh, bạn có thể khởi động trình gỡ lỗi bằng một cổng đã chỉ định (5678) và tập lệnh bằng cú pháp sau. Ví dụ này giả định rằng tập lệnh đang chạy lâu và bỏ qua cờ 9, nghĩa là tập lệnh sẽ không đợi máy khách đính kèm 0Sau đó, bạn sẽ sử dụng cấu hình sau để đính kèm từ tiện ích mở rộng VS Code Python
Nếu bạn muốn gỡ lỗi mã từ xa hoặc mã chạy trong bộ chứa docker, trên máy hoặc bộ chứa từ xa, bạn cần sửa đổi lệnh CLI trước đó để chỉ định máy chủ 2Sau đó, tệp cấu hình được liên kết sẽ trông như sau 3FlagOptionsDescription--listen or --connect 22Required. Specifies the host address and port for the debug adapter server to wait for incoming connections (--listen) or to connect with a client that is waiting for an incoming connection (--connect). This is the same address that is used in the VS Code debug configuration. By default, the host address is 23.--wait-for-clientnoneOptional. Specifies that the code should not run until there's a connection from the debug server. This setting allows you to debug from the first line of your code.--log-to 24Optional. Specifies a path to an existing directory for saving logs.--log-to-stderrnoneOptional. Enables debugpy to write logs directly to stderr.--pid 25Optional. Specifies a process that is already running to inject the debug server into.--configure- 26Optional. Sets a debug property that must be known to the debug server before the client connects. Such properties can be used directly in launch configuration, but must be set in this manner for attach configurations. For example, if you don't want the debug server to automatically inject itself into subprocesses created by the process you're attaching to, use 27.
Gỡ lỗi bằng cách đính kèm qua kết nối mạngGỡ lỗi tập lệnh cục bộCó thể có những trường hợp bạn cần gỡ lỗi tập lệnh Python được gọi cục bộ bởi một quy trình khác. Ví dụ: bạn có thể đang gỡ lỗi một máy chủ web chạy các tập lệnh Python khác nhau cho các công việc xử lý cụ thể. Trong những trường hợp như vậy, bạn cần đính kèm trình gỡ lỗi Mã VS vào tập lệnh sau khi nó được khởi chạy
Gỡ lỗi tập lệnh từ xa với SSHGỡ lỗi từ xa cho phép bạn duyệt qua một chương trình cục bộ trong Mã VS khi chương trình đó chạy trên máy tính từ xa. Không cần cài đặt Mã VS trên máy tính từ xa. Để tăng cường bảo mật, bạn có thể muốn hoặc cần sử dụng kết nối an toàn, chẳng hạn như SSH, tới máy tính từ xa khi gỡ lỗi
Các bước sau phác thảo quy trình chung để thiết lập đường hầm SSH. Đường hầm SSH cho phép bạn làm việc trên máy cục bộ của mình như thể bạn đang làm việc trực tiếp trên điều khiển từ xa theo cách an toàn hơn so với khi một cổng được mở để truy cập công khai Trên máy tính từ xa
Trên máy tính cục bộ
Bắt đầu gỡ lỗi Giờ đây, một đường hầm SSH đã được thiết lập cho máy tính từ xa, bạn có thể bắt đầu gỡ lỗi
Đặt tùy chọn cấu hìnhKhi bạn tạo 1 lần đầu tiên, có hai cấu hình tiêu chuẩn chạy tệp hoạt động trong trình chỉnh sửa ở thiết bị đầu cuối tích hợp (bên trong Mã VS) hoặc thiết bị đầu cuối bên ngoài (bên ngoài Mã VS) 01Các cài đặt cụ thể được mô tả trong các phần sau. Bạn cũng có thể thêm các cài đặt khác, chẳng hạn như 83, không có trong cấu hình tiêu chuẩn
02{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 86Cung cấp tên cho cấu hình gỡ lỗi xuất hiện trong danh sách thả xuống Mã VS { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 87Xác định loại trình gỡ lỗi sẽ sử dụng; { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 89Chỉ định chế độ bắt đầu gỡ lỗi
{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 11Cung cấp đường dẫn đủ điều kiện đến mô-đun nhập của chương trình python (tệp khởi động). Giá trị 14, thường được sử dụng trong cấu hình mặc định, sử dụng tệp hiện đang hoạt động trong trình chỉnh sửa. Bằng cách chỉ định một tệp khởi động cụ thể, bạn luôn có thể chắc chắn khởi chạy chương trình của mình với cùng một điểm vào bất kể tệp nào đang mở. Ví dụ 03Bạn cũng có thể dựa vào một đường dẫn tương đối từ thư mục gốc của không gian làm việc. Ví dụ: nếu gốc là 15 thì bạn có thể sử dụng ví dụ sau 04{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 16Cung cấp khả năng chỉ định tên của mô-đun cần gỡ lỗi, tương tự như đối số 49 khi chạy ở dòng lệnh. Để biết thêm thông tin, xem Python. tổ chức{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 7Đường dẫn đầy đủ trỏ đến trình thông dịch Python được sử dụng để gỡ lỗi Nếu không được chỉ định, cài đặt này sẽ mặc định cho trình thông dịch được chọn cho không gian làm việc của bạn, tương đương với việc sử dụng giá trị 19. Để sử dụng một trình thông dịch khác, hãy chỉ định đường dẫn của nó trong thuộc tính 7 của cấu hình gỡ lỗiNgoài ra, bạn có thể sử dụng biến môi trường tùy chỉnh được xác định trên mỗi nền tảng để chứa đường dẫn đầy đủ tới trình thông dịch Python để sử dụng, do đó không cần đường dẫn thư mục nào khác Nếu bạn cần truyền đối số cho trình thông dịch Python, bạn có thể sử dụng thuộc tính 31{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 31Chỉ định các đối số để chuyển tới trình thông dịch Python bằng cú pháp 33{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 83Chỉ định các đối số để chuyển đến chương trình Python. Ví dụ: mỗi phần tử của chuỗi đối số được phân tách bằng dấu cách phải được chứa trong dấu ngoặc kép 05{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 35Khi được đặt thành 36, ngắt trình gỡ lỗi ở dòng đầu tiên của chương trình đang được gỡ lỗi. Nếu bị bỏ qua (mặc định) hoặc được đặt thành 37, trình gỡ lỗi sẽ chạy chương trình đến điểm ngắt đầu tiên{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 38Chỉ định cách hiển thị đầu ra của chương trình miễn là các giá trị mặc định cho 39 không bị sửa đổiGiá trịNơi đầu ra được hiển thị________ Bảng điều khiển gỡ lỗi mã 1000VS. Nếu 39 được đặt thành Sai, không có đầu ra nào được hiển thị. 002 (mặc định) Thiết bị đầu cuối tích hợp mã VS. Nếu 39 được đặt thành True, đầu ra cũng được hiển thị trong bảng điều khiển gỡ lỗi. 004Cửa sổ bảng điều khiển riêng biệt. Nếu 39 được đặt thành True, đầu ra cũng được hiển thị trong bảng điều khiển gỡ lỗi{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 006Có nhiều cách để định cấu hình nút Chạy, sử dụng tùy chọn 006. Đặt tùy chọn thành 008, xác định rằng cấu hình sẽ được sử dụng khi kiểm tra gỡ lỗi trong Mã VS. Tuy nhiên, đặt tùy chọn thành 009, xác định rằng cấu hình chỉ nên được sử dụng khi truy cập nút Chạy tệp Python ở phía trên bên phải của trình chỉnh sửa (bất kể tùy chọn Chạy tệp Python hoặc Gỡ lỗi tệp Python mà nút cung cấp được sử dụng). Ghi chú. Không thể sử dụng tùy chọn 006 để khởi động trình gỡ lỗi thông qua F5 hoặc Chạy > Bắt đầu gỡ lỗi. { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 011Cho phép tự động tải lại trình gỡ lỗi khi các thay đổi được thực hiện đối với mã sau khi quá trình thực thi trình gỡ lỗi đạt đến điểm dừng. Để bật tính năng này, hãy đặt 012 như trong đoạn mã sau 06
{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 014Chỉ định có bật gỡ lỗi quy trình con hay không. Mặc định là 37, đặt thành 36 để bật. Để biết thêm thông tin, hãy xem gỡ lỗi đa mục tiêu{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 017Chỉ định thư mục làm việc hiện tại cho trình gỡ lỗi, là thư mục cơ sở cho bất kỳ đường dẫn tương đối nào được sử dụng trong mã. Nếu bỏ qua, mặc định là 018 (thư mục mở trong Mã VS)Ví dụ: giả sử 018 chứa thư mục 020 chứa 021 và thư mục 022 chứa 023. Nếu bạn khởi động trình gỡ lỗi trên 024, thì các đường dẫn tương đối đến tệp dữ liệu sẽ thay đổi tùy theo giá trị của 017cwdĐường dẫn tương đối đến tệp dữ liệuBỏ qua hoặc 018 027 028 029 030 023{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 39Khi được đặt thành 36 (mặc định cho internalConsole), khiến trình gỡ lỗi in tất cả đầu ra từ chương trình vào cửa sổ đầu ra gỡ lỗi Mã VS. Nếu được đặt thành 37 (mặc định cho integrationTerminal và externalTerminal), đầu ra của chương trình không được hiển thị trong cửa sổ đầu ra của trình gỡ lỗiTùy chọn này thường bị tắt khi sử dụng 035 hoặc 036 vì không cần sao chép đầu ra trong bảng điều khiển gỡ lỗi{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 037Khi bị bỏ qua hoặc được đặt thành 36 (mặc định), chỉ hạn chế gỡ lỗi đối với mã do người dùng viết. Đặt thành 37 để cũng cho phép gỡ lỗi các chức năng thư viện tiêu chuẩn{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 040Khi được đặt thành 36, sẽ kích hoạt các tính năng gỡ lỗi dành riêng cho khung web Django{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 042Khi được đặt thành 36 và được sử dụng với 036, cho phép gỡ lỗi các ứng dụng yêu cầu độ cao. Cần sử dụng bảng điều khiển bên ngoài để lấy mật khẩu{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 045Khi được đặt thành 36, đảm bảo rằng ứng dụng Kim tự tháp được khởi chạy bằng lệnh 047 cần thiết{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 048Đặt các biến môi trường tùy chọn cho quy trình trình gỡ lỗi ngoài các biến môi trường hệ thống mà trình gỡ lỗi luôn kế thừa. Các giá trị cho các biến này phải được nhập dưới dạng chuỗi { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 049Đường dẫn tùy chọn đến tệp chứa định nghĩa biến môi trường. Xem Định cấu hình môi trường Python - tệp định nghĩa biến môi trường { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 050Nếu được đặt thành 36, cho phép gỡ lỗi mã vá khỉ gevent{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 052Khi được đặt thành 36, sẽ kích hoạt các tính năng sửa lỗi dành riêng cho khung tạo khuôn mẫu JinjaĐiểm dừng và điểm đăng nhậpTiện ích mở rộng Python hỗ trợ các điểm dừng và điểm đăng nhập để gỡ lỗi mã. Để biết hướng dẫn ngắn về gỡ lỗi cơ bản và sử dụng điểm dừng, hãy xem Hướng dẫn - Định cấu hình và chạy trình gỡ lỗi Điểm dừng có điều kiệnĐiểm dừng cũng có thể được đặt để kích hoạt dựa trên biểu thức, số lần truy cập hoặc kết hợp cả hai. Tiện ích mở rộng Python hỗ trợ số lần truy cập là số nguyên, ngoài các số nguyên đứng trước các toán tử ==, >, >=, <, <= và %. Ví dụ: bạn có thể đặt điểm dừng để kích hoạt sau năm lần xuất hiện bằng cách đặt số lần truy cập là 054 Để biết thêm thông tin, hãy xem điểm dừng có điều kiện trong bài viết chính về gỡ lỗi Mã VSGọi một điểm dừng trong mãTrong mã Python của bạn, bạn có thể gọi 33 tại bất kỳ thời điểm nào mà bạn muốn tạm dừng trình gỡ lỗi trong phiên gỡ lỗiXác thực điểm ngắtTiện ích mở rộng Python tự động phát hiện các điểm dừng được đặt trên các dòng không thể thực thi được, chẳng hạn như câu lệnh 056 hoặc phần giữa của câu lệnh nhiều dòng. Trong những trường hợp như vậy, việc chạy trình gỡ lỗi sẽ di chuyển điểm dừng đến dòng hợp lệ gần nhất để đảm bảo rằng việc thực thi mã dừng tại điểm đóGỡ lỗi các loại ứng dụng cụ thểTrình đơn thả xuống cấu hình cung cấp nhiều tùy chọn khác nhau cho các loại ứng dụng chung ConfigurationDescriptionAttachXem Gỡ lỗi từ xa trong phần trước. Django Chỉ định ________ 1057, ________ 1058. Cũng thêm 059 để cho phép gỡ lỗi các mẫu HTML Django. FlaskXem gỡ lỗi Flask bên dưới. GeventThêm 060 vào cấu hình thiết bị đầu cuối tích hợp tiêu chuẩn. PyramidRemoves 11, thêm 062, thêm 063 để bật gỡ lỗi mẫu và thêm 064 để đảm bảo rằng chương trình được khởi chạy với lệnh 047 cần thiết. Scrapy Chỉ định ________ 1066 và thêm ________ 1067. WatsonChỉ định 068 và 069Các bước cụ thể cũng cần thiết để gỡ lỗi từ xa và Google App Engine. Để biết chi tiết về kiểm tra gỡ lỗi, hãy xem Kiểm tra Để gỡ lỗi ứng dụng yêu cầu đặc quyền của quản trị viên, hãy sử dụng 036 và 071gỡ lỗi bình 07Như bạn có thể thấy, cấu hình này chỉ định 072 và 073. Thuộc tính 074 được sử dụng thay cho 11. (Bạn có thể thấy 076 trong thuộc tính 048, trong trường hợp đó hãy sửa đổi cấu hình để chỉ tham chiếu đến tên tệp. Nếu không, bạn có thể thấy lỗi "Không thể nhập mô-đun C" trong đó C là ký tự ổ đĩa. )Cài đặt 063 cũng cho phép gỡ lỗi cho công cụ tạo khuôn mẫu Jinja mặc định của FlaskNếu bạn muốn chạy máy chủ phát triển của Flask ở chế độ phát triển, hãy sử dụng cấu hình sau 08Xử lý sự cốCó nhiều lý do tại sao trình gỡ lỗi có thể không hoạt động. Đôi khi bảng điều khiển gỡ lỗi tiết lộ các nguyên nhân cụ thể, nhưng các lý do chính như sau
|