2009-05-23 34 views
8

Tôi có một dự án vb.net mà đôi khi, khi chạy trong IDE, đột nhiên bị treo. Bình thường thì đây không phải là vấn đề. Chỉ cần nhấn 'tạm dừng', nhìn vào các chủ đề hiện đang chạy, và tìm thấy bế tắc (hoặc bất cứ điều gì khác).Điều gì có thể khiến Visual Studio 2008 bị treo khi đang gỡ lỗi?

Nhưng bây giờ tôi đang chạy vào một tình huống mà không chỉ chương trình treo, nhưng cố gắng tạm dừng nó gây ra phòng thu trực quan để treo. Để lấy lại quyền kiểm soát, tôi phải giết quá trình của chương trình đang được gỡ lỗi, lúc đó studio trực quan trở lại với cuộc sống và nói rằng nó không thể tạm dừng thực hiện. Điều này là bực bội, bởi vì giết chết quá trình có nghĩa là trạng thái chương trình bị mất (tất nhiên), vì vậy tôi không biết nơi treo .

Vì vậy, có bất kỳ nguyên nhân phổ biến nào cho hành vi này không? Tôi nên tìm gì?

+1

Bạn có tìm thấy giải pháp cho việc này không? Tôi đang mắc kẹt với chính xác cùng một tình huống ..... – Roey

Trả lời

-1

Tôi muốn kiểm tra mã của chương trình đang được gỡ lỗi, tôi nghĩ có thể có vòng lặp vô hạn hoặc điều kiện chủng tộc trong mã bạn đang cố gắng gỡ lỗi. Đây là trường hợp của tôi trong quá khứ, đặc biệt là trên một máy tính xách tay lõi đơn mà tôi từng có. Bạn có thể cung cấp bất kỳ thông tin nào về chương trình mà bạn cho là thực hiện khi bạn cố gắng tạm dừng không?

+0

Vâng, tôi đang sử dụng một mô hình chuyển tiếp thông điệp sắp xếp. Mỗi lớp 'phức tạp để khóa chính xác' có một hàng đợi gọi mà các lớp khác phải sử dụng để yêu cầu nó làm bất cứ điều gì. Chương trình là một máy chủ trò chơi nhỏ. Khi nó khóa, có nhiều ổ cắm xếp hàng dữ liệu nhận được vào một đối tượng xử lý, mà hàng đợi hiển thị một số thông tin đăng nhập vào giao diện người dùng và cũng ghi dữ liệu trở lại các ổ cắm. Đó là điều gây nhầm lẫn cho tôi: không nên chặn giao diện người dùng vì tôi cố gắng tránh giữ khóa. Nó không giống như tôi nhận được một vòng lặp hàng đợi vô hạn, bởi vì cpu của tôi không tăng đột biến. –

0

Kiểm tra hotfix và gói dịch vụ. Tôi đã nhìn thấy một lỗi liên quan đến lập trình .net và gỡ lỗi treo cứng.

3

Tìm một sửa chữa cụ thể cho một Studio vấn đề trực quan có thể được khôn lanh: (đôi khi es VS treo đối với tôi khi gỡ lỗi C++ ứng dụng 32-bit trên 64-bit os.): http://social.msdn.microsoft.com/Search/en-US/?query=visual%20studio%202008%20hang&ac=3

Thêm vào đó, không phải tất cả hotfixes từ Microsoft được phát hành trực tiếp cho công chúng. Một số chỉ được đưa ra cho khách hàng có hệ thống trưng bày một vấn đề cụ thể. Vì vậy, bạn phải liên hệ với Microsoft để có được sửa chữa. Họ làm điều này để hạn chế nhược điểm tiềm năng của việc phát hành một hotfix có thể phá vỡ một cái gì đó khác. Vì vậy, nếu thất bại, hãy gọi cho họ.

Dưới đây là một số điều khác mà tôi muốn làm khi Visual Studio bắt đầu hành động lên:

  1. Xóa breakpoint cũ và xem biến.
  2. Với studio trực quan không chạy, hãy xóa tệp intellisense (.ncb)
  3. Làm sạch giải pháp và sau đó thực hiện xây dựng lại tất cả mã.
6

nếu chương trình của bạn cài đặt móc toàn cục (liên lạc với ứng dụng) - đây có thể là trường hợp. Một cái móc cố gắng giao tiếp với ứng dụng của bạn (bị tạm dừng bởi trình gỡ lỗi) và bị khóa. Và trình gỡ lỗi không thể nhận được thông báo cửa sổ của nó: bế tắc cổ điển giữa trình gỡ lỗi nối (với dll móc) và một ứng dụng hooking.

+0

Địa ngục, tôi đã dành rất nhiều thời gian để tìm hiểu xem có gì sai trong khi gỡ lỗi một ứng dụng (bằng cách sử dụng SetWindowsHookEx). Toàn bộ hệ thống treo cho hai hoặc hai bước gỡ lỗi. Vô hiệu hóa các cuộc gọi móc làm cho các trick (ít bất lợi: móc không thể được dự kiến ​​sẽ làm việc trong khi gỡ lỗi). Cảm ơn lời khuyên này! – sharpener

+0

Điều đó sẽ giải thích nó ... Tôi đã làm việc với một ứng dụng COM sử dụng WPF cho một bổ trợ Excel. Trình gỡ lỗi có thể mất vài phút để đạt đến điểm ngắt, hiển thị một ngoại lệ được ném hoặc thậm chí là ngừng gỡ lỗi. Khá bực bội. –

0

Tôi vừa có một vấn đề rất giống nhau (VS không thực hiện ngắt), sử dụng Debug -> Xóa tất cả các điểm ngắt đã giải quyết được sự cố.

Các vấn đề liên quan