Главная > Debug , Silverlight > Silverlight Отладка с WinDbg и SOS

Отладка с помощью Silverlight WinDbg и SOS

Введение

В предыдущем посте Silverlight отладки Visual Studio , я показал, что Visual Studio является мощным и удобным инструментом для отладки управляемых приложений. Но для некоторых передовых отладки сценариев, как утечки памяти, тупик, беглый процесса / потока, отладку ядра и самого современного дистанционного / аварии / отладки пользовательского интерфейса и т.д., WinDbg (или КБР, NTSD, КД), как правило, предпочтительнее, если не единственный вариант.

Средств отладки для Windows

Обзор

WinDbg является частью средств отладки для Windows пакет:

image_thumb5

Хотя WinDbg это программа GUI, она в основном используется как отладчик командной строки, как (и часто) Ы, КБР и NTSD, и одни и те же двигатель отладки и команд. Это супер мощный и расширяемый, особенно хорошо подходит для системы / низкого уровня отладки драйверов, как и других компонентов операционной системы. Она требует хорошего знания аппаратных средств, операционной системы и компилятора, чтобы получить большую часть из набора инструментов. Это большой (или совершенным, я должен сказать, :-) для отечественных отладки, с его обширной и расширяемой команды и графический пользовательский интерфейс. Управляемый поддержку отладки через SOS отладки расширение, далеко не так хорошо, как родной отладки, но есть огромное значение в возможности делать комплексной отладки через управляемые и родные границы, а также для Silverlight, это единственный инструмент, я знаю , который может загружать SOS и делать комплексной отладки.

Команды

WinDbg / CDB / NTSD / КД были вокруг в течение долгого времени, так они очень хорошо документированы. Это рекомендуется, что вы читали о отладки для Windows на microsoft.com и MSDN . Здесь я только дать краткий обзор его команды, чтобы дать вам почувствовать и быстрого доступа. Все команды приходят с помощью запуска времени (с помощью? |. | Помощь! Помощь [<cmd>] см. ниже), так что обзор, как правило, достаточно, чтобы получить начали.

WinDbg имеет три вида команд:

Стандартные команды

Прежде всего:

  • B * команды для установки / очистки / список / включить / отключить точки останова на адрес или доступа
  • D * команды изучения памяти (стек / кучу, местных / глобальных переменных и параметров), E * команду изменить память, и S * для поиска памяти
  • К * команды изучить стек вызовов
  • P, T, G * команд для выполнения контроля

ниже? Команда вывода отличный обзор и частые ссылки для людей, использующих WinDbg / CDB / NTSD / Ы:

0:006>?

Открыть debugger.chm полной документации отладчик

B [C | D | E] [<bps>] - ясно / / отключать останова (ы)
BL - список точек останова
Б. <access> <size> <addr> - процессор останова набор
BP <address> - набор мягкой останова
D [тип] [<range>] - дамп памяти
DT [-п | у] [[мод! Название]] [[-п | у] полях]
[Адрес] [-L список статей] [[] | с | я | о | г [#] | V] - дамп использованием информации о типе
DV [<имя>] - дамп локальные переменные
E [тип] <address> [<значения>] - ввести памяти значения
G [H N |] [= <address> [<address> ...]] - перейти
K <count> - stacktrace
КП <count> - stacktrace с источником аргументов
Л. М. [K | L | U | V] - список модулей
Л. Н. <expr> - список ближайших символов
P [= <addr>] [<значение>] - шаг за
Q - выйти
R [[<reg> [= <expr>]]] - просмотреть или изменить регистры
S [<opts>] <range> <значения> - поиск памяти
SX [(е | D | я | п) [с "Cmd1"] [-c2 "cmd2"] [ч] (Исключение | события | *)] - событие фильтр
T [= <address>] [<expr>] - след в
U [<range>] - дизассемблировать
Версия - показать отлаживаемом и отладчик версия
X [<* | модуль >!]<*| символ> - вид символов
? <expr> - дисплей выражение
?? <expr> - дисплей C + + выражение
$ <<filename> - Извлекать из командного файла

Нажмите Enter ...

<expr> унарных кооперативов: + - не чюо DWO qwo пои привет низким
бинарных Ops: + - * / мода (%), а (и) XOR (^) или (|)
сравнения: == (=)> <! =
операндов: число в текущем счисления, государственных символов, <reg>
<type>: б (байт), W (слово), и [с] (с удвоенной [символами]),
(ASCII), с (DWORD и символ), и (Unicode), л (список)
F (поплавок), D (двойной), с | S (ASCII / Unicode строка)
д (quadword)
<pattern>: [(п | <dll-name>)!] <var-name> (<var-name> может включать в себя? и *)
<range>: <address> <address>
: <address> <count> L

В режиме пользователя функций:
~ - Список тем статус
~ # Ы - установить по умолчанию поток
| - Список процессов статус
| # S - установить по умолчанию процесс

x86 вариантов:
DG <selector> - дамп выбора
<reg>: [э] топор, [э] BX, [э] CX, [э] ах, [э] си, [э] ди, [э] б.п., [э] SP, [э] ф, [ е] й,
др., ах, бл, BH, CL, CH, DL, DH, CS, DS, ES, FS, GS, т.
dr0, DR1, DR2, DR3, dr6, dr7
fpcw, fpsw, fptw, st0-ST7, mm0-MM7
xmm0-xmm7
<flag>: iopl, о, д, если тс, SF, ZF, AF, PF, CF
<addr>: # <16-битный режим защиты [сегмент:]> адрес,
И [seg:]address> <V86-mode

Открыть debugger.chm полной документации отладчик

Мета команды

Те, начинаются с точки, в основном для передовых отладки. Некоторые важные команды, которые вы должны знать:

  • . Symfix и. Sympath для использования символа сервере
  • . Srcfix и. ЗгсРаЬЬ для использования исходного сервера
  • . Нагрузки. Loadby. Разгружать. Цепочке. Setdll для управления расширениями отладки
  • . Сервера. Пульт дистанционного управления для удаленной отладки

Это стоит вашего времени, чтобы ознакомиться с символом сервер, сервер-источник и удаленной отладки: они сделают вашу жизнь намного проще. Ниже приводится вывод. помочь команде:

0:006>. Помочь
. команды:
. Отказаться - отказаться от текущего процесса
. Allow_exec_cmds [0 | 1] - выполнение команд управления
. Allow_image_mapping [0 | 1] - управление по требованию файл образа отображения
. Apply_dbp [<Опции>] - добавить текущий останова данных состояния
Зарегистрироваться контексте
. АНМ [<Опции>] - установить параметры разборки
. ASM-[<Опции>] - четкие параметры разборки
. Приложить <proc> - придают <proc> на следующей исполнения
. Блок <команды> () - скобки набор команд для исполнения вложенных
. Bpsync [0 | 1] - специальное поведение останова для многопоточных debuggees
. Брейк - вырваться из вмещающих цикла
. Взлома - перерыв в КД
. Кэша [<Опции>] - фактический контроль кэш-памяти
. Вызова <Fn> (<arg1>, <arg2>, ...) - выполнить функцию отлаживаемом
. Поймать <команды> () - поймать неудачи команды
. Цепочку - список текущих расширений
. Childdbg <0 | 1> - включить дочерний процесс отладки и выключение
. Клиентам - список активных клиентов
. CloseHandle [<Опции>] [<handle>] - закрыть данную ручку
. Продолжать - по-прежнему вмещающих цикла
. Copysym [<Опции>] <путь> - копии текущих файлов символ в каталог
. Создать <command line> - создать новый процесс
. Createdir [<Опции>] [<путь>] - процесс создания альтернативных вариантов
. Рентгенографии грудной клетки <address> - дамп рекорд связи на указанный адрес
А * после этого дает рентгенографии грудной клетки стека
. Dbgdbg - подключить отладчик к текущей отладчик
. Debug_sw_wow [0 | 1] - позволяет взаимодействие с программным обеспечением эмуляции WOW
. Отсоединения - отделяются от текущего процесса / свалки
. Dml_file <file> - выходной DML содержимое из файла
. Dml_flow <Start> <addr> - показать основной поток блок кода
. Dml_start [<Опции>] - судоходные обзор деятельности отладчик
. Делать <команды> () (<cond>) - <команды> выполнить до <cond> равна нулю
. Водители - Эта команда была снята - использовать 'лм' или. Перезагрузку-л)
. Дампа [<Опции>] <имя_файла> - создание файла дампа памяти на хост-системе
. Dvalloc [<Опции>] <bytes> - VirtualAlloc памяти отлаживаемом
. Dvfree [<Опции>] <offset> <bytes> - VirtualFree памяти отлаживаемом
. Эхо ["<string>" | <string>] - эхо строку
. Echotime - вывод отладчика время
. Echotimestamps [0 | 1] - переключение выходного метку о событиях
. Ecxr - дамп записи контексте текущего исключения
. Effmach [<компьютер>] - изменяет текущий тип машины
. Зе (<команды>) - если / то / еще условного выполнения
. ELSIF (<cond>) () <команды> [<else clauses>] - если / то / еще условных
исполнение
. Enable_long_status [0 | 1] - дамп БОЛЬШИЕ типов по умолчанию базы
. Enable_unicode [0 | 1] - дамп USHORT массив / указатели и Unicode строк
. Endsrv <id> - отключение данного двигателя сервере
. Endpsrv - дело сессии в удаленном сервере для выхода из текущего
. Enumtag - отметил перечисления доступных данных
. Event_code - событие из кэша инструкций
. EventLog - дисплей журнал последних событий
. Событий - дисплей и выберите доступных событий
. Eventstr - дисплей любом случае строки зарегистрировано отлаживаемом
. Exepath [<dir> [;...]] - набор исполняемых путь поиска
. Exepath + [<dir> [;...]] - добавить исполняемый путь поиска
. Выражение - выражение контроля по оценке
. Exptr <address> - делать. EXR и. Рентгенографии грудной клетки для EXCEPTION_POINTERS
. Ехг <address> - дамп исключением записи на указанный адрес
. Extmatch [<opts>] <pattern> - отображать все расширения соответствие шаблону
. Extpath <opts> [<dir> [;...]] - расширение набора путь поиска
. Extpath + <opts> [<dir> [;...]] - добавить поиск пути расширения
. + F - установить текущий кадр стека для вызывающей текущего кадра
. F-- установить текущий кадр стека для вызываемого текущего кадра
. Волокна <address> - устанавливает связи волоконно по адресу
сброс контекст, если не указан адрес
. Fiximports <pattern> - попытки увязать импорта изображений
. Fnent <address> - дамп вступления функции для данного кода адреса
. Fnret <fnaddr> [<retval>] - отображать форматированный возвращаемого значения
. Для (<init>; <cond>; <step>) () <команды> - <команды> и выполнить
<step> до <cond> является
нулевой
. Force_radix_output [0 | 1] - дамп целых типов по умолчанию базы
. Force_system_init [<Опции>] - силе до системы для инициализации, если возможно
. Force_tb - принудительно позволит отрасли трассировки
. Еогеасп [выбирает] (<псевдоним> () <tcmds>) (<ecmds>) - выполнить для <ecmds>
Каждый признак в
выход <tcmds>
. ООП <Опции> - контроль переопределить FPO информации
. Рамы [<frame>] - установить текущий кадр стека для местных жителей
. Форматы <expr> - показывает результат выражения в различных форматах
. Помочь [<Опции>] - показать эту справку
holdmem <Опции> [диапазон] - провести и сравнить данные в памяти.
. Если (<cond>) () <команды> [<else clauses>] - если / то / еще условных
исполнение
. Ignore_missing_pages [0 | 1] - ядро резюме контроля свалки отсутствует
страницы сообщение об ошибке
. Imgscan <Опции> - сканировать память PE образы
. Jdinfo <jdi_addr> - интерпретация информации AeDebug
. Kframes <count> - установить по умолчанию трассировки стека глубины
. Убить - убей текущего процесса
. Lastevent - показать последние события, которые произошли
. Отпуск - выход прилагаю. Улов
. Линий - переключение символ загрузки линии
. Нагрузки <имя> - добавить это расширение DLL с расширением цепи
. Loadby <mod> <имя> - добавить расширение DLL в модуле
каталоге с расширением цепи
. Локали [<Locale>] - установить в текущей локали
. Лог - лог дисплей
. Logopen [<file>] - открыть файл новых
. Logappend [<file>] - добавить в файл журнала
. Logclose - закрыть файл журнала
. Netsyms [0 | 1] - разрешить / запретить чистый символ пути
. Netuse [<Опции>] - управление чистых соединений
. Noshell - отключить команды,
. Noversion - отключить проверку версии расширения
. Ofilter <pattern> - фильтр отлаживаемом выход на данный шаблон
. Ocommand <prefix> - лечить выход с данного префикса, как команда
. Opendump <file> - открыть файл дампа
. Outmask <mask> - бит в текущую маску выходной
. Outmask-<mask> - четкие биты в текущую маску выходной
. Pcmd [<Опции>] - контроль за оперативное командование
. Поп [<Опции>] - поп-государственного
. Prefer_dml [0 | 1] - контроль DML режиме по умолчанию
. Е "<format>", <args…> - форматированный вывод
. Процесса [<address>] - задает неявные процесса
сброс по умолчанию, если адрес не указан
. Prompt_allow [<Опции>] - контролировать то, что информация может быть отображена
в командной строке
. Нажмите [<Опции>] - нажмите состояние
. Quit_lock [<Опции>] - замки сессии против неожиданного выхода
. Readmem <file> <range> - читать сырой памяти из файла
. Record_branches [0 | 1] - управление записи процессора ветвления
. Перезагрузки [<image.ext> [= <address>, <size>]] - перезагрузить символы
. Перезапустить - запрос сессии перезагрузка
. Удаленного <pipename> - Remote.exe запуска сервера
. Обеспечению [0 | 1] - запретить операции опасны для принимающей
. Send_file <Опции> - отправлять файлы на удаленном сервере
. Сервера <Опции> - запуск двигателя сервере
. Сервера - список активных удаленного сервера
. Setdll <имя> - отладчик будет искать для расширений в этой DLL первый
. Оболочки [<command>] - выполнять команды оболочки
. Show_read_failures [<opts>] - дополнительный контроль читать сердечная недостаточность
. Show_sym_failures [<opts>] - дополнительный выходной контроль символ неудачи
. Сна <milliseconds> - отладчик спит по заданной длительности
удобно использовать для ограничения доступа к аппарату, который в
прервало NTSD-й
. Srcfix [<путь extra>] - исправить путь поиска источника
. Srcfix + [<путь extra>] - добавить фиксированный путь поиска источника
. Srcnoisy [0 | 1] - контроль подробный источник загрузки выходной
. ЗгсРаЬЬ [<dir> [;...]] - установить источник путь поиска
. ЗгсРаЬЬ + [<dir> [;...]] - добавить в пути поиска источника
. Step_filter [<opts>] ["<pattern> [; <pattern> ...]"] - символ узоров Набор
пропустить при активизации
. Symfix [<localsym>] - исправить путь поиска символа
. Symfix + [<localsym>] - добавить фиксированный путь поиска символа
. Symopt <flags> - набор символов параметры
. Symopt + <flags> - набор символов параметры
. Symopt-<flags> - четкое обозначение параметров
. Sympath [<dir> [;...]] - набор символов в пути поиска
. Sympath + [<dir> [;...]] - добавить путь поиска символа
. Нить [<address>] - задает контекст нити по адресу
сброс по умолчанию контекст, если не указан адрес
. Времени - отображает информацию о времени сессии
. Ttime - отображает информацию о времени поток
. Tlist - список запущенных процессов
. Typeopt <flags> - набор / четкие параметры типа
. Выгрузить <имя> - удалить это расширение DLL из списка расширение библиотеки
. Unloadall - удалить все расширения библиотеки из списка расширений библиотеки
. Разбудить - проснуться. Sleep'ing отладчик
. Время (<cond>) () <команды> - <команды> выполнить в то время как <cond> отлична от нуля
. Writemem <file> <range> - написать сырой памяти в файл

Использование ". Чч <command>" или открытого debugger.chm в каталоге отладчики для получения
подробную документацию по команде.

Расширение команды

Те, начинаются с!, Как правило, для конкретного района, как и расширение команды SOS для управляемых отладки. Вы можете использовать! <ext>. Помочь список команд расширение, как! Exts.help. Для улучшения отладки системы, как обнаружение утечек памяти, тупиковой ситуации и т.д., вы должны быть хорошо знакомы с теми, расширение команды.

СОС

Обзор

SOS является аббревиатурой от Сына Strike (не спрашивайте меня, почему), расширение отладки управляемых отладки. Я считаю, что был изобретен CLR команды для отладки CLR, так что была вокруг в течение долгого времени, и Есть много полезной информации в Интернете. Некоторые Рекомендуемая литература:

Каждая версия CLR имеет свой собственный SOS (. NET Framework 3.5 все еще использует CLR 2.0 и Silverlight имеет свой собственный CLR):

Справочник C: \ Program Files \ отладки для Windows \ clr10
09/19/2007 7:01 вечера 948784 sos.dll
1 файл (ы) 948 784 байт

Справочник C: \ Program Files \ Microsoft Silverlight \ 2.0.31005.0
10/05/2008 2:16 утра 495424 sos.dll
1 файл (ы) 495 424 байт

Справочник C: \ Windows \ Microsoft.NET \ Framework \ v1.1.4322
07/15/2004 12:35 утра 319488 SOS.dll
1 файл (ы) 319 488 байт

Справочник C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727
07/27/2008 10:03 утра 392184 SOS.dll
1 файл (ы) 392 184 байт


Команды

SOS время выполнения помочь настолько велика, что вы почти не нужны никакие другие документ за исключением нескольких проб и ошибок, а некоторые разочарования :-)

0:016>! Помочь
---------------------------
SOS является расширением DLL отладчик предназначен для помощи в отладке управляемого
программ. Функции перечисленных категорий, то примерно в порядке
значение. Ярлык для популярных имен функций указаны в скобках.
Тип "! <functionname> Помощь" для подробной информации о данной функции.

Обследование объекта экспертизы код и стеки
---------- ----------
DumpObj (делать) Threads
DumpArray (да) CLRStack
DumpStackObjects (DSO) IP2MD
DumpHeap U
DumpVC DumpStack
GCRoot EEStack
ObjSize GCInfo
FinalizeQueue EHInfo
PrintException (PE) COMState
TraverseHeap BPMD

Изучение структуры данных CLR диагностических утилит
---------- ----------
DumpDomain VerifyHeap
EEHeap VerifyObj
Name2EE FindRoots
SyncBlk HeapStat
DumpMT GCWhere
DumpClass ListNearObj (ЛНО)
DumpMD GCHandles
Token2EE GCHandleLeaks
EEVersion FinalizeQueue (FQ)
DumpModule FindAppDomain
ThreadPool SaveModule
DumpAssembly Procinfo
DumpSigElem StopOnException (SOE)
DumpRuntimeTypes DumpLog
DumpSig VMMap
RCWCleanupList VMStat
DumpIL MinidumpMode
AnalyzeOOM (АО)

Изучение истории GC Другие
---------- ----------
HistInit FAQ
HistStats
HistRoot
HistObj
HistObjFind
HistClear

Пример Debug Демонстрация

Я буду использовать тот же простейший Silverlight приложения в предыдущей должности ( Silverlight отладки Visual Studio ), чтобы продемонстрировать WinDbg отладки SOS:

image_thumb

Вот в журнале отладки с моей аннотации (начинаются с / /):

/ / Создать символ указать путь к серверу символов
0:013>. Sympath
Путь поиска Символ: <empty>
0:013>. Symfix C: \ Users \ ningz \ AppData \ Local \ Temp \ Symbols
0:013>. Sympath
Путь поиска Символ: SRV * C: \ Users \ ningz \ AppData \ Local \ Temp \ Symbols \ * \ символов \ символов

/ / Добавить PDB путь для применения отлаживается
0:013>. Sympath + "C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Проекты \ SilverlightApplication1 \ SilverlightApplication1 \ Bin \ Debug"
Путь поиска Символ: SRV * C: \ Users \ ningz \ AppData \ Local \ Temp \ Symbols *
http://msdl.microsoft.com/download/symbols;
C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Проекты \ SilverlightApplication1 \ SilverlightApplication1 \ Bin \ Debug

/ / Перезагрузить все символы
0:013>. Перезагрузки
Перезагрузка текущей модулей
.................................................. .................................................. ..............

/ / Создать путь к источнику использовать сервер-источник
0:013>. ЗгсРаЬЬ
Путь поиска источника: <empty>
0:013>. Srcfix
Путь поиска источника: SRV *
0:013>. ЗгсРаЬЬ + "C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Проекты \ SilverlightApplication1 \ SilverlightApplication1"
Путь поиска источника: SRV *; C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Проекты \ SilverlightApplication1 \ SilverlightApplication1

/ / SOS нагрузки. Пожалуйста, обратите внимание:
/ / 1. кажется mscorwks заменяется coreclr в Silverlight
/ / 2. вместо. loadby, вы также можете использовать. нагрузки "C: \ Program Files \ Microsoft Silverlight \ 2.0.31005.0 \ sos.dll"
0:013>. Loadby SOS coreclr
Загружено C: \ Program Files \ Microsoft Silverlight \ 2.0.31005.0 \ SOS расширение DLL

/ / Установка точки останова для кнопки обработчик события нажмите
0:013>! Bpmd SilverlightApplication1 SilverlightApplication1.Page.Button_Click
Найдено 1 методами ...
MethodDesc = 03983a30
Добавление точки останова в ожидании ...
0:013> Ы
0 электронной 0428215b 0001 (0001) 0 :****
0:013> г
MODLOAD: 70800000 7080c000 C: Windowssystem32dwmapi.dll

/ / Нажать кнопку и ворваться в WinDbg
Точка останова 0 удар
*** ВНИМАНИЕ: Невозможно проверить контрольную сумму для SilverlightApplication1.dll
SilverlightApplication1! Button_Click:
04850398 55 PUSH EBP
Комплексная управляемых отладки не поддерживает перечень локальных переменных.
См. http://dbg/managed.htm для более подробной информации.
Управляемый обработки кадра неудачу, HRESULT 0x80004005

/ / Сравнить! Потоков и ~ мощность *
0:005>! Темы / / Список управляется только потоки
THREADCOUNT: 3
UnstartedThread: 0
BackgroundThread: 3
PendingThread: 0
DeadThread: 0
Хостинг Runtime: да
Преимущественное GC Alloc Lock
ID OSID ThreadOBJ государства GC граф контексте домена APT Исключение
5 1 1b08 043576e0 220 инвалидов 04f9f214: 04f9ffe8 06f529d8 0 STA
9 2 928 043689c8 B220 Включено 00000000:00000000 0433c738 0 MTA (Finalizer)
10 3 1e8c 06f509d0 1220 Включено 00000000:00000000 0433c738 0 Укк
0:005> ~ * / / список всех тем
0 Id: 162c.1a28 Приостановить: 1 Теб: 7ffde000 разморожены
Начало: Iexplore! WWinMainCRTStartup (00a52d79)
Очередность: 0 Приоритет класс: 32 Affinity: 3
2 Id: 162c.1020 Приостановить: 1 Теб: 7ffdc000 разморожены
Начало: ole32! CRpcThreadCache:: RpcWorkerThreadEntry (76dfe0cc)
Очередность: 0 Приоритет класс: 32 Affinity: 3
3 Id: 162c.1e00 Приостановить: 1 Теб: 7ffda000 разморожены
Начало: NTDLL! TppWaiterpThread (778ab61b)
Очередность: 0 Приоритет класс: 32 Affinity: 3
4 Id: 162c.1f00 Приостановить: 1 Теб: 7ffd9000 разморожены
Начало: MSVCRT! _endthreadex +0 X6f (76162da8)
Очередность: 0 Приоритет класс: 32 Affinity: 3
5. Id: 162c.1b08 Приостановить: 1 Теб: 7ffd8000 разморожены
Начало: IEFRAME! CTabWindow:: _TabWindowThreadProc (6c163fdb)
Очередность: 0 Приоритет класс: 32 Affinity: 3
7 Id: 162c.170 Приостановить: 1 Теб: 7ffd6000 разморожены
Начало: npctrl! CXcpDispatcher:: DispatcherTimerCallback (6a6d16f4)
Очередность: 0 Приоритет класс: 32 Affinity: 3
8 Id: 162c.1cd0 Приостановить: 1 Теб: 7ffd5000 разморожены
Начало: coreclr! DebuggerRCThread:: ThreadProcStatic (640eb5cd)
Очередность: 0 Приоритет класс: 32 Affinity: 3
9 Id: 162c.928 Приостановить: 1 Теб: 7ffd4000 разморожены
Начало: coreclr! Тема:: intermediateThreadProc (63fb8e4f)
Очередность: 0 Приоритет класс: 32 Affinity: 3
10 Id: 162c.1e8c Приостановить: 1 Теб: 7ffd3000 разморожены
Начало: coreclr! Тема:: intermediateThreadProc (63fb8e4f)
Очередность: 0 Приоритет класс: 32 Affinity: 3
11 Id: 162c.1fac Приостановить: 1 Теб: 7ffaf000 разморожены
Начало: agcore! CMulticoreTaskScheduler:: WorkerThread (660547de)
Очередность: 0 Приоритет класс: 32 Affinity: 3
12 Id: 162c.1b78 Приостановить: 1 Теб: 7ffae000 разморожены
Начало: agcore! CMulticoreTaskScheduler:: WorkerThread (660547de)
Очередность: 0 Приоритет класс: 32 Affinity: 3
13 Id: 162c.1d18 Приостановить: 1 Теб: 7ffdb000 разморожены
Начало: NTDLL! RtlUserThreadStart (778c9a78)
Очередность: 0 Приоритет класс: 32 Affinity: 3
Управляемый обработки кадра неудачу, HRESULT 0x80004005
Комплексная управляемых отладки не поддерживает перечень локальных переменных.
См. http://dbg/managed.htm для более подробной информации.

/ / Сравнить! Clrstack и к выходной
0:005>! Clrstack-р / / Список управляемых стековых фреймов только
OS темы Id: 0x1b08 (5)
ESP EIP
0450f850 04800398 SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
ПАРАМЕТРЫ:
это (<CLR reg>) = 0x04f59c78
отправителя (<CLR reg>) = 0x04f5b948
е (0x0450f854) = 0x04f9f1f0

0450f858 048cde0d System.Windows.Controls.Primitives.ButtonBase.OnClick ()
ПАРАМЕТРЫ:
это (0x0450f864) = 0x04f5b948

0450f870 048cdd10 System.Windows.Controls.Button.OnClick ()
ПАРАМЕТРЫ:
этот = <Нет data>

0450f880 048cdc3d System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (System.Windows.Input.MouseButtonEventArgs)
ПАРАМЕТРЫ:
это (0x0450f884) = 0x04f5b948
е (0x0450f880) = 0x04f9f188

0450f890 048cdba1 System.Windows.Controls.Control.OnMouseLeftButtonUp (System.Windows.Controls.Control, System.EventArgs)
ПАРАМЕТРЫ:
CTRL = <Нет data>
е = <Нет data>

0450f8a0 0483a0e7 MS.Internal.JoltHelper.FireEvent (IntPtr, IntPtr, Int32, System.String)
ПАРАМЕТРЫ:
unmanagedObj (0x0450f8f8) = 0x04355c48
unmanagedObjArgs (0x0450f8f4) = 0x0707be00
argsTypeIndex (0x0450f928) = 0x000000a9
EventName (0x0450f924) = 0x04f9f16c

0450fa74 63ef17b0 [GCFrame: 0450fa74]
0450fb30 63ef17b0 [ContextTransitionFrame: 0450fb30]
0450fc28 63ef17b0 [UMThkCallFrame: 0450fc28]
0:005> кПа / / Список всех стековых фреймов
ChildEBP RetAddr
0450f868 048cde0d SilverlightApplication1! Button_Click (<HRESULT 0x80004001>)
0450f868 048cdd10 System_Windows! System.Windows.Controls.Primitives.ButtonBase.OnClick (<HRESULT 0x80004001>) +0 x5d
0450f878 048cdc3d System_Windows! System.Windows.Controls.Button.OnClick (<HRESULT 0x80004001>) +0 x48
0450f888 048cdba1 System_Windows! System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (<HRESULT 0x80004001>) +0 X85
0450f898 0483a0e7 System_Windows! System.Windows.Controls.Control.OnMouseLeftButtonUp (<HRESULT 0x80004001>) +0 X41
0450f91c 63ef17b0 System_Windows! MS.Internal.JoltHelper.FireEvent (<HRESULT 0x80004001>) +0 x1b7
0450f934 63ef5f98 coreclr! CallDescrWorker +0 X33
0450f9b0 63f032bc coreclr! CallDescrWorkerWithHandler +0 x8e
0450f9d0 63f0345c coreclr! ForwardCallToManagedMethod +0 x55
0450faf4 63fc4abf coreclr! DoUMThunkCallWorker +0 x199
0450fbe0 04c513d2 coreclr! DoUMThunkCall +0 x1b4
ВНИМАНИЕ: Frame IP не в какой-либо известной модуля. После кадров могут быть неправильными.
0450fc10 6607e0db 0x4c513d2
0450fc70 6a6dc1fc agcore! CCoreServices:: CLR_FireEvent +0 x183
Управляемый обработки кадра неудачу, HRESULT 0x80004005
0450fc84 6a6dc187 npctrl! CommonBrowserHost:: CLR_FireEvent +0 x2a
0450fcc8 6a6dc048 npctrl! CControlBase:: ScriptCallback +0 x366
0450fd08 6a6dc013 npctrl! CXcpDispatcher:: OnScriptCallback +0 xee
0450fd14 6a6dbfef npctrl! CXcpDispatcher:: OnWindowMessage +0 x3a
0450fd2c 7731f8d2 npctrl! CXcpDispatcher:: WindowProc +0 x7f
0450fd58 7731f794 USER32! InternalCallWinProc +0 х23
0450fdd0 77320008 USER32! UserCallWinProcCheckWow +0 x14b

/ / Изучить кучу, обратите внимание на удобство сильных ввели объект кучи,
/ / Вместо нетипизированные байт, как в родной куче
0:005>! Dumpheap типа SilverlightApplication1
Адрес MT Размер
04f4f31c 046336b0 36
04f59c78 04633a6c 68
Всего 2 объектов
Статистика:
MT граф TotalSize Class Name
046336b0 1 36 SilverlightApplication1.App
04633a6c 1 68 SilverlightApplication1.Page
Всего 2 объектов
0:005>! Делать 04f59c78
Название: SilverlightApplication1.Page
MethodTable: 04633a6c
EEClass: 0463196c
Размер: 68 (0x44) байт
Файл: SilverlightApplication1, Version = 1.0.0.0, Culture = нейтральной, PublicKeyToken = NULL
Поля:
MT полевой Офсетная типа ВТ ATTR Параметр
047d97a0 40000dc 4 ... al.NativeResource 0 инстанции 04f5a5c0 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0 инстанции 00000000 _valueTable
047d9874 40000e0 с ... 0 reTypeEventHelper например 04f5a600 _coreTypeEventHelper
04856388 40000e3 10 ... bject, mscorlib]] 0 инстанции 04f79a58 _treeChildren
047ae03c 40000e4 14 ... 0 rnal.IManagedPeer например 00000000 _treeParent
03d50a90 40000dd 2b0 System.IntPtr 1 общие статические StaticNativePointer
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
03d50f28 40000de 2b4 System.Boolean 1 общие статические _isCoreCreate
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 0 <<
047ae384 40000e1 8 .... DependencyObject 0 общей статической PropertyReferencesHolder
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f489b8 <<
04661618 40000e2 с ... flection.Assembly 0 общей статической _executingAssembly
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
047d0b90 40000f1 18 ... 0 rs.AutomationPeer например 00000000 m_pAP
047d7404 40000e8 10 ... 0 ependencyProperty общие статические OpacityProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4a8 <<
047d7404 40000e9 14 ... 0 ependencyProperty общие статические ClipProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4d0 <<
047d7404 40000ea 18 ... 0 ependencyProperty общие статические RenderTransformProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4f8 <<
047d7404 40000eb 1С ... ependencyProperty 0 общей статической OpacityMaskProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a50c <<
047d7404 40000ec 20 ... 0 ependencyProperty общие статические RenderTransformOriginProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a534 <<
047d7404 40000ed 24 ... 0 ependencyProperty общие статические IsHitTestVisibleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a548 <<
047d7404 40000ee 28 ... 0 ependencyProperty общие статические VisibilityProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a570 <<
047d7404 40000ef 2C ... ependencyProperty 0 общей статической RenderSizeProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a598 <<
047d7404 40000f0 30 ... 0 ependencyProperty общие статические UseLayoutRoundingProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a5ac <<
00000000 4000108 0 1С например 00000000 BindingValidationError
04856ae4 400010a 20 ... 0 angedEventHandler например 00000000 DPChanged
048bc8a4 400010b 24 ... 0 angedEventHandler например 00000000 DataContextChanged
03d50f28 400010c 2C System.Boolean 1 экземпляр 0 _isDataContextBound
0481f43c 400010d 28 ... 0 angedEventHandler например 00000000 _sizeChanged
047d7404 40000f2 34 ... 0 ependencyProperty общие статические TriggersProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a144 <<
047d7404 40000f3 38 ... 0 ependencyProperty общие статические ResourcesProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a158 <<
047d7404 40000f4 3C ... ependencyProperty 0 общей статической LanguageProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a180 <<
047d7404 40000f5 40 ... 0 ependencyProperty общие статические ActualWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a194 <<
047d7404 40000f6 44 ... 0 ependencyProperty общие статические ActualHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1a8 <<
047d7404 40000f7 48 ... 0 ependencyProperty общие статические WidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1bc <<
047d7404 40000f8 4c ... ependencyProperty 0 общей статической HeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1d0 <<
047d7404 40000f9 50 ... 0 ependencyProperty общие статические MinWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1e4 <<
047d7404 40000fa 54 ... 0 ependencyProperty общие статические MaxWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1f8 <<
047d7404 40000fb 58 ... 0 ependencyProperty общие статические MinHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a20c <<
047d7404 40000fc 5C ... ependencyProperty 0 общей статической MaxHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a220 <<
047d7404 40000fd 60 ... 0 ependencyProperty общие статические HorizontalAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a234 <<
047d7404 40000fe 64 ... 0 ependencyProperty общие статические VerticalAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a248 <<
047d7404 40000ff 68 ... 0 ependencyProperty общие статические MarginProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a25c <<
047d7404 4000100 6C ... ependencyProperty 0 общей статической StyleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a284 <<
047d7404 4000101 +70 ... ependencyProperty 0 общей статической ParentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2ac <<
047d7404 4000102 +74 ... ependencyProperty 0 общей статической NameProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2c0 <<
047d7404 4000103 +78 ... ependencyProperty 0 общей статической TagProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2d4 <<
047d7404 4000104 7C 0 ... ependencyProperty общие статические TagInternalProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2fc <<
04851464 4000105 80 ... 0 ndows.RoutedEvent общие статические LoadedEvent
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a420 <<
047d7404 4000106 +84 ... ependencyProperty 0 общей статической CursorProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a440 <<
047d7404 4000107 +88 ... ependencyProperty 0 общей статической InstanceDelegateStoreProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a468 <<
047d7404 4000109 8C ... ependencyProperty 0 общей статической DataContextProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a494 <<
047a1e2c 400010e 90 ... Ренс, mscorlib]] 0 общей статической _staticDelegateList
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
00000000 4000264 30 ... 0 angedEventHandler например 00000000 IsEnabledChanged
047d7404 4000252 430 0 ... ependencyProperty общие статические IsTabStopProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59ce4 <<
047d7404 4000253 434 0 ... ependencyProperty общие статические TabIndexProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59cf8 <<
047d7404 4000254 438 0 ... ependencyProperty общие статические TemplateProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d20 <<
047d7404 4000255 43с ... 0 ependencyProperty общие статические TabNavigationProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d48 <<
047d7404 4000256 440 0 ... ependencyProperty общие статические PaddingProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d70 <<
047d7404 4000257 444 0 ... ependencyProperty общие статические HorizontalContentAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d98 <<
047d7404 4000258 448 0 ... ependencyProperty общие статические VerticalContentAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59dc0 <<
047d7404 4000259 44C ... ependencyProperty 0 общей статической BackgroundProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59de8 <<
047d7404 400025a 450 ... 0 ependencyProperty общие статические BorderBrushProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59dfc <<
047d7404 400025b 454 ... 0 ependencyProperty общие статические BorderThicknessProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e10 <<
047d7404 400025c 458 ... 0 ependencyProperty общие статические FontSizeProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e24 <<
047d7404 400025d 45C ... ependencyProperty 0 общей статической FontFamilyProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e4c <<
047d7404 400025e 460 ... 0 ependencyProperty общие статические ForegroundProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e60 <<
047d7404 400025f 464 ... 0 ependencyProperty общие статические FontWeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e88 <<
047d7404 4000260 468 0 ... ependencyProperty общие статические FontStyleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59eb0 <<
047d7404 4000261 46C ... ependencyProperty 0 общей статической FontStretchProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59ed8 <<
047d7404 4000262 470 0 ... ependencyProperty общие статические DefaultStyleKeyProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59eec <<
047d7404 4000263 474 0 ... ependencyProperty общие статические IsEnabledProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59f00 <<
04857f14 478 4000265 ... System.Windows]] 0 общей статической _resourceDictionaryCache
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5cae4 <<
03cf5668 4000266 47C System.Object [] 0 общей статической _controlDelgates
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59f14 <<
047d7404 4000501 77 C 0 ... ependencyProperty общие статические ContentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59cd0 <<
04852580 4000002 34 ... 0 ows.Controls.Grid например 04f79770 LayoutRoot
04852a10 4000003 38 ... 0 s.Controls.Button например 04f5b948 кнопку
03d50f28 4000004 3C System.Boolean 1 экземпляр 1 _contentLoaded

/ / Две линии выше объект кнопки на этой странице объекта
/ / Помните его адрес 04f5b948, так как мы будем обращаться к нему позже
/ / Мы можем получить тот же адрес для кнопки объекта через dumpheap команду:
0:005>! Dumpheap-м 04852a10
Адрес MT Размер
04f5b948 04852a10 92
Всего 1 объектов
Статистика:
MT граф TotalSize Class Name
04852a10 1 92 System.Windows.Controls.Button
Всего 1 объектов
0:005>! Gcwhere 04f5b948 / / кнопка в gen0, так как нет еще GC
Адрес Gen Heap сегмент начинают выделено размера
04f5b948 0 0 04f40000 04f41000 04f9fff4 0x5c (92)
0:005>! Gcroot 04f5b948 / / посмотреть, кто держит ссылку на объект кнопки
Примечание: Корни найти на стеков может быть ложных срабатываний. Run "! Gcroot помощь" для
подробнее.
/ / Ссылки реестра
ECX: Root: 04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
EDX: Root: 04f5b948 (System.Windows.Controls.Button) ->
/ / Стек ссылки
Сканирование темы 5 OSTHread 1b08
ESP: 450f860: Root: 04f5ca18 (System.Windows.RoutedEventHandler) ->
04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f864: Root: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f874: Root: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f884: Root: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f894: Root: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f8d4: Root: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f8e4: Root: 04f5b948 (System.Windows.Controls.Button) ->
Сканирование темы 9 OSTHread 928
Сканирование темы 10 OSTHread 1e8c
/ / Ссылки домена
DOMAIN (06F529D8): Ручка (Pinned): 46412f8: Root: 05f44260 (System.Object [])->
04f45234 (System.Collections.Generic.List `1 [[System.Object, mscorlib ]])->
04f59980 (System.Object [])->
04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
Управляемый обработки кадра неудачу, HRESULT 0x80004005
Комплексная управляемых отладки не поддерживает перечень локальных переменных.
См. http://dbg/managed.htm для более подробной информации.

/ / Изучить сам объект кнопку
0:005>! Делать 04f5b948
Название: System.Windows.Controls.Button
MethodTable: 04852a10
EEClass: 0482e5f0
Размер: 92 (0x5c) байт
Файл: C: \ Program Files \ Microsoft Silverlight \ 2.0.31005.0 \ System.Windows.dll
Поля:
MT полевой Офсетная типа ВТ ATTR Параметр
047d97a0 40000dc 4 ... al.NativeResource 0 инстанции 04f5bd58 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0 инстанции 04f5c0bc _valueTable
047d9874 40000e0 с ... 0 reTypeEventHelper например 04f5bd88 _coreTypeEventHelper
04856388 40000e3 10 ... bject, mscorlib]] 0 инстанции 04f5bee8 _treeChildren
047ae03c 40000e4 14 ... 0 rnal.IManagedPeer например 04f79770 _treeParent
03d50a90 40000dd 2b0 System.IntPtr 1 общие статические StaticNativePointer
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
03d50f28 40000de 2b4 System.Boolean 1 общие статические _isCoreCreate
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 0 <<
047ae384 40000e1 8 .... DependencyObject 0 общей статической PropertyReferencesHolder
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f489b8 <<
04661618 40000e2 с ... flection.Assembly 0 общей статической _executingAssembly
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
047d0b90 40000f1 18 ... 0 rs.AutomationPeer например 00000000 m_pAP
047d7404 40000e8 10 ... 0 ependencyProperty общие статические OpacityProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4a8 <<
047d7404 40000e9 14 ... 0 ependencyProperty общие статические ClipProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4d0 <<
047d7404 40000ea 18 ... 0 ependencyProperty общие статические RenderTransformProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a4f8 <<
047d7404 40000eb 1С ... ependencyProperty 0 общей статической OpacityMaskProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a50c <<
047d7404 40000ec 20 ... 0 ependencyProperty общие статические RenderTransformOriginProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a534 <<
047d7404 40000ed 24 ... 0 ependencyProperty общие статические IsHitTestVisibleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a548 <<
047d7404 40000ee 28 ... 0 ependencyProperty общие статические VisibilityProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a570 <<
047d7404 40000ef 2C ... ependencyProperty 0 общей статической RenderSizeProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a598 <<
047d7404 40000f0 30 ... 0 ependencyProperty общие статические UseLayoutRoundingProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a5ac <<
00000000 4000108 0 1С например 00000000 BindingValidationError
04856ae4 400010a 20 ... 0 angedEventHandler например 00000000 DPChanged
048bc8a4 400010b 24 ... 0 angedEventHandler например 00000000 DataContextChanged
03d50f28 400010c 2C System.Boolean 1 экземпляр 0 _isDataContextBound
0481f43c 400010d 28 ... 0 angedEventHandler например 00000000 _sizeChanged
047d7404 40000f2 34 ... 0 ependencyProperty общие статические TriggersProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a144 <<
047d7404 40000f3 38 ... 0 ependencyProperty общие статические ResourcesProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a158 <<
047d7404 40000f4 3C ... ependencyProperty 0 общей статической LanguageProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a180 <<
047d7404 40000f5 40 ... 0 ependencyProperty общие статические ActualWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a194 <<
047d7404 40000f6 44 ... 0 ependencyProperty общие статические ActualHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1a8 <<
047d7404 40000f7 48 ... 0 ependencyProperty общие статические WidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1bc <<
047d7404 40000f8 4c ... ependencyProperty 0 общей статической HeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1d0 <<
047d7404 40000f9 50 ... 0 ependencyProperty общие статические MinWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1e4 <<
047d7404 40000fa 54 ... 0 ependencyProperty общие статические MaxWidthProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a1f8 <<
047d7404 40000fb 58 ... 0 ependencyProperty общие статические MinHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a20c <<
047d7404 40000fc 5C ... ependencyProperty 0 общей статической MaxHeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a220 <<
047d7404 40000fd 60 ... 0 ependencyProperty общие статические HorizontalAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a234 <<
047d7404 40000fe 64 ... 0 ependencyProperty общие статические VerticalAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a248 <<
047d7404 40000ff 68 ... 0 ependencyProperty общие статические MarginProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a25c <<
047d7404 4000100 6C ... ependencyProperty 0 общей статической StyleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a284 <<
047d7404 4000101 +70 ... ependencyProperty 0 общей статической ParentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2ac <<
047d7404 4000102 +74 ... ependencyProperty 0 общей статической NameProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2c0 <<
047d7404 4000103 +78 ... ependencyProperty 0 общей статической TagProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2d4 <<
047d7404 4000104 7C 0 ... ependencyProperty общие статические TagInternalProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a2fc <<
04851464 4000105 80 ... 0 ndows.RoutedEvent общие статические LoadedEvent
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a420 <<
047d7404 4000106 +84 ... ependencyProperty 0 общей статической CursorProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a440 <<
047d7404 4000107 +88 ... ependencyProperty 0 общей статической InstanceDelegateStoreProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a468 <<
047d7404 4000109 8C ... ependencyProperty 0 общей статической DataContextProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5a494 <<
047a1e2c 400010e 90 ... Ренс, mscorlib]] 0 общей статической _staticDelegateList
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 00000000 <<
00000000 4000264 30 ... 0 angedEventHandler например 00000000 IsEnabledChanged
047d7404 4000252 430 0 ... ependencyProperty общие статические IsTabStopProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59ce4 <<
047d7404 4000253 434 0 ... ependencyProperty общие статические TabIndexProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59cf8 <<
047d7404 4000254 438 0 ... ependencyProperty общие статические TemplateProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d20 <<
047d7404 4000255 43с ... 0 ependencyProperty общие статические TabNavigationProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d48 <<
047d7404 4000256 440 0 ... ependencyProperty общие статические PaddingProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d70 <<
047d7404 4000257 444 0 ... ependencyProperty общие статические HorizontalContentAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59d98 <<
047d7404 4000258 448 0 ... ependencyProperty общие статические VerticalContentAlignmentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59dc0 <<
047d7404 4000259 44C ... ependencyProperty 0 общей статической BackgroundProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59de8 <<
047d7404 400025a 450 ... 0 ependencyProperty общие статические BorderBrushProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59dfc <<
047d7404 400025b 454 ... 0 ependencyProperty общие статические BorderThicknessProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e10 <<
047d7404 400025c 458 ... 0 ependencyProperty общие статические FontSizeProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e24 <<
047d7404 400025d 45C ... ependencyProperty 0 общей статической FontFamilyProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e4c <<
047d7404 400025e 460 ... 0 ependencyProperty общие статические ForegroundProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e60 <<
047d7404 400025f 464 ... 0 ependencyProperty общие статические FontWeightProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59e88 <<
047d7404 4000260 468 0 ... ependencyProperty общие статические FontStyleProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59eb0 <<
047d7404 4000261 46C ... ependencyProperty 0 общей статической FontStretchProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59ed8 <<
047d7404 4000262 470 0 ... ependencyProperty общие статические DefaultStyleKeyProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59eec <<
047d7404 4000263 474 0 ... ependencyProperty общие статические IsEnabledProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59f00 <<
04857f14 478 4000265 ... System.Windows]] 0 общей статической _resourceDictionaryCache
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5cae4 <<
03cf5668 4000266 47C System.Object [] 0 общей статической _controlDelgates
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f59f14 <<
03cf44e8 40002b4 34 System.Object 0 инстанции 00000000 _treeContent
047d7404 40002b3 530 ... 0 ependencyProperty общие статические ContentTemplateProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5bd30 <<
047d7404 40002b5 534 ... 0 ependencyProperty общие статические ContentProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5bd44 <<
03d50f28 40005aa 40 System.Boolean 1 экземпляр 1 _isLoaded
03d50f28 40005ab 41 System.Boolean 1 экземпляр 1 _isMouseCaptured
03d50f28 40005ac 42 System.Boolean 1 экземпляр 0 _isSpaceKeyDown
03d50f28 40005ad 43 System.Boolean 1 экземпляр 0 _isMouseLeftButtonDown
04852208 40005ae 48 System.Windows.Point 1 экземпляр 04f5b990 _mousePosition
048b5f98 40005af 38 ... 0 mation.Storyboard например 00000000 _currentState
03d50f28 40005b0 44 System.Boolean 1 экземпляр 0 _suspendStateChanges
0481fae0 40005b1 3C ... outedEventHandler 0 инстанции 04f5ca18 нажмите
047d7404 40005a6 7e0 ... ependencyProperty 0 общей статической ClickModeProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5ba7c <<
047d7404 40005a7 7e4 ... ependencyProperty 0 общей статической IsFocusedProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5bb38 <<
047d7404 40005a8 7e8 ... ependencyProperty 0 общей статической IsMouseOverProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5bbd8 <<
047d7404 40005a9 7ec ... ependencyProperty 0 общей статической IsPressedProperty
>> Домен: Соотношение 0433c738: NotInit 06f529d8: 04f5bc40 <<

/ / Вывод button.Click области (9 строк выше)
0:005>! Делать 04f5ca18
Название: System.Windows.RoutedEventHandler
MethodTable: 0481fae0
EEClass: 0482c99c
Размер: 32 (0x20) байт
Файл: C: \ Program Files \ Microsoft Silverlight \ 2.0.31005.0 \ System.Windows.dll
Поля:
MT полевой Офсетная типа ВТ ATTR Параметр
03cf44e8 40001e0 4 System.Object 0 инстанции 04f59c78 _target
04663c58 40001e1 8 ... ection.MethodBase 0 инстанции 00000000 _methodBase
03d50a90 40001e2 с System.IntPtr 1 экземпляр 463c08c _methodPtr
03d50a90 40001e3 10 System.IntPtr 1 экземпляр 0 _methodPtrAux
03cf44e8 40001e4 14 System.Object 0 инстанции 00000000 _invocationList
03d50a90 40001e5 18 System.IntPtr 1 экземпляр 0 _invocationCount

0:005>! Делать-nofields 04f59c78 / / проверить _target является страницы
Название: SilverlightApplication1.Page
MethodTable: 04633a6c
EEClass: 0463196c
Размер: 68 (0x44) байт
Файл: SilverlightApplication1, Version = 1.0.0.0, Culture = нейтральной, PublicKeyToken = NULL

/ / Проверить _methodPtr указывает на Button_Click
/ / Посмотреть, как все они связаны между собой
0:005> Л. Н. 463c08c
(0463c08c) SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
0:005> 463c08c п / / JIT-ред метод незавершенная
SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs):
0463c08c b8303a6304 еах, 4633A30h
0463c091 89ed MOV EBP, EBP
0463c093 e900431c00 JMP SilverlightApplication1! Button_Click (04800398)
0463c098 0000 байт добавить PTR [EAX], др.
0463c09a 0000 байт добавить PTR [EAX], др.
0463c09c 0000 байт добавить PTR [EAX], др.
0463c09e 0000 байт добавить PTR [EAX], др.
0463c0a0 0000 байт добавить PTR [EAX], др.
0:005> ехр п / / JIT-ред машинный код
SilverlightApplication1! Button_Click:
04800398 55 PUSH EBP
04800399 MOV EBP 8bec, ESP
0480039b 83ec08 югу ESP, 8
0480039e 894dfc MOV DWORD PTR [EBP-4], ECX
048003a1 8955f8 MOV DWORD PTR [EBP-8], EDX
048003a4 833d7435630400 CMP DWORD PTR DS: [4633574h], 0
048003ab 7405 е SilverlightApplication1! Button_Click +0 X1A (048003b2)
048003ad e8862a895f вызова coreclr! JIT_DbgIsJustMyCode (64092e38)
0:005>! Ip2md 04800398
MethodDesc: 04633a30
Название метода: SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
Класс: 0463196c
MethodTable: 04633a6c
mdToken: 06000008
Модуль: 046333b4
IsJitted: да
CodeAddr: 04800398
0:005>! Dumpil 04633a30
ilAddr = 047e03fe
IL_0000: NOP
IL_0001: в отставке

Когда у меня будет время, я могу написать в блоге на CLR внутренних органов, чтобы показать, как объекты, изложенных в памяти, как метод звонки направляются т.д.

Заключение

Это длинное сообщение, но оно едва собой обзор WinDbg и SOS. Хорошее понимание CLR имеет важное значение для кодирования и отладки, WinDbg с SOS является лучшим средством для изучения CLR и сделать расширенный отладки. Надеюсь, что это краткое еще долгий пост поможет вам начать работу по изучению CLR и Silverlight. Спасибо!

Technorati Теги: , , , ,

Делите и наслаждайтесь:

  • Print
  • email
  • RSS
  • Twitter
  • TwitThis
  • del.icio.us
  • LinkedIn
  • Technorati
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • QQ书签
Tags: , , , Категории: Debug , Silverlight Метки: , , ,