2012-04-10 23 views
8

tôi muốn lặp qua các biến trong bộ nhớ trong quá trình của mình (được nạp thông qua plugin) và tìm các phiên bản của một loại cụ thể.Kỹ thuật để lặp qua các biến và tìm các trường hợp của một loại cụ thể

Trước đây tôi có thể tìm thấy các loại cụ thể (hoặc tất cả các loại trong bộ nhớ). Tôi có thể tạo ra các thể loại của các loại, tôi có thể nhận được trường hợp đã được chứa như các lĩnh vực trong một loại khác nhau, nhưng tôi không biết anyway chỉ để "tìm kiếm" cho các trường hợp của một loại hình cụ thể.

+1

Bạn có thể tự động hóa Windbg bằng cách phân tích cú pháp đầu ra của lệnh DumpHeap và sau đó truyền con trỏ tới các loại được quản lý bên trong ứng dụng của bạn. –

+0

Khi câu trả lời cho biết bạn cần đính kèm trình gỡ rối vào ứng dụng của bạn. Nếu đây không phải là một lựa chọn bạn cần phải giải quyết vấn đề thêm một chút để cung cấp cho bạn một giải pháp dễ dàng hơn (ví dụ yêu cầu các đối tượng đăng ký trong một bộ sưu tập trung tâm, ...) –

+0

Nếu gắn vào quá trình không phải là một lựa chọn, Các kỹ thuật windbg/sos cũng sẽ làm việc ra một vùng nhớ bộ nhớ quá trình. Chỉ cần đảm bảo bạn có được kiến ​​trúc đúng http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64- machine.aspx –

Trả lời

2

Một cách là sử dụng windbg và sos. Bạn có thể! Dumpheap với một lá cờ -type.

+0

Bài viết này, trong khi nhắm mục tiêu phát hiện rò rỉ, thể hiện tất cả các lệnh sos bạn cần. Tác giả đang sử dụng cdb. Bạn có thể sử dụng hoặc cdb hoặc windbg, không thực sự quan trọng miễn là bạn tải sos. http://www.simple-talk.com/dotnet/.net-framework/investigating-.net-memory-management-and-garbage-collection/ –

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