Gỡ lỗi
Gỡ lỗi là gì
Gỡ lỗi là một quá trình trong đó bạn có thể phát hiện và sửa các lỗi có trong mã của bạn.
Bất kỳ chương trình .NET nào cũng có thể chạy trong hai chế độ khác nhau.
- Chế độ phát hành - thường được sử dụng trong môi trường sản xuất. Khi sử dụng nó, .NET kích hoạt các tối ưu hóa trình biên dịch và just-in-time khác nhau để cải thiện tốc độ thực thi mã của bạn và giảm dung lượng bộ nhớ.
- Chế độ gỡ lỗi - chủ yếu được sử dụng trong môi trường phát triển và kiểm tra. Tất cả các tối ưu hóa đều bị vô hiệu hóa, và bạn có thể gắn các trình gỡ lỗi .NET vào mã của mình.
Khi làm việc với các thư viện và ứng dụng .NET, gỡ lỗi bao gồm các bước sau:
- Chạy mã của bạn trong chế độ gỡ lỗi
- Gắn một trình gỡ lỗi .NET vào mã của bạn
- Đặt các điểm dừng mã để chỉ ra liệu luồng thực thi có nên tạm dừng hay không
- Theo dõi luồng thực thi mã với các điểm dừng đã được lên kế hoạch
Định nghĩa trình gỡ lỗi .NET
Trình gỡ lỗi .NET là các chương trình sử dụng các API thời gian chạy. Các API này, đến lượt chúng, cho phép kiểm soát luồng thực thi của các quy trình .NET. Nói cách khác, chúng có thể tạm dừng thực thi tại các điểm dừng đã cho và lưu trữ các trạng thái khác nhau (bao gồm cả các giá trị mà các biến riêng lẻ giữ trong các trạng thái này).
Xây dựng thuật toán trong chế độ gỡ lỗi
Như chúng ta đã thảo luận ở trên, việc gỡ lỗi một cBot hoặc một chỉ báo đòi hỏi phải xây dựng tiện ích mở rộng này trong chế độ gỡ lỗi. Theo mặc định, khi bạn nhấp vào nút Xây dựng trong giao diện người dùng cTrader, tiện ích mở rộng của bạn chạy ở chế độ phát hành để kích hoạt tối ưu hóa mã.
Để xây dựng cBot hoặc chỉ báo của bạn trong chế độ gỡ lỗi, bạn cần sử dụng CLI .NET hoặc các IDE bên ngoài như Visual Studio. Trong tài liệu này, chúng tôi hiển thị quá trình gỡ lỗi như nó xảy ra trong Visual Studio. Tuy nhiên, quá trình này cũng có thể được sao chép trong các IDE khác với một số thay đổi nhỏ.
Cài đặt phiên bản mới nhất của Visual Studio trên máy của bạn và thực hiện các hành động sau:
-
Mở chỉ báo hoặc cBot của bạn trong Visual Studio bằng cách chọn tùy chọn Chỉnh sửa trong Visual Studio trong danh sách thả xuống Chỉnh sửa trong... ở đầu cửa sổ trình soạn thảo mã.
-
Trong menu phía trên cửa sổ soạn thảo mã Visual Studio, chọn Gỡ lỗi.

- Xây dựng cBot hoặc chỉ báo của bạn trong chế độ gỡ lỗi.
Gỡ lỗi một cBot hoặc chỉ báo
Bây giờ bạn đã biết cách xây dựng một cBot hoặc chỉ báo trong chế độ gỡ lỗi, chúng ta sẽ tập trung vào cách thực sự gỡ lỗi nó.
-
Thay đổi quyền truy cập chỉ báo hoặc cBot của bạn thành
FullAccess. -
Gắn một trình gỡ lỗi vào quá trình chạy chỉ báo hoặc cBot của bạn. Bạn có thể làm điều này bằng cách gọi phương thức
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Ghi chú
Phương thức System.Diagnostics.Debugger.Launch() phải được gọi trong phương thức OnStart() (đối với cBot) hoặc phương thức Initialize() (đối với chỉ báo).
- Chạy một phiên bản mới của cBot hoặc chỉ báo của bạn. Nếu một phiên bản đã đang chạy, hãy chọn nó trong giao diện người dùng. Bạn sẽ được chuyển hướng đến Visual Studio với một lời nhắc để chọn trình gỡ lỗi. Làm như vậy và nhấp vào OK.

Khi bắt đầu gỡ lỗi, bạn có thể đặt điểm dừng, (bước vào) các dòng mã và xem ngăn xếp cuộc gọi và giá trị biến.
Để có hướng dẫn đầy đủ về cách gỡ lỗi trong Visual Studio, hãy kiểm tra tài liệu gỡ lỗi Visual Studio.
Sử dụng chỉ thị tiền xử lý DEBUG
Bạn cũng có thể sử dụng chỉ thị tiền xử lý DEBUG trong mã cBot hoặc chỉ báo của bạn để kiểm soát luồng thực thi.
Chỉ thị #if DEBUG hữu ích khi bạn muốn chỉ chạy một khối hoặc một dòng mã trong chế độ gỡ lỗi.
1 2 3 4 5 6 7 8 9 | |
Trong ví dụ trên, dòng mã "Not Debugging" sẽ không được biên dịch nếu bạn xây dựng cBot của mình trong chế độ gỡ lỗi.
Thông tin bổ sung về các chỉ thị tiền xử lý C# có sẵn trong tài liệu này.