Biến đồng hồ python để thay đổi
Theo dõi các biến, sử dụng các điểm dừng có điều kiện, ngăn xếp cuộc gọi, điểm dừng ngoại lệ, v.v— khi làm việc trên các dự án lớn hơnKiểm tra xung nhanh — Bạn vẫn đang sử dụng các câu lệnh Show
Phải nói rằng, đó không phải là một giải pháp bền vững khi làm việc với các dự án lớn hơn - liên quan đến vô số gói của bên thứ ba, thư mục sử dụng, thư mục, thư mục con - nơi rất dễ bị mất dấu dòng mã Đây là động lực chính đằng sau việc học tất cả những điều cơ bản mà Mã VS phải cung cấp để gỡ lỗi mã. Đây là chia sẻ tương tự với bạn Khái niệm cơ bản về trình gỡ lỗi VSCodeĐể cho ngắn gọn, tôi sẽ giữ mọi thứ đơn giản và thảo luận đủ chi tiết để giúp bạn bắt đầu. Để biết thêm thông tin, vui lòng xem tài liệu chính thức của họ dự án giảChúng tôi sẽ làm việc trên một dự án giả. Hiện tại, nó chứa một tập lệnh GitHub - V-Sher/medium_debugger. Cách tận dụng tối đa trình gỡ lỗi VSCodeBạn không thể thực hiện hành động đó vào lúc này. Bạn đã đăng nhập bằng tab hoặc cửa sổ khác. Bạn đã đăng xuất trong một tab khác hoặc…github. com Để kiểm tra độ chính xác, hãy chạy tập lệnh để xem đầu ra trong thiết bị đầu cuối của bạn Khởi chạy cấu hìnhHãy tiếp tục và tạo một tệp Điều này sẽ tạo một thư mục Hãy bắt đầu gỡ lỗiĐể kiểm tra trạng thái của mã tại một dòng cụ thể, chúng ta phải thêm một điểm dừng cho nó. Chúng thường sẽ hiển thị dưới dạng các vòng tròn màu đỏ ở lề trình chỉnh sửa. Chẳng hạn, tôi đã thêm một điểm dừng tại vòng lặp ____6_______ (xem hình bên dưới)
Bây giờ, chúng ta có thể bắt đầu gỡ lỗi tập lệnh bằng cách nhấp vào nút phát màu xanh lá cây ( mẹo chuyên nghiệp. Đảm bảo bạn mở đúng tệp trong trình chỉnh sửa trước khi bắt đầu gỡ lỗi vì theo mặc định, trình gỡ lỗi sẽ bắt đầu gỡ lỗi tệp hiện đang hoạt động Khi bắt đầu quá trình sửa lỗi, đây là những gì bạn sẽ thấy Vài điều cần lưu ý
Kể từ đây, bạn có một số tùy chọn gỡ lỗi như một phần của thanh công cụ gỡ lỗi
nút tiếp tụcNhấp vào nút Tiếp tục trong thanh công cụ gỡ lỗi sẽ thực thi mọi thứ cho đến điểm ngắt tiếp theo. Vì chúng ta đang ở trong một vòng lặp for nên điểm ngắt tiếp theo sẽ thực sự giống với điểm dừng hiện tại Hãy thử làm điều này và xem những gì chúng ta nhận được Có thể bạn quan tâmGhi chú. Nếu chúng ta đã thêm một điểm dừng trong câu lệnh Vài điều cần lưu ý
Bây giờ, chúng ta có thể tiếp tục nhấp vào tùy chọn Continue và chúng ta sẽ thấy các biến Để thử điều đó, hiện tại chúng ta phải dừng trình gỡ lỗi (bằng cách sử dụng nút Dừng trên thanh công cụ gỡ lỗi) và thực hiện một số thay đổi đối với chính tập lệnh. Thay vì in tên tệp, bây giờ chúng ta sẽ in các đường dẫn tuyệt đối bằng cách sử dụng Như đã làm trước đây
Bây giờ, giả sử chúng ta muốn kiểm tra những gì đang diễn ra bên trong vòng lặp Nút bước quaNhư tên cho thấy, trình gỡ lỗi đã chuyển sang dòng tiếp theo sau điểm ngắt (được đánh dấu bằng màu vàng) Vài điều cần lưu ý
Khi bạn đã đặt điểm ngắt, bạn có thể nhấp lại vào nút Bước qua và trình gỡ lỗi sẽ dừng ở câu lệnh Đây là một cách tốt để kiểm tra xem các định nghĩa hàm có nhận được các đối số chính xác hay không. Tuy nhiên, chúng tôi vẫn không biết giá trị thực tế sẽ được trả về bởi Đây là nơi tôi cũ sẽ sử dụng câu lệnh Thay vào đó, chúng ta có thể sử dụng chức năng Xem trong trình gỡ lỗi. Nhập biểu thức bạn muốn xem/lấy giá trị và nhấn Enter (xem hình bên dưới). Và thì đấy, bạn có thể thấy giá trị thực của biểu thức
Kể từ đây, giờ đây bạn có thể hoàn tất việc điều hướng/gỡ lỗi thông qua mã của mình bằng nút Tiếp tục và Bước qua, cùng với chức năng Xem Khi bạn đã hoàn thành, đã đến lúc thực hiện thêm một số thay đổi đối với mã. Chúng tôi sẽ cơ cấu lại mã và chuyển Nhanh chóng cập nhật mã để nhập phương thức trong vòng Bây giờ hãy thử gỡ lỗi tập lệnh Bước Vào/Ra nútKhi đã ở trong điểm dừng tại Lý tưởng nhất là điều này sẽ đưa trình gỡ lỗi vào định nghĩa hàm bên trong mô-đun Để bật gỡ lỗi mã không do người dùng viết, hãy đặt Bây giờ hãy thử khởi động lại trình gỡ lỗi và khi trình gỡ lỗi đạt đến điểm dừng Điểm dừng có điều kiệnGiả sử bạn đã hiểu cách thức hoạt động của trình gỡ lỗi khi xem xét một vài lần lặp lại vòng lặp Đây là nơi các điểm dừng có điều kiện xuất hiện trong bức tranh. Hãy xem làm thế nào để làm điều đó. (Để đơn giản, chúng ta sẽ vô hiệu hóa breakpoint trong
Bây giờ, khi bạn khởi động lại trình gỡ lỗi, nó sẽ tự động bỏ qua bốn lần lặp lại đầu tiên và sẽ kích hoạt điểm dừng tại mẹo chuyên nghiệp 1. Bạn cũng có thể chỉ định điểm ngắt để kích hoạt dựa trên số lần truy cập
Chẳng hạn, bạn có thể chỉ muốn kích hoạt điểm dừng cho một số tệp cuối cùng (có thể là do bạn muốn kiểm tra chi tiết chúng). Bạn có thể làm như vậy bằng cách chọn Lượt truy cập từ menu thả xuống (thay vì Biểu thức) và đặt thành mẹo chuyên nghiệp 2. Chúng tôi thậm chí có thể ghi một thông báo (vào Bảng điều khiển gỡ lỗi) mỗi khi điểm ngắt được nhấn. Để làm như vậy, hãy chọn Thông báo nhật ký từ menu thả xuống (thay vì Biểu thức) và đặt nó thành một số văn bản thuần túy và/hoặc biểu thức sẽ được đánh giá trong dấu ngoặc nhọn. Ví dụ đơn giản, chúng ta sẽ ghi nhật ký giá trị cập nhật của ngăn xếp cuộc gọiThông thường, khi làm việc với các dự án lớn hơn, bạn rất dễ mất dấu dòng mã. Với rất nhiều điểm dừng, cuối cùng bạn có thể tự hỏi làm thế nào bạn kết thúc trong tệp này và quan trọng hơn, bạn kết thúc ở đây từ đâu
Trình gỡ lỗi VSCode có thể cung cấp một số trợ giúp về mặt đó bằng cách sử dụng cửa sổ Ngăn xếp cuộc gọi hiển thị phân cấp cuộc gọi Để giới thiệu tiện ích, chúng tôi sẽ làm cho dự án hiện tại lớn hơn một chút bằng cách giới thiệu Hãy nhanh chóng cập nhật Nói chung, chúng ta sẽ thiết lập bốn điểm ngắt trong dự án của mình (xem hình bên dưới)
Mặc dù đây có vẻ như là một ví dụ tầm thường, đây là cách chúng ta có thể xem xét hệ thống phân cấp cuộc gọi
Vài điều cần lưu ý
Hy vọng rằng điều đó có ý nghĩa và không trở thành một trong những điều tôi biết rằng bạn biết rằng tôi biết rằng bạn biết…. Điều Thưởng. Điểm dừng ngoại lệThực hành lập trình tốt thực thi việc sử dụng xử lý lỗi bằng cách sử dụng các khối thử bắt. Do đó, trình gỡ lỗi có thể bỏ qua chúng và mã sẽ không bị hỏng. Nhưng điều gì sẽ xảy ra nếu bạn muốn dừng trình gỡ lỗi một cách rõ ràng bất cứ khi nào một ngoại lệ được đưa ra và/hoặc phát sinh
Để chứng minh điều này, hãy thay đổi mã lần cuối và bao gồm một số khối thử-ngoại trừ Nếu bạn chạy tập lệnh độc lập này (không có trình gỡ lỗi), nó sẽ chạy tốt, không có bất kỳ lỗi nào. Mặc dù gặp sự cố khi không tìm thấy Phải nói rằng, có vẻ hữu ích khi phá vỡ VSCode trong những trường hợp như vậy. Để làm như vậy, hãy đi tới cửa sổ Điểm dừng và đảm bảo hộp kiểm bên cạnh Các ngoại lệ đã tăng được đánh dấu (Các ngoại lệ chưa được xử lý được kích hoạt theo mặc định) Bây giờ khi bạn thử chạy Gỡ lỗi là một trong những kỹ năng tôi học được dưới 80 của Pareto. quy tắc 20. Có thể mất một chút thời gian để tìm hiểu các khía cạnh khác nhau của nó nhưng một khi đã thành thạo, nó có thể được áp dụng cho tất cả các dự án mà bạn sẽ thực hiện. Một điều quan trọng cần lưu ý là chúng ta có thể đặt/chỉnh sửa bao nhiêu điểm dừng tùy ý trong khi trình gỡ lỗi đang chạy, tuy nhiên, chúng ta không thể tự thay đổi mã. Trước tiên, chúng tôi phải dừng trình gỡ lỗi, thực hiện các thay đổi rồi khởi động lại trình gỡ lỗi Như mọi khi, nếu có một cách dễ dàng hơn để thực hiện/giải thích một số nội dung được đề cập trong bài viết này, hãy cho tôi biết. Nói chung, hãy kiềm chế những bình luận phá hoại/rác rưởi/thù địch không được yêu cầu Cho đến lần sau ✨ Tôi thích viết hướng dẫn từng bước cho người mới bắt đầu, hướng dẫn cách thực hiện, câu hỏi phỏng vấn, giải mã thuật ngữ được sử dụng trong ML/AI, v.v. Nếu bạn muốn có toàn quyền truy cập vào tất cả các bài viết của tôi (và những bài khác trên Phương tiện), thì bạn có thể đăng ký bằng liên kết của tôi tại đây Điểm canh gác trong Python là gì?watchpoints là công cụ theo dõi biến/đối tượng trực quan, dễ sử dụng dành cho python hoạt động tương tự như watchpoints trong gdb.
Điểm ngắt trong Python là gì?Điểm ngắt Python() - Dừng gỡ lỗi
. hàm breakpointhook() sử dụng biến môi trường PYTHONBREAKPOINT để định cấu hình trình gỡ lỗi. Nếu không được đặt, trình gỡ lỗi PDB mặc định sẽ được sử dụng. Nếu nó được đặt thành “0” thì chức năng này sẽ trả về ngay lập tức và không có quá trình gỡ lỗi mã nào được thực hiện.
Bạn có thể gán lại giá trị cho một biến trong Python không?Gán lại biến là một hành động Python gán giá trị cho một biến đã tham chiếu đến một giá trị . Kiểu gán lại biến phổ biến nhất là với câu lệnh gán. x = 1 x = 5 # Biến x được gán lại trên dòng này. Việc gán lại biến thay đổi đối tượng mà một biến đề cập đến. |