Tôi đang cố gắng gỡ lỗi ứng dụng Windows 8 C# Store bằng trình gỡ lỗi máy cục bộ. Vì vậy, tôi đã thêm một số dòng không chính xác vào hàm tạo MainPage
, sau khi gọi InitializeComponent
. Tôi đã thử mã gây ra DivideByZero
hoặc NullReferenceException
- với cùng kết quả.Gỡ lỗi ứng dụng Windows Store trên máy cục bộ
Vì vậy, tôi thực hiện "Start Debugging", và gỡ lỗi vi phạm ở đây:
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException += (sender, e) =>
{
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};
#endif
thông tin stack không có sẵn, nó là không thể để phát hiện đâu là một lỗi (chỉ nhắn ngoại lệ đầu tiên cơ hội trong Output cửa sổ đưa ra gợi ý).
Tôi đã cố gắng xác định DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
trong các ký hiệu tiền xử lý dự án. Lần này tôi nhận được thông điệp lạ sau đây: "Trình gỡ rối được đính kèm vào YourProgram.exe nhưng không được định cấu hình để gỡ lỗi ngoại lệ không được xử lý này".
Chỉ khi loại ngoại lệ cụ thể được chọn trong hộp thoại "Ngoại lệ" và DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
được xác định, tôi đã quản lý để ngắt dòng gây ra lỗi.
Vì vậy, cách đúng để phá vỡ dòng vi phạm, như thế nào là trong gỡ lỗi ứng dụng máy tính để bàn truyền thống? Nếu có thể, không sửa đổi danh sách Ngoại lệ. Và chính xác mục đích của hằng số DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
là gì?
Đặt 'System.Diagnostics.Debugger.Launch();' ngay trước khi ngoại lệ được ném. Điều đó sẽ khởi chạy trình gỡ lỗi để bạn có thể xem qua và xem vấn đề ở đâu. –
@Jack Hughes - nó thay đổi một cái gì đó trong hành vi trình gỡ lỗi, nhưng tôi đang cố gắng tìm hiểu, làm thế nào để gỡ lỗi một lỗi ở nơi không xác định. Không thể thêm 'Debugger.Launch' trước mỗi dòng trong chương trình ... –