Câu hỏi Visual Studio 2015 F5 không đính kèm với các proces


Đây là những gì tôi đang làm:

  1. Đặt dự án C ++ làm dự án khởi động
  2. Xây dựng
  3. Đặt nhiều điểm ngắt
  4. nhấn F5

dự án chính xác được bắt đầu, các điểm ngắt được hiển thị là hợp lệ và được tải (vòng tròn màu đỏ đầy), studio trực quan nói "Đang chạy" trong thanh tiêu đề, thanh công cụ gỡ lỗi được kích hoạt nhưng chương trình không dừng lại ở các điểm ngắt.

Nếu tôi sử dụng chức năng đính kèm để xử lý, hãy chọn "Mã được quản lý (v4.6, v4.5, v4.0), Mã gốc", chương trình sẽ dừng lại trên các điểm ngắt và tôi có thể gỡ lỗi chính xác.

any1 có bất kỳ mẹo nào để khắc phục sự cố hoặc giải quyết vấn đề này không?

như là một lưu ý phụ (tôi không biết nếu các vấn đề có liên quan với nhau), phím F11 (bước vào) của tôi cũng không hoạt động, tôi đã thử thiết lập lại các thiết lập phòng thu trực quan nhưng nó không khắc phục được vấn đề.

[CHỈNH SỬA] Nếu tôi cần phải gỡ lỗi mã trước khi tôi nhận được tương tác người dùng đã sẵn sàng tôi cần phải thiết lập một cái gì đó để chặn chương trình cho đến khi tôi có thể đính kèm vào quá trình này.


0
2017-12-08 10:33


gốc


@duDE khi tôi nhấn nút F5 trên studio trực quan, nó không đính kèm studio trực quan vào ứng dụng - Robson
Nhưng F5 sẽ không làm điều đó, nó có nghĩa là "Chạy"! Cắt ngắn để đính kèm với một quá trình là "Ctrl + Alt + P" hoặc tôi sai? - duDE
@duDE mặc định cho F5 là Bắt đầu gỡ lỗi, mặt khác CTRL + F5 sẽ làm Bắt đầu mà không gỡ lỗi. - Robson
Vì vậy, trước tiên bạn cần đính kèm để xử lý bằng "Ctrl + Alt + P" và sau đó bắt đầu gỡ lỗi bằng cách nhấp vào "F5". Và vấn đề với nó là gì? - duDE
@duDE nếu tôi cần phải gỡ lỗi mã trước khi tôi nhận được tương tác người dùng đã sẵn sàng tôi cần phải thiết lập một cái gì đó để chặn chương trình cho đến khi tôi có thể đính kèm vào quá trình - Robson


Các câu trả lời:


Bây giờ tôi hy vọng sẽ hiểu, bạn cần gì.

Hãy xem phương pháp Phương thức Debugger.Launch ():

Khởi chạy và đính kèm một trình gỡ rối vào tiến trình.

Và bạn sẽ cần phương pháp Phương thức Debugger.Break ():

Tín hiệu một điểm ngắt cho trình gỡ rối đính kèm.

Vì vậy, bạn có thể sử dụng nó trong mã nguồn của bạn trực tiếp sau khi nhập điểm như thế này:

#if DEBUG
                Debugger.Launch();
                Debugger.Break();

                MainForm.Show();
#else
              // nothing to do
#endif

Chương trình của bạn sẽ dừng lại ở thời điểm này và bạn có thể gỡ lỗi!


2
2017-12-13 13:00



cảm ơn bạn! nhưng đây không phải là những gì tôi đang tìm kiếm, tôi muốn thực sự sửa chữa tính năng F5. - Robson


cuối cùng cố định nó làm như sau (Tôi không biết nếu đây là cách tốt nhất, nhưng nó đã làm việc cho tôi)

Chuyển đến Visual Studio Debug Options (một trong hai cách sau sẽ mở cùng một trang trong hộp thoại tùy chọn)

  • Gỡ lỗi> Tùy chọn
  • Công cụ> Tùy chọn> Gỡ lỗi> chung

Sau đó, trong trang này hãy chắc chắn để vô hiệu hóa:

  • Chỉ bật mã của tôi

Sau đó, hãy chắc chắn để kích hoạt

  • Sử dụng Chế độ tương thích được quản lý
  • Sử dụng Chế độ tương thích gốc

Bây giờ hãy vào hộp thoại Đính kèm vào tiến trình:

  1. Gỡ lỗi> Đính kèm quy trình> Đính kèm vào> Chọn
  2. Bây giờ hãy chọn "Mã được quản lý (v4.6, v4.5, v4.0)", "Mã gốc" và "Mã tương thích được quản lý"

Sau đó, cho mỗi dự án mà bạn muốn gỡ lỗi:

  1. Nhấp chuột phải> Thuộc tính> Gỡ lỗi> Loại trình gỡ lỗi
  2. Đặt giá trị thành: "Hỗn hợp"

Bây giờ nhấn F5 và tất cả các điểm ngắt được quản lý và không được quản lý phải hoạt động !!!


0
2018-01-16 14:13