2010-01-20 24 views
6

Tôi đang xem xét việc tạo tệp kết xuất cho một quy trình được quản lý.tạo tệp kết xuất cho ứng dụng được quản lý (.net) bằng windbg (hoặc mscordmp)

Tôi biết rằng mình có thể sử dụng windbg để tạo tệp kết xuất, nhưng tôi tự hỏi liệu chúng có phải là bất kỳ cờ đặc biệt nào mà tôi nên chuyển cho lệnh ".dump" hay không. một.

câu hỏi phụ có liên quan: Tôi đã nghe nói về một công cụ gọi là mscordmp.exe (nếu bạn google nó, bạn có thể tìm thấy đề cập đến nó trực tuyến). Là mscordmp vẫn có liên quan? Tôi không thể tìm thấy một điểm tải xuống cho nó ở bất cứ nơi nào, nhưng tôi nghĩ rằng nó có thể phù hợp hơn để bán phá giá bộ nhớ được quản lý hơn windbg.

+0

bản sao có thể có của [Làm thế nào để lấy một kết quả đổ vỡ tốt cho .NET?] (Http://stackoverflow.com/questions/24874027/how-do-i-take-a-good-crash-dump-for -mạng lưới) –

Trả lời

4

Bạn nên sử dụng/ma để tạo kết xuất bộ nhớ đầy đủ. Nếu không, sos sẽ phàn nàn rằng phân tích được quản lý sẽ rất hạn chế.

0

Không, không có bất kỳ cờ đặc biệt nào liên quan đến ứng dụng được quản lý, windbg chỉ tạo ra kết xuất bộ nhớ, đó là dữ liệu thô. Đó là mục đích của công cụ phân tích của bạn để biết liệu bãi chứa của bạn đã được tạo cho ứng dụng được quản lý hay không được quản lý.

Nếu nói về phân tích ứng dụng quản lý, bạn có thể có các bước sau:

  1. đính kèm windbg để xử lý chạy ứng dụng quản lý
  2. chạy .dump /ma <outputfilename.dmp>. Nó tạo tệp kết xuất, thao tác này có thể mất khoảng vài phút tùy thuộc vào bộ nhớ được tiêu thụ theo quy trình. Các đơn đặt hàng cờ /ma để tạo bộ nhớ đầy đủ của quá trình đính kèm với tất cả các tùy chọn được bật (nó không phải là toàn bộ hệ thống đổ, chỉ có quy trình đính kèm).
  3. tách khỏi quy trình, nó có thể tiếp tục chạy, trong khi bạn có thể tải tệp kết xuất vào windbg và phân tích nó.
  4. sos.dll là tiện ích mở rộng phổ biến windbg để phân tích các ứng dụng được quản lý.

p.s. Có thể có sự cố khi bật sos.dll với .load sos.dll, trong trường hợp đó bạn có thể thử .loadby sos mscorwks.

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