2013-05-28 34 views
7

Tôi vẫn là một người mới tương đối với C++, và tôi đã gặp phải vấn đề với DLL của bên thứ ba mà tôi liên kết tĩnh với từ C++ DLL gốc của tôi. Tôi đang sử dụng Visual Studio 2012 để gỡ lỗi DLL của tôi.Điều gì có thể WinDbg cho tôi biết rằng Visual Studio không thể?

(FWIW, các DLL của bên thứ ba là Sybase mở Client, và tôi gỡ lỗi DLL của tôi qua một C# thực thi tôi đã viết, mà tải C của tôi ++ DLL động.)

Tôi đã sử dụng Visual Studio để bước vào việc tháo gỡ và nhìn vào sổ đăng ký và sử dụng bộ nhớ cho DLL của bên thứ ba. Visual Studio đã cho tôi rất nhiều thông tin tốt về những gì đang xảy ra trong quá trình của tôi nhưng tôi cảm thấy như có thể có nhiều hơn những gì tôi thấy, và có lẽ một cách dễ dàng hơn hoặc hiệu quả hơn để đạt được nó.

Tôi đã đọc rằng WinDbg là một công cụ rất mạnh mẽ, nhưng phải mất nhiều thời gian và công sức để học cách sử dụng nó tốt. Câu hỏi của tôi là: liệu nó có đáng để học cách sử dụng WinDbg hay các công cụ gỡ lỗi trong Visual Studio cung cấp cho tôi khá nhiều thông tin tương tự?

+6

Hãy thử đi bộ Windows heap trong trình gỡ rối Visual Studio đôi khi. Sau đó, thực sự * thành công * khi làm như vậy với WinDbg. – WhozCraig

+1

Kịch bản lệnh WinDbg dưới dạng arcane vì cú pháp của nó có thể mạnh hơn so với những gì VS cho phép, mặc dù có lẽ với một addin hoặc macro, bạn có thể nhận được chức năng tương tự trong VS. – 0xC0000022L

+5

Tìm kiếm rò rỉ bộ nhớ, phân tích sự cố tự động, xử lý tìm kiếm rò rỉ, tìm kiếm bộ nhớ, khả năng đổ ngăn xếp cuộc gọi của tất cả các chủ đề một cách dễ dàng, thiết lập/bỏ đặt điểm ngắt khi các điểm ngắt được nhấn, gỡ lỗi trên các máy không cài đặt VS, .net debugging, Về cơ bản những gì bạn nhận được là một trình gỡ lỗi nhẹ, không có BS có rất nhiều công cụ tự động hóa các nhiệm vụ đau đớn hoặc khó hoặc không thể sử dụng VS, sự chứng thực cao nhất bạn sẽ thấy là sử dụng MS điều này để gỡ lỗi Windows, dốc đường cong học tập nhưng cuối cùng rất bổ ích – EdChum

Trả lời

3

Câu hỏi của tôi là: nó có giá trị các nỗ lực để học cách sử dụng WinDbg, hoặc sẽ các công cụ gỡ lỗi trong Visual Studio cho tôi khá nhiều thông tin tương tự ?

Điều đó thực sự phụ thuộc vào loại chương trình bạn đang làm.

WinDBG không cho phép bạn xem xét cấu trúc bên trong hệ điều hành. Nó cho phép bạn xem xét các luồng và các quy trình trong toàn bộ hệ thống và mã gỡ rối chạy trong hạt nhân hệ điều hành (chẳng hạn như các trình điều khiển). Có khả năng đáng kể để viết kịch bản để khai thác một số thông tin nhất định, hoặc, tôi tin rằng, thậm chí viết các plugin chạy trong WinDBG để thực hiện các tác vụ nhất định.

Hầu hết điều này là khó hoặc không thể với trình gỡ lỗi loại VS.

Nó gần như không thể đối với tôi, hoặc bất cứ ai khác ở đây, để cho bạn biết liệu bạn nên học cách sử dụng WinDBG. Nó chắc chắn sẽ làm bạn không có hại để biết, nhưng nó hoàn toàn có thể đi một thời gian dài trong cuộc sống của bạn mà không cần nó.

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