2014-05-21 12 views
6

Sau khi thực hiện nhiều tìm kiếm, tôi vẫn không thể nhận được giải pháp cho câu hỏi.Cách lấy tệp PDB cho mscorlib.ni.lib (.Net Framework 3.5)

Tôi có tệp mdmp. Ngăn xếp cuộc gọi cho thấy nó đang sử dụng mscorlib.ni.dll. Vì vậy, để có được thông tin về hàm, tôi cần lấy tệp pdb của nó.

Phiên bản của mscorlib.ni.dll là 2.0.50727.3655. Tôi tin rằng nó đến từ .Net Framework 3.5.

Vì mscorlib.ni.dll là dll được tối ưu hóa gốc được tạo bởi ngen.exe, vì vậy tôi cần sử dụng ngen.exe createpdb để tạo pdf cho dll này.

ngen.exe createpdb "C:\Windows\assembly\...\mscorlib.ni.dll" "C:\SymbolCache" 

Dưới đây là kết quả:

  1. tôi không thể tìm ngen.exe trong thư mục "C: \ Windows \ Microsoft.NET \ Framework64 \ v3.5"
  2. tôi có thể tìm ngen.exe trong thư mục "C: \ Windows \ Microsoft.NET \ Framework64 \ v2", nhưng nó không có tùy chọn createpdb.
  3. Tôi có thể tìm thấy ngen.exe trong thư mục "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319" và nó hỗ trợ tùy chọn createpdb, nhưng nó báo cáo lỗi.

Microsoft (R) CLR Native ảnh Generator - Phiên bản 4.0.30319.18408 Bản quyền (c) Tập đoàn Microsoft. Đã đăng ký Bản quyền. Không tìm thấy tiêu đề không hợp lệ trong hình ảnh gốc 'C: \ Windows \ assembly \ NativeImages_v2.0.507 7_64 \ mscorlib \ 5cd1c2848ff40eb0a8c149706ee394fa \ mscorlib.ni.dll'. lỗi Unspecified (ngoại lệ từ HRESULT: 0x80004005 (E_FAIL))

Vì vậy, tôi không có ý tưởng làm thế nào để có được pdb cho mscorlib.ni.dll này của Net Framework 3.5.

Bất kỳ ý tưởng nào?

+0

không chắc chắn nếu nó quan trọng, nhưng bạn chạy ngen ver Phiên bản 4.0.30319.18408 trên một cụm từ .net 2.0.507 (dựa trên C: \ Windows \ assembly \ NativeImages_v2.0.507). cố gắng sử dụng ngen của cùng một phiên bản. – Califf

+0

Phiên bản tương tự "ngen" 2.050727 không hỗ trợ đối số "createpdb". – Buzz

Trả lời

6

Tôi đã có thông báo lỗi tương tự cho đến khi tôi nhận ra tôi gọi ngen.exe từ thư mục Khung . Rõ ràng, mscorlib.ni.dll không phải là 64-bit.

Vì vậy, tôi đã sử dụng phiên bản 32-bit của ngen.exe từ thư mục C:\Windows\Microsoft.NET\Framework\v4.0.30319 và nó đã sản xuất thành công PDB.

Tuy nhiên, đường dẫn đến mscorlib.ni.dll của bạn bao gồm ...\NativeImages_v2.0.507 7_64\..., cho biết đó là 64 bit, vì vậy đây có thể là một vấn đề khác.

1

Giống như câu trả lời của Monsignor, đối với tôi giải pháp là khớp với bit-bit (64 bit hoặc 32 bit). Minidump của tôi là 64-bit vì vậy tôi đã phải đi đến thư mục Framework64 và chạy ngen từ đó và nó đã được sử dụng tốt. Tôi ban đầu có lỗi ngen giống như mô tả ở đây (Tiêu đề không hợp lệ được tìm thấy trong hình ảnh gốc ... E_FAIL) vì tôi đã ở trong thư mục Khung thay vì thư mục Framework64 (facepalm).

Tuy nhiên, mặc dù lệnh ngen hoạt động ... pdb được tạo cuối cùng vẫn không được chấp nhận bởi VS 2013 dưới dạng tệp biểu tượng phù hợp, trong trường hợp của tôi.

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