Dependency Walker - Cách sử dụng - Hướng dẫn

Mục lục:

Dependency Walker - Cách sử dụng - Hướng dẫn
Dependency Walker - Cách sử dụng - Hướng dẫn

Video: Dependency Walker - Cách sử dụng - Hướng dẫn

Video: Dependency Walker - Cách sử dụng - Hướng dẫn
Video: Những lỗi “code ngu” mà có thể bạn hay mắc phải! - YouTube 2024, Tháng tư
Anonim

Đôi khi, các bước khắc phục sự cố thông thường sẽ không cắt. Chúng ta có thể cần phải đi xa hơ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 tôi làm điều đó. Dependency Walker là một công cụ để phân tích các phụ thuộc của một ứng dụng Windows - như các hàm, mô-đun, vv 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 một exe, dll, sys, v.v.

Dependency Walker

Dependency Walker có thể giúp bạn khắc phục các lỗi ứng dụng, lỗi đăng ký tệp, vi phạm truy cập bộ nhớ và lỗi trang không hợp lệ.

Phụ thuộc 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 bắt đầu với một lỗi trỏ đến một dll cụ thể. Trong trường hợp nà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 gây ra sự cố - và sau đó sửa nó.
Phụ thuộc 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 bắt đầu với một lỗi trỏ đến một dll cụ thể. Trong trường hợp nà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 gây ra sự cố - và sau đó sửa nó.

Chương trình không chỉ tải các mô-đun, nhưng nó cũng 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 dưới dạng phụ thuộc vào một mô-đun khác. Một triệu chứng của vấn đề này là “Thư viện liên kết động BAR.DLL không thể tìm thấy trong đường dẫn được chỉ định…”.
  • Phát hiện 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 vấn đề này là lỗi "Ứng dụng hoặc DLL BAR.EXE không phải là một hình ảnh Windows hợp lệ".
  • Phát hiện sự không khớp nhập / xuất. Xác minh rằng tất cả các chức năng được nhập khẩu bởi một mô-đun được thực sự xuất khẩu 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 được gắn cờ với một lỗi. Một triệu chứng của vấn đề này là “Điểm FOO thủ tục không thể được đặt trong thư viện liên kết động BAR.DLL”.
  • Phát hiện lỗi phụ thuộc vòng tròn. Đây là lỗi rất hiếm, nhưng có thể xảy ra với các chức năng được 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ố tải mô-đun được tạo cho một CPU khác.
  • Phát hiện các mâu thuẫn kiểm tra bằng cách xác minh tổng kiểm tra mô-đun để xem 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 làm nổi bật bất kỳ mô-đun nào không tải tại địa chỉ cơ sở ưa thích của chúng.
  • Phát hiện lỗi khởi tạo mô-đun bằng cách theo dõi cuộc gọi đến các điểm nhập mô-đun và tì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 nạp động và các lỗi khởi tạo mô-đun. Kiểm tra lỗi tương tự từ trên cũng áp dụng cho các mô-đun được nạp động.

Ví dụ, tôi đã giúp một khách hàng ngày hôm kia - cô ấy đang tải Internet Explorer, nhưng IE vẫn 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 như tắt tiện ích và thanh công cụ, đặt lại IE về cài đặt mặc định, nhưng vẫn tiếp tục bị lỗi. Điều này có nghĩa là một hoặc nhiều tệp cần thiết để Internet Explorer chạy đúng cách, đã tạo ra sự cố. Luôn luôn khó khắc phục các trường hợp như vậy nhưng với Dependency Walker, chúng ta có thể thấy có điều gì đó sai với một trong những tệp phụ thuộc hay không.

Vì vậy, tôi đã tải Internet Explorer trong Dependency Walker.

Tiếp theo, mở rộng từng cái một
Tiếp theo, mở rộng từng cái một
Sau đó, tôi đã đi qua mỗi mô-đun, để xem tôi có thể tìm thấy một cái gì đó đáng ngờ ở đó không. Tôi đã cuộn qua mô-đun và đủ may mắn để tìm ra vấn đề.
Sau đó, tôi đã đi qua mỗi mô-đun, để xem tôi có thể tìm thấy một cái 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 tin IEFRAME.dll bị thiếu. Vì vậy, tôi đã đi và thay thế các tập tin từ đĩa DVD cài đặt Windows. Điều đó giải quyết được vấn đề. Bây giờ Internet Explorer không còn bị rơi nữa.
Tôi thấy rằng tập tin IEFRAME.dll bị thiếu. Vì vậy, tôi đã đi và thay thế các tập tin từ đĩa DVD cài đặt Windows. Điều đó giải quyết được vấn đề. Bây giờ Internet Explorer không còn bị rơi 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

Để sử dụng Dependency Walker để điều tra lỗi, bạn có thể làm theo các bước sau:

  1. Bắt đầu phụ thuộc Walker
  2. Nhấp vào Mở trên menu Tệp để tải tệp sự cố
  3. Trong các Xem trình đơn, nhấp vào Bắt đầu hồ sơ. Hộp thoại Mô-đun Hồ sơ xuất hiện
  4. Nhập bất kỳ công tắc, đối số chương trình, tùy chọn khác mà bạn muốn và sau đó nhấp vào OK.

Dependency Walker sẽ tiêm dwinject.dll trước khi lỗi xảy ra và sẽ ghi lại các sự kiện diễn ra tại thời điểm xảy ra lỗi.

Phụ thuộc Walker tải xuống

Bạn có thể tải xuống Dependency Walker từ đây.

Đề xuất: