2012-01-27 49 views
7

Tôi đã chỉ định biểu tượng (pdb) tệp bên trong 2010 để được tải chính xác nhưng tôi gặp lỗi No source availableBrowse to Find Source Code bị chuyển sang màu xám. Có ai biết làm thế nào tôi có thể chỉ định thư mục mã nguồn hoặc nhìn bên trong pdb để tìm ra nơi nó được?visual studio 2010 C++ biểu tượng gỡ lỗi được tải nhưng không thể tìm thấy mã nguồn

EDIT: DLL của tôi đang được gọi bởi một chương trình bên ngoài. Lỗi xảy ra bên trong DLL của tôi vì vậy tôi có mã nguồn. Khi lỗi xảy ra, tôi nhấp vào Gỡ lỗi, biểu tượng pdb được tải nhưng không phải là nguồn.

+1

[PDB] (http://msdn.microsoft.com/en-us/library/yd4f8bd1 (v = vs.71) .aspx) tập tin chứa gỡ lỗi và dự án thông tin cho file .exe hoặc .obj tệp. Tôi nghi ngờ bạn có thể "nhìn bên trong pdb để tìm ra nơi thư mục mã nguồn là". – LihO

+0

Tôi có thể hỏi bạn những gì bạn đang thực sự cố gắng làm không? – LihO

+0

@LihO xin lỗi nếu không rõ - tôi đã cập nhật câu hỏi. cảm ơn. –

Trả lời

4

Nếu bạn di chuyển DLL từ thư mục xây dựng của nó thì trình gỡ lỗi không thể tìm thấy các tệp mã nguồn chính nó. Điều đầu tiên bạn có thể làm là nhấn chuột phải vào nút gốc Solution trong cửa sổ Solution Explorer, Properties, Common Properties, Debug Source Files và thêm đường dẫn đến thư mục nguồn dự án DLL.

Cách thứ hai: trình gỡ lỗi nhắc bạn lần đầu tiên cần tìm tệp mã nguồn. Nếu bạn đã từng nhấp vào Hủy bỏ trên hộp thoại đó, điều khá phổ biến để làm khi bạn không biết những gì nó thực sự yêu cầu, sau đó IDE nhớ lựa chọn của bạn và sẽ không nhắc bạn một lần nữa. Khắc phục điều đó bằng cách xóa hoặc đổi tên tệp .suo ẩn trong thư mục giải pháp.

+0

Tôi gặp vấn đề tương tự. Tôi đang gỡ lỗi một ứng dụng và không thể bước vào một hàm được định nghĩa trong một mô-đun khác (DLL). * Cửa sổ mô-đun * báo cáo rằng các biểu tượng đã được tải cho DLL đó, nhưng IDE không bước vào hàm. Tôi đã quản lý để bước vào trong * Disassembly * chế độ, nhưng sau đó tôi không thể chuyển về nguồn (tùy chọn * Go To Source Code * là màu xám ra). Tôi đã không di chuyển mã nguồn vì nó đã được biên dịch. Tôi đã thử xóa .suo tập tin và thiết lập Debug Source Files - không giúp đỡ. Bất kỳ ý tưởng? –

+0

Tôi gặp sự cố tương tự với tệp thi hành nhưng chưa được di chuyển. Cửa sổ Output cho thấy rằng các biểu tượng được nạp nhưng nó nói nguồn không có sẵn. Nó có các tùy chọn để duyệt tìm nguồn hoặc để tháo gỡ. Tùy chọn mã nguồn chuyển sang màu xám. Nếu tôi mở thủ công tệp nguồn và cố gắng đặt điểm ngắt, nó sẽ hiển thị một vòng tròn rỗng để cho biết rằng mô-đun không được tải. Chỉ xảy ra với các giải pháp nhất định. Rất lạ. –

1

Từ những gì tôi hiểu bạn chỉ muốn gỡ lỗi chương trình của mình, rằng bạn có dạng DLL. Vấn đề là chương trình bên ngoài sử dụng DLL này và bạn bấm vào "Debug" từ cửa sổ bật lên sau lỗi xảy ra. Tôi giả sử bạn muốn mở dự án của bạn trong Visual Studio và sau đó nhấn Ctrl + Alt + P để mở cửa sổ "Attach to Process", nơi bạn nên chọn quá trình sử dụng DLL này (iexplore.exe hoặc bất kỳ thứ gì bạn đang làm việc với) để bạn có thể chuyển đổi một số điểm ngắt ở đó và xem điều gì đang xảy ra trước khi xảy ra lỗi.

1

Hack bởi @Hans Passant hoạt động, nhưng thực sự có một cách chính thức để đạt được điều này: nhấp chuột phải vào giải pháp của bạn tại trình khám phá giải pháp, chọn thuộc tính/Tệp thuộc tính chung/Tệp nguồn gỡ lỗi. Bạn sẽ có thể xem và chỉnh sửa danh sách tất cả các tệp mà trước đây bạn đã chọn 'hủy' khi được nhắc cho đường dẫn nguồn.

enter image description here

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