My C# приложение потребляет слишком много памяти рабочего набора, и я хочу видеть объекты, которые есть в памяти заданного набора. Я сбросил процесс и создал файл дампа в качестве ответа на этот вопрос , How do I use a dump file to diagnose a memory leak? Но я не могу отлаживать файл из Windbg, поскольку он говорит «не может загрузить clr», когда я набираю команду «.loadby sos clr». Также команды «! Dumpheap -stat» и «! Threads» также говорят, что «Ничего не обнаружено». Пожалуйста, посоветуйте мне способ отладки этого сбрасываемого файла и поиска объектов. Предоставьте решение, кроме использования VS2013 Ultimate.Отладка кода дампа процесса
ответ
Я рекомендую вам использовать Psscor2 или Psscor4 расширения (в зависимости от используемой вами версии .NET заявление). После настройки среды отладки (установка WinDbg и копирования в его папку Psscor файлов) файл дамп загрузки и загрузить соответствующую версию Psscor:
.load psscor4
Затем выполнить команду для загрузки символов с сервера Microsoft (в случае необходимости), убедитесь, что у вас есть подключение к интернету:
!symfix
И теперь вы должны иметь доступ к множеству очень интересных команд (обратиться за помощью к списку их!). Чтобы посмотреть информацию об использовании памяти на использование типа:
!dumpheap -stat
Чтобы увидеть общее использование памяти (IU средства, которые также будут включены некорневых объекты):
!heapstat -iu
Вы также можете использовать VMMap инструмент, чтобы увидеть общее использование памяти процесса (а не дампа памяти), чтобы увидеть, сколько из него потребляется управляемой кучей.
Telerik JustTrace - это приложение, которое дает мне объекты в памяти рабочего набора. Те, кто не может это сделать с помощью Windbg, могут использовать это программное обеспечение – user3164883
Какова ваша целевая структура?
.loadby sos clr
являются .net 4 команды, для отладки предыдущей версии 4 попытаться использовать
.loadby sos mscorwks
В настоящее время я использую .net 4.5. Но, как вы сказали, «.loadby sos mscorwks», похоже, работает. Почему не работает «.loadby sos clr» .net 4.5? Пожалуйста, совет – user3164883
Попробуйте выполнить следующую команду перед загрузкой dll clr: «.cordll -ve -u -l» Это даст вам подробный результат, почему он не может загрузить определенную DLL – Dominik
. Он говорит: «Состояние CLR DLL: нет попыток загрузки». Что это означает? – user3164883
Вы должны загрузить SOS.dll командой».load _FULL_SOS_DLL_PATH_ " а не". loadby sos clr ", потому что обычно существуют различные .NET frameworks, поэтому вам нужно проинструктировать WinDbg загрузить правильный ...
Другая программа, которую вы можете использовать, что намного проще для первых пользователей, чем WinDbg - это инструмент диагностики отладки (от MSDN): http://www.microsoft.com/en-us/download/details.aspx?id=40336.
Когда я работал с этим, я просто создал файл дампа, щелкнув правой кнопкой мыши процесс в диспетчере задач.
- 1. Отладка дампа приложения C#
- 2. Отладка дампа 32-битного процесса, захваченного на 64-разрядной машине
- 3. Отладка дочернего процесса процесса
- 4. Django Отладка процесса отладки процесса
- 5. Отладка загадочного процесса рубинового процесса
- 6. Отладка дампа памяти devenv.exe в WinDbg
- 7. Отладка с файлом дампа в VS2012
- 8. Отладка внешнего процесса?
- 9. C# отладка целевого процесса
- 10. Отладка процесса в VM
- 11. Отладка неполноценного процесса
- 12. Отладка повторного рабочего процесса
- 13. Отладка старого рубинового процесса
- 14. Отладка удаленного процесса
- 15. Отладка запущенного процесса python
- 16. Отладка текущего процесса .net
- 17. Отладка высокого рабочего процесса iis
- 18. Отладка файлов дампа в Visual Studio
- 19. Отладка управляемого дампа с Visual Studio
- 20. Отладка файлов дампа ядра в gdb
- 21. отладка кода
- 22. Получение выхода кода прерванного процесса
- 23. Отладка выпущена управляемым кодом (.net 3.5) с использованием файла дампа
- 24. Создание файла дампа ядра дочернего процесса
- 25. Application Verifier Автоматическое создание дампа процесса
- 26. Получение дампа кучи после успешного процесса
- 27. Ядро дампа для процесса, созданного с Java
- 28. Отладка управляемого файла дампа с помощью visual studio 2010
- 29. Magento отладка установки/процесса обновления
- 30. Отладка ядра для зависания процесса?
Те, кто не может следовать методам Windbg, могут использовать программное обеспечение JustTrace для этой цели – user3164883
Рабочий набор? Не беспокойтесь о рабочем наборе. Чем выше, тем лучше, потому что это означает, что он находится в ОЗУ и оперативной памяти быстро. И до тех пор, пока Windows решает, достаточно иметь ОЗУ для увеличения рабочего набора, это обычно нормально. –