Cách sử dụng Dependency Walker trên hệ thống Windows
Đôi khi các bước khắc phục sự cố thông thường sẽ không cắt được. Chúng tôi có thể cần phải vượt lên trên và hơn thế nữa – giống như xử lý sự cố pháp y. Hôm nay tôi sẽ viết về một công cụ sẽ giúp chúng ta làm điều đó. Dependency Walker là một công cụ để phân tích các phụ thuộc của ứng dụng Windows – như các hàm, mô-đun, v.v. Nó xây dựng một cây phân cấp của tất cả các mô-đun phụ thuộc của exe, dll, sys, v.v.
Dependency Walker Troubleshooting Tool
Dependency Walker là một tiện ích miễn phí quét bất kỳ mô-đun Windows 32-bit hoặc 64-bit nào (exe, dll, ocx, sys, v.v.) và xây dựng sơ đồ cây phân cấp của tất cả các mô-đun phụ thuộc. Nó có thể giúp bạn khắc phục các lỗi ứng dụng, lỗi đăng ký tệp, lỗi truy cập bộ nhớ và lỗi trang không hợp lệ.
Dependency Walker trở nên đặc biệt hữu ích nếu một chương trình cụ thể của bạn không tải hoặc một dịch vụ không khởi động được với lỗi trỏ đến một dll cụ thể. Trong những trường hợp như vậy, bạn có thể tải chương trình hoặc dll đó trong Dependency Walker, để xem tệp nào không tải được hoặc mô-đun nào đang gây ra sự cố – và sau đó khắc phục nó.
Chương trình không chỉ tải các mô-đun mà còn quét các lỗi tiềm ẩn. Theo tệp Trợ giúp, nó thực hiện các công việc sau:
- Phát hiện các tệp bị thiếu. Đây là những tệp được yêu cầu như một phần phụ thuộc vào một mô-đun khác. Một triệu chứng của sự cố này là lỗi “The dynamic link library BAR.DLL could not be found in the specified path…”.
- Phát hiện các tệp không hợp lệ. Điều này bao gồm các tệp không tuân thủ Win32 hoặc Win64 và các tệp bị hỏng. Một triệu chứng của sự cố này là lỗi “The application or DLL BAR.EXE is not a valid Windows image”.
- Phát hiện nhập/xuất không khớp. Xác minh rằng tất cả các chức năng được nhập bởi một mô-đun thực sự được xuất từ các mô-đun phụ thuộc. Tất cả các chức năng nhập chưa được giải quyết đều bị gắn cờ có lỗi. Một dấu hiệu của sự cố này là lỗi “The procedure entry point FOO could not be located in the dynamic link library BAR.DLL”.
- Phát hiện lỗi phụ thuộc vòng tròn. Đây là một lỗi rất hiếm nhưng có thể xảy ra với các chức năng chuyển tiếp.
- Phát hiện các loại mô-đun CPU không khớp. Điều này xảy ra nếu một mô-đun được xây dựng cho một CPU cố gắng tải một mô-đun được xây dựng cho một CPU khác.
- Phát hiện sự mâu thuẫn của tổng kiểm tra bằng cách xác minh tổng kiểm tra của mô-đun để xem liệu có bất kỳ mô-đun nào đã được sửa đổi sau khi chúng được xây dựng hay không.
- Phát hiện va chạm mô-đun bằng cách đánh dấu bất kỳ mô-đun nào không tải được ở địa chỉ cơ sở ưa thích của chúng.
- Phát hiện các lỗi khởi tạo mô-đun bằng cách theo dõi các lệnh gọi đến các điểm nhập mô-đun và tìm kiếm lỗi.
- Dependency Walker cũng có thể thực hiện một hồ sơ thời gian chạy của ứng dụng của bạn để phát hiện các mô-đun được tải động và các lỗi khởi tạo mô-đun. Việc kiểm tra lỗi tương tự ở trên cũng áp dụng cho các mô-đun được tải động.
Ví dụ: tôi đang giúp một khách hàng vào ngày hôm trước – cô ấy đang tải Internet Explorer, nhưng IE tiếp tục gặp sự cố, mà không có bất kỳ lỗi cụ thể nào. Chúng tôi đã thực hiện hầu hết các khắc phục sự cố cơ bản giống tắt tiện ích bổ sung và các thanh công cụ, đặt lại IE về cài đặt mặc định, v.v. Nhưng vẫn bị treo. Điều này có nghĩa là một hoặc nhiều tệp được yêu cầu để Internet Explorer chạy bình thường đã tạo ra sự cố. Luôn luôn khó khăn để khắc phục những trường hợp như vậy nhưng với Dependency Walker, chúng tôi có thể xem liệu có điều gì sai với một trong các tệp phụ thuộc hay không.
Vì vậy, tôi đã tải Internet Explorer trong Dependency Walker.
Tiếp theo, tôi mở rộng danh sách từng cái một
- Cách mở lại phiên làm việc cuối cùng trên Chrome/ Edge của Windows 10
- Cách đặt lại ‘Reset’ Windows Update về mặc định trong Windows 10
Sau đó, tôi xem qua từng mô-đun, để xem liệu tôi có thể tìm thấy điều gì đáng ngờ ở đó không. Tôi đã cuộn qua mô-đun và đủ may mắn để tìm ra vấn đề.
Tôi thấy rằng tệp IEFRAME.dll bị thiếu. Vì vậy, tôi đã đi và thay thế tệp từ DVD Cài đặt Windows. Điều đó đã giải quyết vấn đề. Giờ đây, Internet Explorer không còn bị treo nữa.
Tôi hy vọng điều này sẽ cho bạn biết việc sử dụng công cụ này dễ dàng như thế nào để tìm ra các lỗi phụ thuộc có thể xảy ra.
Cách sử dụng Dependency Walker trên hệ thống Windows
Để sử dụng Dependency Walker để điều tra lỗi, bạn có thể làm theo các bước sau:
- Bắt đầu Dependency Walker
- Nhấp vào Open trên menu Tệp để tải tệp sự cố
- Trong menu View, bấm Start profiling. Hộp thoại Mô-đun hồ sơ xuất hiện
- Nhập bất kỳ công tắc, đối số chương trình, các tùy chọn khác mà bạn muốn, sau đó bấm OK.
Dependency Walker sẽ tiêm dwinject.dll trước khi lỗi xảy ra và sẽ ghi nhật ký các sự kiện diễn ra tại thời điểm xảy ra lỗi.
Tải xuống Dependency Walker
Bạn có thể tải xuống Dependency Walker từ đây.
- Thẻ: Phần mềm miễn phí, Troubleshoot