2012-06-26 123 views
9

Các tệp PDB bên trong tệp dll .NET là gì và nó hoạt động như thế nào? Thông thường, mọi người xóa tệp này trong khi triển khai và chỉ giữ tệp dll trong thư mục lib nhưng dường như không có gì xảy ra và mọi thứ hoạt động tốt ...Tệp PDB là gì?

Vì vậy, tệp PDB là gì?

+1

Xem [Quản lý ký hiệu và mã nguồn] (http://msdn.microsoft.com/en-us/library/ms241613) để thảo luận về tệp cơ sở dữ liệu chương trình . –

Trả lời

12

Tệp cơ sở dữ liệu chương trình không liên quan gì đến liên kết gia tăng và Project State! Các tệp PDB được sử dụng để ánh xạ EXE với SOURCES. Chúng được sử dụng cho các tệp nhị phân gỡ lỗi và phát hành. Here an article giải thích liên kết ràng buộc này giữa Hình ảnh thực thi và tệp PDB của nó

+0

Bài viết này (http://www.codeproject.com/Articles/37883/ Symbols-File-Locator) cũng giải quyết vấn đề này – mox

+0

Vì vậy, nếu tôi có một tập tin cấu hình trên tầng giữa của tôi với bindings, thiết bị đầu cuối, bảo mật, vv ... sau đó nó tham khảo pdb? –

0

Trong .NET, nó chủ yếu chỉ giữ thông tin biểu tượng cho các biến cục bộ (và thông tin phạm vi quá IIRC).

+0

Bạn có thể xây dựng trên các biểu tượng không? –

7

Tệp PDB lưu trữ thông tin cho phép bạn gỡ lỗi ứng dụng.

Lý do các tệp thường không được triển khai là thường không cần gửi chúng. Nếu bạn muốn gỡ lỗi ứng dụng, bạn luôn có thể tải chúng từ một thư mục, chia sẻ mạng hoặc máy chủ biểu tượng.

+0

+1 phiếu bầu. Cảm ơn câu trả lời của bạn nhưng tôi không thể đánh dấu tất cả câu trả lời là chính xác. –

1

Một cơ sở dữ liệu chương trình (PDB) tập tin chứa gỡ lỗi và thông tin trạng thái dự án cho phép gia tăng liên kết của một cấu hình gỡ lỗi chương trình của bạn. Một tệp PDB được tạo ra khi bạn biên dịch một chương trình C/C++ với/ZI hoặc/Zi hoặc một chương trình Visual Basic/C#/JScript .NET với/debug. Mỗi lần tạo tệp OBJ, trình biên dịch C/C++ hợp nhất thông tin gỡ lỗi vào VCx0.PBD. Thông tin được chèn vào bao gồm thông tin kiểu nhưng không bao gồm thông tin biểu tượng như định nghĩa hàm. Vì vậy, ngay cả khi mọi tệp nguồn bao gồm các tệp tiêu đề phổ biến như, các typedefs từ các tiêu đề đó chỉ được lưu trữ một lần, thay vì nằm trong mọi tệp OBJ.

+2

Điều này không chính xác! PDB không liên quan gì đến thông tin trạng thái dự án và liên kết gia tăng. PDB chứa các ký hiệu như định nghĩa. Xem thêm chi tiết bên dưới từ mox. – mox

+1

Có vẻ như một bản sao + dán https://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx – michaelmsm89