2010-07-16 36 views
7

OK, tôi nhận ra rằng các tệp PDB là các tệp biểu tượng cho các hội đồng .NET. Nhưng tôi chưa bao giờ thực sự nhìn vào cách sử dụng mở rộng của họ.Các tệp pdb thực sự làm gì?

Nếu tôi kết nối với trình gỡ lỗi từ xa từ một studio trực quan có mã đang chạy, tôi có thực sự cần các tệp PDB trên máy từ xa không?

Tôi có nhận được thông tin ngoại lệ chưa được xử lý mà không có chúng trên máy nơi mã đang chạy mà không có tệp PDB và trình gỡ lỗi có mã nguồn được kết nối không?

Họ còn làm gì nữa?

+0

Tài nguyên cổ điển nằm trên blog của [John Robbins] (http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must -know.aspx). –

+0

Rất hữu ích! Cảm ơn! – Matt

Trả lời

2

Tôi không nhớ lại nếu PDB được yêu cầu trên máy từ xa trong tình huống gỡ lỗi từ xa, nhưng trong số những thứ khác, PDB chứa số dòng mã nguồn để biên dịch mã bản đồ bù đắp. Bạn không thể bước qua mã nguồn chỉ bằng cách sử dụng hội đồng quản lý một mình.

Vì các hội đồng được quản lý lưu giữ nhiều tên biểu tượng văn bản từ mã nguồn ban đầu, bạn có thể poke xung quanh trong tệp thực thi được quản lý với trình gỡ rối không có PDB, nhưng bạn sẽ chỉ có thể thấy tên loại và biểu tượng công khai - bạn sẽ không thấy tên cho các ký hiệu cục bộ, bởi vì chúng không cần thiết để liên kết với assembly .NET hoặc JIT IL tới mã gốc khi chạy.

Thông báo ngoại lệ chưa được xử lý không liên quan đến việc PDB có hiện diện hay không. Nếu một trình gỡ lỗi được gắn vào quá trình, từ xa hay không, trình gỡ rối sẽ nhận được vết nứt đầu tiên ở ngoại lệ.

1

Không cần pdb trên máy từ xa. Bản thân trình gỡ lỗi phải có khả năng tìm thấy nó, không phải là tác nhân từ xa.

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