6

Tôi đang phát triển một thư viện lớp học. Thư viện sẽ được sử dụng bởi một chương trình khác, một .exe không có mã nguồn. Vị trí tệp thư viện được chuyển như một tham số cho exe này, ví dụ bằng cách chạy: prog.exe lib.dllVisual Studio: làm thế nào để gỡ lỗi một thư viện với một thực thi bên ngoài?

Tôi muốn gỡ lỗi thư viện bằng .exe này (sử dụng công cụ gỡ lỗi như điểm ngắt, v.v.) C# để làm điều này?

Tôi đã tìm thấy một cách có thể, đang tạo chương trình một dòng thực thi prog.exe lib.dll. Chắc chắn có một cách tốt hơn?

Trả lời

1

Nếu bạn đã có một chương trình bên ngoài mà sử dụng thư viện của bạn (mà sau đó cũng là một ứng dụng .net, tôi sẽ giả định), bạn có thể bắt đầu chương trình và đính kèm các trình gỡ lỗi để quá trình (gỡ lỗi ->Đính kèm để xử lý trong menu). Sau đó, bạn sẽ có thể thiết lập các điểm ngắt trong mã thư viện lớp của bạn và gỡ lỗi nó. Hãy chắc chắn rằng exe sử dụng một tệp dll và pdb được đồng bộ với mã của bạn (bản dựng mới nhất).

+1

Express không có các tính năng để gỡ lỗi các quá trình bên ngoài : http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx – Robert

2

Trong tùy chọn gỡ lỗi của dự án, hãy chọn "Bắt đầu chương trình bên ngoài" và nhập đường dẫn của exe. Khi bắt đầu gỡ lỗi VS sẽ bắt đầu exe, đính kèm với nó như là một trình gỡ lỗi.

Khi thư viện của bạn được tải bất kỳ điểm ngắt nào trên mã của bạn sẽ kích hoạt.

Một lưu ý: với một chương trình bên ngoài đảm bảo rằng nó đang tải dll bạn đang xây dựng, mọi thứ có thể là tốt nhất nếu nó đang tải một phiên bản khác không khớp với mã nguồn.

+0

"Chương trình bắt đầu bên ngoài" không xuất hiện trong tùy chọn gỡ lỗi của dự án. Tôi chỉ có các đối số dòng lệnh và thư mục làm việc. Tôi đã thử thêm đường dẫn chương trình vào đối số dòng lệnh, nó vẫn không cho phép gỡ lỗi. –

+0

Có phải vì tôi có ấn bản nhanh không? –

+0

@Louis: đó có thể là một vấn đề (không thể hiện, vì vậy không thể kiểm tra). – Richard

0
  1. Bạn có thể thử dùng windbg. với phần mở rộng sos, nó là mearly có thể cho tất cả mọi thứ bạn làm với Visual Studio.
  2. Nếu tất cả các bạn muốn là để gỡ lỗi thư viện, thì tại sao không thể bạn tải thư viện đó vào một exe mà bạn đã tạo và bước bên thư viện,
  3. phiên bản