Hướng dẫn what is debugging process in php? - quy trình gỡ lỗi trong php là gì?

Nếu bạn sử dụng PHP hoặc bạn thấy mình áp dụng ứng dụng PHP [như tôi đã làm vài năm trước], bạn phải biết cách gỡ lỗi PHP.

Trong hướng dẫn chi tiết này về gỡ lỗi PHP, bạn sẽ thấy một số kỹ thuật gỡ lỗi áp dụng & nbsp; cho hầu hết mọi ngôn ngữ lập trình. Nhưng đừng lo lắng. Tôi sẽ nhận được các chi tiết cụ thể áp dụng cho PHP, từ những điều cơ bản cho đến các kỹ thuật gỡ lỗi tích hợp đầy đủ. Hãy bắt đầu với một kỹ thuật cơ bản trong gỡ lỗi PHP: xuất và ghi nhật ký giá trị.

Xuất ra giá trị

Khi bạn cần một cách đơn giản để gỡ lỗi các chương trình và bạn không có tùy chọn nào khác, bạn thường có thể xuất các giá trị. Đôi khi điều này có nghĩa là thực hiện một var_dump hoặc đăng nhập toàn bộ một loạt các sự kiện.

Nó rất hữu ích khi có ghi nhật ký gỡ lỗi trong chương trình của bạn. Trong PHP, bạn có thể sử dụng các trình ghi nhật ký khác nhau để ghi nhật ký tin nhắn gỡ lỗi. Khi chương trình được chạy ở chế độ gỡ lỗi hoặc mức nhật ký được đặt thành gỡ lỗi, các tin nhắn này sẽ kết thúc trong các tệp stdout, stderr hoặc nhật ký của bạn. Các bản ghi sẽ lấp đầy khá nhanh trong chế độ gỡ lỗi của người dùng, vì vậy bạn chỉ muốn bật nó lên tạm thời. Nhưng tôi đã đi trước chính mình ở đây. Hãy để tôi sao lưu theo một số cách đơn giản để đầu ra các giá trị.

Biến các biến vào stdout

Hàm var_dump là một cách để xem những gì xảy ra trong chương trình PHP của bạn. Nó sẽ đổ một giá trị biến vào stdout. Có các chức năng khác mà bạn có thể sử dụng để gỡ lỗi thông qua các đầu ra. Đây là một số ít và họ sẽ giúp bạn như thế nào:

  • var_dump [$ var] & nbsp; bỏ loại biến và giá trị vào stdout. dumps the variable type and value to stdout.
  • print_r [$ var] & nbsp; in giá trị biến ở dạng người có thể đọc được thành stdout. prints the variable value in human-readable form to stdout.
  • get_defined_vars [] & nbsp; có tất cả các biến được xác định bao gồm các biến tích hợp và biến tùy chỉnh [print_r để xem chúng]. gets all the defined variables including built-ins and custom variables [print_r to view them].
  • DEBUG_ZVAL_DUMP [$ var] & nbsp; bỏ biến với số lượng tham chiếu của nó. Điều này rất hữu ích khi có nhiều đường dẫn để cập nhật một tham chiếu duy nhất. dumps the variable with its reference counts. This is useful when there are multiple paths to update a single reference.
  • DEBUG_PRINT_BACKTRACE [] & NBSP; In Backtrace hiển thị chuỗi cuộc gọi chức năng hiện tại. prints a backtrace that shows the current function call-chain.
  • DEBUG_BACKTRACE [] có được backtrace. Bạn có thể in_R, đăng nhập vào một tệp hoặc gửi nó vào điểm cuối ghi nhật ký không đồng bộ. gets the backtrace. You can print_r, log it to a file, or send it to a logging endpoint asynchronously.

Tại đây, mã mẫu mà tập thể dục từng chức năng gỡ lỗi hữu ích này:

Các chức năng này là một cách nhanh chóng để gỡ lỗi mã PHP của bạn. Bạn có thể thấy chúng hoạt động trong Paiza này. Mỗi chức năng có một mục đích và có thể hữu ích để gỡ lỗi.

Cấp độ báo cáo lỗi chuyển đổi

PHP có một vài cách để định cấu hình báo cáo lỗi. Bạn có thể sử dụng tệp php.ini, nếu bạn có quyền truy cập vào nó. Nếu không, bạn có thể sử dụng cấu hình HTACCESS & NBSP; Nếu bạn có thể sử dụng các tệp cấu hình, bạn có tùy chọn thay đổi giá trị thông qua tập lệnh. Điều này là có thể, nhưng hãy nghĩ về cách bạn sẽ thay đổi chế độ sau khi triển khai ứng dụng của mình.php.ini file, if you have access to it. Otherwise, you might use the htaccess configuration. If you can’t use configuration files, you have the option of changing the values via a script. This is possible, but think about how you would change modes after deploying your application.

Một sự kết hợp của các cài đặt sẽ giúp bạn có mức độ đăng nhập lỗi phù hợp. Bạn sẽ muốn xem xét các cài đặt sau:

  • Error_Reporting & nbsp; đặt mức ghi nhật ký. E_notice & nbsp; rất hữu ích trong quá trình phát triển vì nó sẽ cho bạn biết về các khiếm khuyết như các biến không được chỉ định. sets the level of logging. E_NOTICE is useful during development since it will tell you about defects such as unassigned variables.
  • display_errors nói với PHP nếu và nơi hiển thị thông báo lỗi. tells PHP if and where to display error messages.
  • display_startup_errors chỉ nên được sử dụng khi gỡ lỗi. should only be used when debugging.
  • log_errors và error_log hoạt động cùng nhau để gửi lỗi đến tệp nhật ký. Làm điều này trong sản xuất thay vì hiển thị chúng cho người dùng cuối. and error_log work together to send errors to a log file. Do this in production rather than displaying them to end users.

Hướng dẫn sử dụng PHP đánh vần các cài đặt này một cách chi tiết hơn và cung cấp thêm thông tin tôi có thể phù hợp trong phần này. Nhưng ngay cả với các cài đặt ghi nhật ký tốt nhất, bạn vẫn cần theo dõi các lỗi.

Giám sát nhật ký lỗi

Nó có một điều để đăng nhập các lỗi, đó là một điều gần như đã cho. & NBSP; Nó là một điều hoàn toàn khác để thực hiện hành động khi các lỗi được ghi lại. Đầu tiên, bạn phải & nbsp; biết về các lỗi. Trừ khi bạn có cả ngày lẫn đêm để di chuột qua các bản ghi, bạn sẽ không biết khi nào có điều gì đó tồi tệ đang xảy ra!

Điều tốt nhất bạn có thể làm là gửi nhật ký PHP của mình đến một dịch vụ sẽ xử lý một vài điều chính cho bạn:

  1. Tập hợp đăng nhập. Bạn muốn xem tất cả các nhật ký của bạn ở một nơi. Nếu bạn có thể tập trung nhật ký và số liệu của mình qua các trường hợp, thì điều đó thậm chí còn tốt hơn! Bạn có thể phát hiện ra rắc rối bất cứ nơi nào nó xảy ra. You want to see all your logs in one place. If you can centralize your logs and metrics across instances, that’s even better! You’d be able to spot trouble wherever it happens.

  1. Cảnh báo. Không có gì tốt hơn tự động hóa. Nếu bạn là một lập trình viên, bạn sẽ hiểu ý tôi! Bạn sẽ muốn tự động hóa hầu hết mọi thứ nếu bạn có thể. Cảnh báo là một cách để gửi cảnh báo tự động đến email nhóm [tốt hơn so với một cá nhân liên tục] khi có vấn đề. Đây có thể là vấn đề máy chủ hoặc lỗi nhấn nhật ký của bạn. Nó phải được định cấu hình và bạn nên & nbsp; có quyền kiểm soát cấu hình. There’s nothing better than automation. If you’re a programmer, you know what I mean! You’ll want to automate almost anything if you can. Alerting is a way to send alerts automatically to a group email [better than an individual for continuity] when there’s a problem. This can be a server issue or errors hitting your logs. It should be configurable and you should have control over the configuration.
  2. Dấu vết trong nhật ký của bạn. Những gì một dấu vết? Nó không chỉ là một bãi chứa ngăn xếp cho phép bạn thấy những gì đang xảy ra khi xảy ra lỗi. Nó cũng là một cách để theo dõi hiệu suất, thường là một dấu hiệu hoặc nguyên nhân của lỗi. What’s a trace? It’s not just a stack dump that lets you see what was going on when an error happened. It’s also a way to track performance, which is often a sign or a cause of a bug.
  3. Phân phối các mục nhập nhật ký. Khi một lỗi gây ra lỗi, nó có thể lấp đầy nhật ký khá nhanh. Chỉ cần kết hợp qua các bản ghi với hàng trăm hoặc hàng ngàn cùng một mục là một showstopper. Sự sao chép lấy đi nỗi đau! When a bug causes an error, it can fill up the logs pretty quickly. Just combing through the logs with hundreds or thousands of the same entry is a showstopper. Deduplication takes away the pain!

Bạn có thể định cấu hình nhiều tiện ích ghi nhật ký PHP để làm việc với Stackify Letrace bằng cách làm theo hướng dẫn này. Lấy lại hoạt động với PHP, và nó làm tất cả những điều này cho bạn. Thêm vào đó, nó tự động thu thập dấu vết nhẹ và chỉ khi nó nên.

Chắc chắn, & nbsp; Lấy lại là một công cụ tuyệt vời để phát hiện lỗi! Nhưng một khi bạn phát hiện chúng, hãy sửa chúng. Thông thường điều đó có nghĩa là gắn một trình gỡ lỗi. Hãy để vào đó tiếp theo!

Bước qua mã

Bây giờ chúng tôi sẽ nói về việc gỡ lỗi bằng cách bước qua mã. Đây là những gì nhiều người trong chúng ta nghĩ đến khi chúng ta thấy việc gỡ lỗi. Nó là một cách phổ biến để gỡ lỗi mã [loại bỏ các lỗi gây ra lỗi]. Với một ứng dụng web hoặc trang web, gỡ lỗi thường là hai hướng.

Sau khi được thông báo về một lỗi mà đã được ghi lại, chúng tôi có thể gỡ lỗi nếu cần. Với đủ chi tiết trong nhật ký, điều này sẽ dễ dàng. Chúng tôi thậm chí có thể không phải sử dụng một trình gỡ lỗi. Thông thường, càng ít sử dụng một, càng tốt. & NBSP; Nhưng nếu bạn làm, thì đây là cách để giải quyết điều đó!

Công cụ gỡ lỗi PHP

Bạn có thể gỡ lỗi PHP bằng cách sử dụng một trong nhiều công cụ gỡ lỗi để gắn máy khách gỡ lỗi.

Là một polyglot, tôi cần một IDE hỗ trợ nhiều ngôn ngữ, vì vậy tôi đã chọn mã vs mã ngày nay. Tôi đã sử dụng XDebug với Visual Studio trong quá khứ, vì vậy hãy để xem cách chúng ta có thể thiết lập nó với mã VS.

Thiết lập máy chủ gỡ lỗi là như nhau, nhưng mỗi máy khách [IDE hoặc CLI] sẽ có một thiết lập hơi khác nhau. Xem, máy chủ gỡ lỗi [tiện ích mở rộng Zend] mở một cổng và máy khách giao tiếp với máy chủ thông qua cổng đó. Nó chỉ là vấn đề cấu hình và cài đặt các thành phần phù hợp.

Dưới đây là những bước tôi thực hiện trên hành trình này:

  1. Kiểm tra các tiện ích mở rộng PHP trong mã VS. Có nhiều! Đầu danh sách trông giống như thế này: và trong trường hợp bạn thiếu nó, PHP Intellisense đứng đầu với hơn sáu triệu lượt tải xuống, tiếp theo là gỡ lỗi PHP, với hơn ba triệu.
    And in case you’re missing it, PHP IntelliSense is on top with over six million downloads, followed by PHP Debug, with over three million.
  2. Cài đặt tiện ích mở rộng gỡ lỗi PHP.
  3. Nhấp vào Tải lại tải lại để tải lại mã vs.
  4. Cài đặt XDebug. Tiện ích mở rộng gỡ lỗi PHP cho mã VS chỉ là một tích hợp cho XDebug. Tôi đã cài đặt Php 7.0, vì vậy tôi phải nhận đúng phiên bản XDebug từ trang tải xuống. Tập lệnh sau sẽ giúp:

Tôi đang tìm kiếm phiên bản PHP, phiên bản trình biên dịch, kiến ​​trúc và bản dựng mở rộng PHP để tôi có thể tải xuống phiên bản chính xác. Tôi có x86, VC14, NTS [không an toàn cho phép]. Phiên bản này đi kèm với WordPress cho IIS. Tôi làm việc trên một máy Windows. Nếu bạn là một hộp Linux, bạn đã thắng được đối mặt với những vấn đề tương tự, chỉ cần biên dịch mã nguồn cho XDebug!

  1. Bây giờ tôi có phiên bản phù hợp, tôi sẽ đưa nó vào thư mục PHP/EXT.
  2. Tiếp theo, tôi cần định cấu hình PHP để sử dụng tiện ích mở rộng và cho phép gỡ lỗi từ xa. Tôi sẽ thêm cấu hình sau vào tệp php.ini & nbsp; mà được liệt kê trong thông tin PHP:php.ini file that’s listed in PHP Info:
; set the extension path
zend_extension="C:/Program Files [x86]/PHP/v7.0/ext/php_xdebug-2.6.1-7.0-vc14-nts.dll"
; allow remote debugging
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

Điều này sẽ thiết lập máy chủ PHP để sử dụng XDebug. Các bước ở đây là giống nhau cho dù bạn sử dụng IDE nào. XDebug mở một cổng HTTP để trình gỡ lỗi của bạn có thể đính kèm. Khách hàng vẫn cần được cấu hình để đính kèm và sử dụng giao thức gỡ lỗi. Tôi sẽ chạy qua phần đó bây giờ.

  1. Cuối cùng, tôi sẽ định cấu hình mã VS để kết nối với XDebug. Có một vài bước đơn giản và sau đó gắn là tự động. Tôi sẽ chia điều này vào phần riêng của nó vì có một vài bước.

Cấu hình IDE của bạn

Sau khi cài đặt & nbsp; xdebug, bạn vẫn cần định cấu hình IDE của mình để gắn vào trình gỡ lỗi. Trong mã VS, điều này có nghĩa là thêm cấu hình gỡ lỗi. May mắn thay, đây là tự động tại thời điểm này. Nó chỉ là một vài bước đơn giản:

  1. Chuyển sang chế độ xem gỡ lỗi.
  2. Nhấp vào bánh răng để hiển thị menu ngôn ngữ.
  3. Chọn PHP. Mã VS sẽ tạo cấu hình mặc định.
  4. Tải lại máy chủ PHP. Tôi đã cài đặt một tiện ích mở rộng khác có tên là máy chủ PHP, điều này đơn giản. Sử dụng menu ngữ cảnh [nhấp chuột phải] để điều khiển máy chủ PHP như trong ảnh chụp màn hình bên dưới.

Điều này sẽ đưa IDE của chúng tôi vào một trạng thái mà sẵn sàng gắn vào Xdebug. Truyền thông với trình gỡ lỗi xảy ra thông qua cổng TCP trên máy chủ gỡ lỗi. XDebug sử dụng giao thức DBGP thông qua cổng 9000 theo mặc định.

Bây giờ chúng tôi đã cấu hình, hãy để Lôi nhìn vào cơ chế của một phiên gỡ lỗi. Tiếp theo, chúng tôi sẽ đề cập đến cách tham gia vào một phiên gỡ lỗi, cách đặt các điểm dừng và cách bước qua, vào và qua các chức năng. Nó là phần tốt nhất!

Gắn và bước vào gỡ lỗi

Và bây giờ, khoảnh khắc bạn đã chờ đợi: gỡ lỗi từng bước. Chúng tôi đã cấu hình môi trường của chúng tôi để gỡ lỗi. Chúng tôi đã cài đặt một tiện ích mở rộng gỡ lỗi [cụ thể là XDebug] và chúng tôi đã cấu hình IDE của chúng tôi [mã VS, trong trường hợp của tôi]. Bây giờ, thời gian để gắn vào trình gỡ lỗi.

Gắn một trình gỡ lỗi

Tiện ích mở rộng gỡ lỗi PHP cho mã VS đã tạo tệp Launch.json & NBSP; Tệp đó đi vào thư mục A & NBSP; Đây là những gì nó tạo ra:launch.json file. That file goes into a .vscode directory in the root of the project. Here’s what it generated:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: //go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

Nó thêm hai cấu hình khởi chạy. Những thứ đó có sẵn trong chế độ xem gỡ lỗi. Chúng ta có thể gắn vào một máy chủ đang chạy hoặc khởi chạy một máy chủ mới với tập lệnh hiện tại. Vì tôi đã chạy phpinfo, tôi sẽ bắt đầu ở đó bằng cách chọn lắng nghe xdebug & nbsp; để đính kèm với máy chủ đó.phpinfo running already, I’ll start there by choosing Listen for XDebug to attach to that server.

Khi bạn đã đính kèm, bạn sẽ thấy thanh công cụ gỡ lỗi.

Hầu hết các trình gỡ lỗi có một cơ chế kiểm soát tương tự. Điều này cho phép bạn bắt đầu, dừng lại, bước và khởi động lại trình gỡ lỗi của bạn. Vì chúng tôi thấy một biểu tượng dừng và tạm dừng, chúng tôi đã gắn bó và sẵn sàng, vì vậy hãy để Lừa có được bước!

Bước qua mã

Bước qua mã là một nghệ thuật nhiều như nó là khoa học. Điều đầu tiên bạn cần làm là thiết lập một điểm dừng nơi bạn nghĩ rằng bạn có vấn đề. Tôi thường cắm một cái ngay trước đó để tôi có thể thấy những gì xảy ra khi chúng ta bước vào mã vấn đề. Hãy để Lừa đặt một trong tập lệnh PHPINFO chỉ để mọi thứ lăn lộn.phpinfo script just to get things rolling.

Đặt điểm dừng

Thông thường, nhấp vào lề trái sẽ đặt điểm dừng trên đường gần nhất. Bạn cũng có thể đặt con trỏ của mình trên đường và đánh F9. Nếu bạn đã có nhiều cuộc gọi chức năng trên cùng một dòng, thì đó là một cách để đảm bảo điểm dừng nằm đúng. Một chấm đỏ sẽ xuất hiện ở lề trái. Điều này cho thấy một điểm dừng. Nó cũng nên được liệt kê trong thành phần điểm dừng của người Viking. Ở đây, một hình ảnh để làm rõ:

Lưu ý: Chúng tôi vẫn còn trong chế độ xem gỡ lỗi. Tôi đặt một điểm dừng duy nhất. Bây giờ, khi tôi nhấp chuột phải vào vòng tròn điểm dừng màu đỏ ở lề bên cạnh mã, bạn có thể chọn Chỉnh sửa điểm dừng và NBSP; để thiết lập các điều kiện nếu bạn cần. Điều kiện rất hữu ích, đặc biệt nếu bạn có toàn bộ bộ sưu tập nhưng chỉ có một yếu tố gây ra vấn đề. Tôi sử dụng điều kiện mọi lúc!Debug view. I set a single breakpoint. Now, when I right-click the red breakpoint circle in the margin next to the code, you can choose Edit breakpoint… to set up conditions if you need to. Conditions are useful, especially if you have an entire collection but only one element is causing an issue. I use conditionals all the time!

Bên cạnh các điểm dừng có điều kiện, bạn có tùy chọn để đăng nhập một tin nhắn và phá vỡ sau một số lần truy cập nhất định. Cái sau rất hữu ích khi bạn có mã lặp lại mà không có giá trị duy nhất cụ thể để kích hoạt BẬT. Ví dụ: bạn có thể có mã để kết xuất các thành phần trong một tập hợp các thành phần. Nếu thành phần thứ 13 gây ra thảm họa, bạn chỉ có thể đặt số lượng hit thành 13. Tôi đã phải đếm thủ công quá nhiều lần để xem giá trị trong tính năng này!

Với ít nhất một bộ điểm dừng, bạn đã sẵn sàng bước qua mã & nbsp;

Bước qua mã

Bước qua mã là một nghệ thuật nhiều như nó là khoa học. Điều đầu tiên bạn cần làm là thiết lập một điểm dừng nơi bạn nghĩ rằng bạn có vấn đề. Tôi thường cắm một cái ngay trước đó để tôi có thể thấy những gì xảy ra khi chúng ta bước vào mã vấn đề. Hãy để Lừa đặt một trong tập lệnh PHPINFO chỉ để mọi thứ lăn lộn.

Đặt điểm dừng

Thông thường, nhấp vào lề trái sẽ đặt điểm dừng trên đường gần nhất. Bạn cũng có thể đặt con trỏ của mình trên đường và đánh F9. Nếu bạn đã có nhiều cuộc gọi chức năng trên cùng một dòng, thì đó là một cách để đảm bảo điểm dừng nằm đúng. Một chấm đỏ sẽ xuất hiện ở lề trái. Điều này cho thấy một điểm dừng. Nó cũng nên được liệt kê trong thành phần điểm dừng của người Viking. Ở đây, một hình ảnh để làm rõ:

Lưu ý: Chúng tôi vẫn còn trong chế độ xem gỡ lỗi. Tôi đặt một điểm dừng duy nhất. Bây giờ, khi tôi nhấp chuột phải vào vòng tròn điểm dừng màu đỏ ở lề bên cạnh mã, bạn có thể chọn Chỉnh sửa điểm dừng và NBSP; để thiết lập các điều kiện nếu bạn cần. Điều kiện rất hữu ích, đặc biệt nếu bạn có toàn bộ bộ sưu tập nhưng chỉ có một yếu tố gây ra vấn đề. Tôi sử dụng điều kiện mọi lúc!

Bên cạnh các điểm dừng có điều kiện, bạn có tùy chọn để đăng nhập một tin nhắn và phá vỡ sau một số lần truy cập nhất định. Cái sau rất hữu ích khi bạn có mã lặp lại mà không có giá trị duy nhất cụ thể để kích hoạt BẬT. Ví dụ: bạn có thể có mã để kết xuất các thành phần trong một tập hợp các thành phần. Nếu thành phần thứ 13 gây ra thảm họa, bạn chỉ có thể đặt số lượng hit thành 13. Tôi đã phải đếm thủ công quá nhiều lần để xem giá trị trong tính năng này!phpinfo line. With your PHP server serving the page and your debugger attached, reload the web page. If all goes well, your debugger will light up and pause on that line.

Với ít nhất một bộ điểm dừng, bạn đã sẵn sàng bước qua mã & nbsp;

  1. Bước qua mã là một hoạt động phức tạp. Nó rất đơn giản để kiểm soát, nhưng có rất nhiều điều đang diễn ra. Trình gỡ lỗi sẽ đánh giá các biến, bạn có thể đặt đồng hồ trên các biến và bạn có quyền truy cập vào ngăn xếp cuộc gọi. Khi trình gỡ lỗi được tạm dừng trên điểm dừng [hoặc bằng cách nhấn thủ công nút tạm dừng/nhấn F6], bạn đã sẵn sàng để bước qua mã.
  2. Sử dụng tập lệnh này để theo dõi:
  3. Bạn có thể bước vào các chức năng [F11], bước ra khỏi các chức năng [Shift + F11] và bước qua các chức năng [F10]. Bạn nên làm quen với việc sử dụng các khóa chức năng để điều khiển các phiên gỡ lỗi của bạn; Họ sẽ đi mượt mà hơn rất nhiều nếu bạn làm thế!
  4. Một số ngôn ngữ cho phép bạn đi ngược thời gian. PHP không có, nhưng đó là OK OK. Nó là một ngôn ngữ kịch bản, và điều đó sẽ gây ra các vấn đề với tuyên bố, dù sao đi nữa. Hãy cùng bước qua kịch bản này bằng cách sử dụng F10.

Đặt một điểm dừng trên dòng PHPINFO. Với máy chủ PHP của bạn phục vụ trang và trình gỡ lỗi của bạn được đính kèm, hãy tải lại trang web. Nếu mọi việc suôn sẻ, trình gỡ lỗi của bạn sẽ sáng lên và tạm dừng trên dòng đó.

Xin chúc mừng! Bây giờ bạn có một phiên gỡ lỗi tích cực. Thực hiện theo các bước này để di chuyển qua mã:

Nhấn F10 một vài lần và xem bước gỡ lỗi thông qua mã.

Khi bạn vào vòng lặp, hãy bước vào một phương pháp với F11.

Khi bạn ở bên trong phương thức, bạn có thể sử dụng Shift + F11 để lùi lại. Tất cả các mã vẫn sẽ chạy, nó chỉ là trình gỡ lỗi của bạn đã giành được theo sau các phần đó.run to cursor, and it does what it sounds like. Just place your cursor somewhere past the loop and use this option to jump to that point.

Trình gỡ lỗi sẽ chạy từ vị trí hiện tại của nó đến con trỏ khi tôi chọn tùy chọn này. Lưu ý rằng không có phím tắt nào cho nó, thật không may.

Kiểm tra các biến

Một lợi ích chính của việc gỡ lỗi là bạn có thể kiểm tra các biến khi bạn bước qua mã. Hầu hết các IDE bao gồm một cách để kiểm tra các biến cục bộ và toàn cầu. Ngoài ra, bạn có thể xem các biến để bạn không phải săn lùng chúng ở người dân địa phương hoặc superglobals.Locals or Superglobals.

Bạn cũng có thể xem biểu thức! Điều này thật tuyệt khi bạn muốn xem làm thế nào một biểu thức phức tạp bên trong câu lệnh IF sẽ đánh giá. Chỉ cần sao chép biểu thức vào đồng hồ và bạn có thể theo dõi kết quả khi các giá trị thay đổi.

Tôi đã thêm các biểu thức đồng hồ sau: $ path == blah blah. Trong mã VS, bạn có thể làm nổi bật một biểu thức trong mã và mở menu ngữ cảnh để xem biểu thức.$path == “blah”. In VS Code, you can highlight an expression in the code and open the context menu to watch the expression.

Tôi đã nhấn mạnh $ i

Bài Viết Liên Quan

Chủ Đề