Tôi giả định rằng dll bên thứ 3 có nguồn gốc (Nếu không, chỉ cần sử dụng Reflector)
Trước khi sử dụng WinDbg để phân tích các bãi chứa, hãy thử sử dụng Process-Monitor (SysInternals, phần mềm miễn phí) để giám sát hoạt động của quá trình của bạn. nếu nó không thành công vì vấn đề liên quan đến hệ thống tệp, bạn có thể thấy chính xác nguyên nhân gây ra sự cố và chính xác nó đã cố làm gì trước khi không thành công.
Nếu Process-Monitor không đủ hơn bạn có thể thử và gỡ lỗi quy trình của bạn. nhưng để xem một số thông tin có ý nghĩa về dll của bên thứ 3 bạn sẽ cần nó là pdb's.
Sau khi đặt các biểu tượng gỡ lỗi chính xác, bạn có thể xem ngăn xếp cuộc gọi bằng cách sử dụng lệnh k hoặc một trong các biến thể đó (một lần nữa, tôi cho rằng bạn đang nói về mã gốc). nếu quá trình của bạn thực sự bị hỏng vì dll này hơn là kiểm tra các tham số mà bạn chuyển đến hàm của nó để đảm bảo rằng vấn đề không nằm ở bên cạnh bạn. Tôi đoán rằng tiếp tục xuống ngăn xếp cuộc gọi, bạn đạt được một số Win32 API - kiểm tra các thông số mà chức năng của dll là đi qua, cố gắng để xem nếu một cái gì đó "mùi". Nếu bạn có biểu tượng riêng của dll, bạn có thể kiểm tra các biến cục bộ của hàm đó (dv) có thể cung cấp cho bạn thêm một số thông tin.
Tôi hy vọng tôi đã cho bạn một điểm khởi đầu tốt.
Nguồn
2009-11-06 18:35:39
Được quản lý hay có nguồn gốc? Bạn có thể ném thêm một số chi tiết? – Naveen