Truy tìm lại
Truy tìm lại là định vị điểm cuối cho một sự kiện được liên kết với tính năng (xem bên dưới). Khi đó, một điểm dừng được đặt trong trình gỡ lỗi. Tính năng này được kích hoạt và khi trình gỡ lỗi dừng lại. Ngăn xếp cuộc gọi được xem xét để quay lại đường dẫn cuộc gọi. Trong khi đi lên ngăn xếp cuộc gọi, bạn có thể ghi chú vào các trạng thái khác nhau hoặc đặt các điểm dừng mới để kiểm tra lại sự kiện.
Tính năng này được kích hoạt một lần nữa và trình gỡ lỗi dừng tại các điểm dừng mới. Sau đó, bạn có thể lặp lại theo dõi trở lại hoặc thực hiện theo dõi về phía trước cho đến khi tìm thấy mục tiêu.
Ưu và nhược điểm
- Luôn dễ dàng hơn để đi lên ngăn xếp cuộc gọi và xem bạn đã đến một nơi nào đó.
- Có thể có hàng triệu điều kiện cần phải đúng trước khi đạt đến điểm cuối. Nếu bạn biết điểm cuối đã tiết kiệm cho mình rất nhiều công việc.
- Nếu tính năng bị hỏng. Bạn có thể không bao giờ đạt đến điểm cuối, và thời gian có thể bị lãng phí khi cố gắng tìm hiểu tại sao.
Khám phá điểm cuối
Để gỡ lỗi một tính năng, bạn phải biết nơi mã nguồn đạt được mục tiêu cuối cùng. Chỉ từ thời điểm này, bạn có thể quay lại để xem làm thế nào mã đã đến đó. Một ví dụ; Để hiểu cách hoàn tác được thực hiện. Bạn biết nơi nào trong mã được hoàn tác, nhưng bạn không biết làm thế nào mọi thứ đến đó . Đây sẽ là một ứng cử viên cho backtracing để tìm ra cách tính năng này hoạt động.
Chuyển tiếp truy tìm
Chuyển tiếp theo dõi là định vị điểm bắt đầu cho một sự kiện được liên kết với một tính năng (xem bên dưới). Khi đó, thông điệp đăng nhập được chèn vào mã nguồn hoặc điểm dừng được đặt. Quá trình này được lặp lại khi bạn tiến xa hơn từ điểm bắt đầu cho đến khi bạn phát hiện ra các mục tiêu cho tính năng này.
Ưu và nhược điểm
- Đó là điểm khởi đầu dễ dàng nhất để tìm một tính năng.
- Độ phức tạp của mã làm giảm hiệu quả của việc truy tìm phía trước. Càng có nhiều điều kiện trong mã, cơ hội bạn đi sai hướng càng lớn.
- Chuyển tiếp theo dõi thường dẫn đến việc thiết lập các điểm dừng sẽ được kích hoạt bởi các sự kiện không liên quan. Làm gián đoạn quá trình gỡ lỗi và can thiệp vào tìm kiếm của bạn.
Điểm bắt đầu khám phá
Bạn có thể sử dụng từ khóa, số nhận dạng giao diện người dùng (ID nút, tên cửa sổ) hoặc dễ dàng tìm thấy trình nghe sự kiện được liên kết với tính năng này. Ví dụ: bạn có thể bắt đầu với nút được sử dụng để kích hoạt tính năng hoàn tác .
Quá trình loại bỏ
Bạn có thể coi đây là điểm giữa so với vị trí điểm bắt đầu và điểm cuối . Bạn thực hiện quá trình loại bỏ khi bạn đã biết một đoạn mã được sử dụng trong một tính năng, nhưng nó không phải là sự khởi đầu hay kết thúc của tính năng.
Hướng bạn đi từ điểm giữa phụ thuộc vào số lượng mục nhập và thoát. Nếu đoạn mã được sử dụng ở nhiều nơi, thì việc truy ngược lại từ vị trí này có thể rất tốn thời gian vì tất cả chúng phải được kiểm tra. Sau đó, bạn sử dụng một quá trình loại bỏ để giảm danh sách này. Thay vào đó, bạn có thể thực hiện theo dõi chuyển tiếp từ thời điểm này, nhưng một lần nữa nếu đoạn mã phân nhánh ra nhiều nơi thì đây cũng có thể là một vấn đề.
Bạn phải giảm chỉ đường vị trí bằng cách không theo các đường dẫn rõ ràng sẽ không được thực thi cho tính năng. Di chuyển qua mã này và chỉ đặt các điểm dừng ở nơi có khả năng liên quan đến tính năng.
Gỡ lỗi điểm giữa thường đòi hỏi nhiều tính năng IDE nâng cao hơn. Khả năng xem phân cấp mã và phụ thuộc. Không có những công cụ đó thật khó để làm.
Ưu và nhược điểm
- Điểm giữa thường là những đoạn mã đầu tiên xuất hiện trong đầu bạn khi bạn nghĩ về tính năng này. Bạn tự nhủ "Ah, điều đó phải sử dụng XXXX để hoạt động."
- Điểm giữa có thể tiết lộ điểm bắt đầu dễ nhất.
- Điểm giữa có thể là một cách dễ dàng để chọn đường dẫn đến một tính năng khi bị mất do đồng bộ hóa hoặc thay đổi luồng.
- Điểm giữa có thể đưa bạn đến mã mà bạn không quen thuộc. Chi phí thời gian của bạn để tìm hiểu những gì đang xảy ra.