Silverlight Depuración con WinDbg y SOS
Introducción
En el post anterior de depuración de Silverlight con Visual Studio , me demostraron que Visual Studio es una herramienta potente y el más conveniente para la depuración de las aplicaciones administradas. Pero para algunos escenarios de depuración avanzadas, como la pérdida de memoria, callejón sin salida, proceso fuera de control / hilo, la depuración del núcleo, y avanzó a distancia / crash / interfaz de usuario, etc depuración, WinDbg (o cdb, ntsd, kd) se prefiere generalmente, si no es la única opción.
Herramientas de depuración para Windows
Información general
WinDbg es parte de la herramientas de depuración para Windows paquete:
A pesar de que WinDbg es un programa de interfaz gráfica de usuario, se utiliza sobre todo como un depurador de línea de comandos como (y con frecuencia) kd, cdb y ntsd, y comparten el mismo motor de depuración y los comandos. Es súper potente y ampliable, especialmente adecuado para el sistema / de depuración de bajo nivel como los conductores y otros componentes del sistema operativo. Se requiere un buen conocimiento del hardware, sistema operativo y el compilador para obtener el máximo provecho de las herramientas. Es un gran (o perfecto, debería decir
para la depuración nativa, con sus comandos amplio y extensible e interfaz gráfica de usuario. Apoyo logrado a través de la depuración es la extensión de depuración de SOS, no es tan buena como la depuración nativa, pero hay un enorme valor en la posibilidad de realizar una depuración integrada a través de gestión y los límites nativos, y de Silverlight, es la única herramienta que conozco que puede cargar SOS y no integradas de depuración.
Comandos
WinDbg / CDB / ntsd / kd han existido por mucho tiempo, por lo que están muy bien documentadas. Es altamente recomendable que usted lea acerca de las herramientas de depuración para Windows en microsoft.com y MSDN . Aquí sólo un breve resumen de sus comandos, para darle una sensación y una referencia rápida. Todos los comandos tienen ayuda en tiempo de ejecución (a través de |?. Ayuda | ayuda [<Cmd>] como veremos más adelante), por lo que una visión general suele ser suficiente para obtener su comenzado.
WinDbg tiene tres conjuntos de comandos:
Los comandos estándar
Principalmente:
- B * comandos para configurar / claro / lista / activar / desactivar puntos de ruptura en la dirección o el acceso
- D * comandos para examinar la memoria (pila / heap, local / global de las variables y parámetros), E * comando para modificar la memoria, y * S de búsqueda en la memoria
- K * comandos para examinar la pila de llamadas
- P, T, G * comandos para el control de la ejecución
a continuación? salida del comando es una gran visión de conjunto y referencia frecuente para las personas con windbg / CDB / ntsd / kd:
0:006>?
Debugger.chm abierta de documentación depurador completo
B [C | D | E] [<bps>] - claro / activar / desactivar el punto de ruptura (s)
BL - puntos de interrupción lista
BA <access> <tamaño> <addr> - punto de interrupción conjunto de procesadores
BP <dirección> - punto de interrupción suave
D [tipo] [<rango>] - volcado de memoria
DT [-n | y] [[mod] nombre!] [[-N | y] los campos]
[Dirección] [-l lista] [-a [] | c | i | o | r [#] | v] - volcado tipo mediante la información
DV [NOMBRE] - descarga variables locales
E [tipo] <dirección> [<valores>] - introducir valores de la memoria
G [H | N] [= <dirección> [<dirección> ...]] - go
K <count> - StackTrace
KP <count> - stacktrace con los argumentos de la fuente
LM [k | l | u | v] - módulos de la lista
<expr> LN - símbolos más próximos
P [= <addr>] [<valor>] - paso más
Q - dejar de fumar
R [[<reg> [= <expr>]]] - ver o establecer registros
S [<opts>] <rango> <valores> - búsqueda en la memoria
SX [{e | d | i | n} [-c "comando1"] [-c2 "CMD2"] [-h] {Excepción | Eventos | *}] - filtro de eventos
T [= <dirección>] [<expr>] - seguimiento en
U [<rango>] - desensamblar
versión - show depurado y la versión del depurador
X [<* | módulo >!]<*| símbolo> - símbolos de vista
? <expr> - expresión de la pantalla
? <expr> - la pantalla de C + + expresión
$ <<nombre - Tomar la entrada de un archivo de comandosPulse Enter ...
<expr> unario operaciones: + - no por wo DWO qwo poi hi baja
operaciones binarias: + - * / mod (%) y (y) xor (^) o (|)
comparaciones: == (=) <> =
operandos: número en base actual, símbolo público, <reg>
<tipo>: b (byte), w (palabra), d [s] (doble palabra [con símbolos]),
un (ASCII), c (dword y Char), u (Unicode), l (lista)
f (float), D (doble), s | S (ASCII / Unicode cadena)
q (quadword)
<patrón>: [(nt | <dll-name>)!] <var-name> (<var-name> puede incluir * y?)
<rango>: <dirección> <dirección>
: L <dirección> <count>De modo de usuario opciones:
~ - Lista de temas de estado
~ # S - hilo conjunto predeterminado
| - Lista de los procesos de estado
| # S - conjunto de procesos por defectoopciones de x86:
DG <selector> - Selector de volcado
<reg>: [e] ax, [e] bx, [e] cx, [e] dx, [e] si, [e] di [e] pb, [e] sp, [e] ip [ e] fl,
al, ah, bl, bh, cl, ch, dl, dh, CS, DS, ES, FS, GS, SS
dr0, DR1, DR2, DR3, DR6, DR7
fpcw, fpsw, fptw, st0-ST7, MM0-MM7
xmm0-xmm7
<flag>: iopl, de, df, si, tf, SF, ZF, AF, PF, CF
<addr>: # <de 16 bits en modo protegido [seg:]> Dirección,
Y <V86-mode [seg:]address>Debugger.chm abierta de documentación depurador completo
Comandos Meta
Aquellos comienzan con un punto, sobre todo para la depuración avanzada. Algunos comandos importantes que debe saber:
- . Symfix y. Simpatectomía para el uso de servidor de símbolos
- . Srcfix y. Srcpath para el uso de servidor de origen
- . De carga,. Loadby,. Descargar,. La cadena,. Setdll para administrar las extensiones de depuración
- . Servidores. Remota para la depuración remota
Vale la pena su tiempo para familiarizarse con el servidor de símbolos, servidor de origen y la depuración remota: se le hará la vida mucho más fácil. A continuación se muestra la salida del comando de ayuda.:
0:006>. Ayudar a
. comandos:
. Abandonar - abandonar el proceso actual
. Allow_exec_cmds [0 | 1] - comandos de control de ejecución
. Allow_image_mapping [0 | 1] - de control en la demanda de asignación de archivos de imagen
. Apply_dbp [<opciones>] - agrega el estado actual de datos a un punto de interrupción
registro de contexto
. Asm [<opciones>] - configurar las opciones de desmontaje
. Asm-[<opciones>] - opciones de desmontaje claro
. Adjuntar <proc> - se adhieren a <proc> en la siguiente ejecución
. Bloque {} <commands> - soportes de un conjunto de comandos para su ejecución anidadas
. Bpsync [0 | 1] - el comportamiento de punto de corte especial para debuggees multiproceso
. Ruptura - romper el lazo adjuntando
. Rodaje - entrar en KD
. Caché [<opciones>] - la memoria virtual de control de caché
. Llame <Fn> (<arg1>, <arg2>, ...) - ejecutar una función en el código depurado
. Catch {} <commands> - coger las fallas en los comandos
. Cadena - lista de extensiones actuales
. Childdbg <0 | 1> - proceso de darle la vuelta a la depuración de encendido o apagado
. Clientes - los clientes la lista activa
. CloseHandle [<opciones>] [<handle>] - cerca de la manipulación debido a
. Continuar - continuar el bucle adjuntando
. Copysym [<opciones>] <ruta> - copiar los archivos de símbolos actual a un directorio
. Crear <línea - crear un nuevo proceso
. CreateDir [<opciones>] [<path>] - controlar las opciones de proceso de creación de
. <dirección> Cxr - volcado registro de contexto en la dirección especificada
* k después de esto le da pila cxr
. Dbgdbg - adjuntar un depurador al depurador actual
. Debug_sw_wow [0 | 1] - permiten la interacción con software de emulación de WOW
. Desprenderse - separarse del proceso actual / descarga
. Dml_file <archivo> - el contenido del archivo de salida de DML
. Dml_flow <addr> <inicio> - show bloque básico de flujo de código
. Dml_start [<opciones>] - navegables resumen de las actividades depurador
. Do {} <commands> (<cond>) - ejecutar <commands> hasta <cond> es cero
. Drivers - Este comando fue eliminado - use 'lm' o) reload-l.
. Volcado [<opciones>] <nombre - crear un archivo de volcado en el sistema host
. Dvalloc [<opciones>] <bytes> - VirtualAlloc de memoria en el código depurado
. Dvfree [<opciones>] <Desplazamiento> <bytes> - VirtualFree de memoria en el código depurado
. Echo ["<cadena>" | <cadena>] - Muestra una cadena
. Echotime - Tiempo de salida de depuración
. Echotimestamps [0 | 1] - Salida de marca de tiempo de alternancia en los eventos
. Ecxr - volcado registro de contexto para la excepción actual
. Effmach [<equipo>] - cambiar el tipo actual de la máquina
.} Else {<commands> - if / then / else ejecución condicional
. Elsif (<cond>) {} <commands> [<else clauses>] - if / then / else condicional
ejecución
. Enable_long_status [0 | 1] - descarga LARGO tipos de base por defecto
. Enable_unicode [0 | 1] - cadenas volcado serie USHORT / punteros y Unicode
. Endsrv <id> - desactivar el servidor en cuestión de motor
. Endpsrv - causa servidor remoto de la sesión actual para salir
. Enumtag - enumerar los datos disponibles etiquetado
. Event_code - ver las instrucciones de eventos en caché
. EventLog - visualización del registro de los últimos acontecimientos
. Eventos - visualizar y seleccionar los eventos disponibles
. Eventstr - mostrar todas las cadenas de eventos registrados por el depurado
. ExePath <dir> [[;...]] - ejecutable establecer la ruta de búsqueda
. ExePath + [<dir> [;...]] - añade ejecutable ruta de búsqueda
. Expr - control de evaluador de expresiones
. Exptr <dirección> -.. Hacer exr y radiografía de tórax para EXCEPTION_POINTERS
. <dirección> Exr - volcado registro de excepción en la dirección especificada
. Extmatch [<opts>] <patrón> - mostrar todas las extensiones de coincidencia de patrones
. Extpath <opts> <dir> [[;...]] - conjunto de extensión de ruta de búsqueda
. Extpath + <opts> [<dir> [;...]] - añade ampliación de la ruta de búsqueda
. F + - conjunto de marco de pila actual de llamadas de imagen actual
. F-- conjunto de marcos de pila actual al destinatario del marco actual
. Fibras <dirección> - establece el contexto de la fibra en la dirección
restablece contexto si no se especifica la dirección
. Fiximports <patrón> - los intentos de vincular las importaciones de las imágenes
. <dirección> Fnent - volcado entrada de la función de la dirección de código dado
. Fnret <fnaddr> [<retval>] - indicador del valor de cambio formato
. Para (<init>; <cond>; <step>) {} <commands> - ejecutar y <commands>
<step> hasta <cond> es
cero
. Force_radix_output [0 | 1] - tipos de volcado de enteros en base por defecto
. Force_system_init [<opciones>] - vigente hasta que los sistemas para iniciar, si es posible
. Force_tb - la fuerza permiten el rastreo rama
. Foreach [opta] (<alias> {<tcmds>}) {} <ecmds> - ejecutar <ecmds> para
cada ficha en el
salida de <tcmds>
. Fpo <opciones> - control de anulación FPO información
. Marco [<frame>] - conjunto de marcos de pila actual para los locales
. Formatos <expr> - de resultados muestra la expresión en muchos formatos
. Ayuda [<opciones>] - muestra esta ayuda
. Holdmem <opciones> [rango] - poseer y comparar los datos de la memoria
. If (<cond>) {} <commands> [<else clauses>] - if / then / else condicional
ejecución
. Ignore_missing_pages [0 | 1] - el núcleo de control de descarga de resumen que faltan
página de mensajes de error
. Imgscan <opciones> - Análisis de la memoria para las imágenes de PE
. Jdinfo <jdi_addr> - interpretar la información AeDebug
. Kframes <count> - defecto pila profunda huella
. Kill - mata el proceso actual
. Lastevent - visualizar el último evento que tuvo lugar
. Deje - salir de la envolvente de captura.
. Líneas - cambiar el símbolo de carga de línea
. <name> Carga - añadir este archivo DLL de extensión de la cadena de extensión
. Loadby <name> <mod> - agregar el DLL de extensión en el módulo
directorio de la cadena de extensión
. Locale [<locale>] - establece la localización actual
. Archivo de registro - registro de indicación de estado
. Logopen [<archivo>] - abrir el archivo de registro nuevo
. Logappend [<archivo>] - añade al archivo de registro
. Logclose - archivo de registro de cerca de
. Netsyms [0 | 1] - permitir / denegar caminos símbolo red
. Netuse [<opciones>] - Administrar conexiones de red
. Noshell - deshabilitar los comandos shell
. Noversion - deshabilitar la extensión comprobación de la versión
. Ofilter <patrón> - filtro de salida depurado con el patrón dado
. Ocommand <prefix> - Salida de tratar con el prefijo dado como un comando
. Opendump <archivo> - abrir un archivo de volcado
. <máscara> Outmask - conjunto de bits en la máscara de la corriente de salida
. Outmask-<máscara> - Borrar los bits de la máscara de la corriente de salida
. Pcmd [<opciones>] - Control por línea de comandos
. Pop [<opciones>] - pop Estado
. Prefer_dml [0 | 1] - de control por defecto el modo de LMD
. Printf "<formato>", <args…> - salida con formato
. Proceso [<dirección>] - juegos de proceso implícito
restablece por defecto si no se especifica la dirección
. Prompt_allow [<opciones>] - controlar la información que se puede mostrar
en el indicador
. Pulse el botón [<opciones>] - push estado
. Quit_lock [<opciones>] - las cerraduras de la sesión frente salida inesperada
. Readmem <archivo> <rango> - leer la memoria básica de un archivo
. Record_branches [0 | 1] - controles de grabación de procesador de ramificación
. Recargar [<image.ext> [= <dirección>, <tamaño>]] - símbolos de recarga
. Reiniciar - solicitar una sesión de reinicio
. Remotas <pipename> - iniciar el servidor remote.exe
. Segura [0 | 1] - no permitir las operaciones peligrosas para el anfitrión
. Send_file <opciones> - enviar archivos a un servidor remoto
. <opciones> Servidor - el servidor de arranque del motor
. Servidores - servidores de la lista activa de comunicación remota
. Setdll NOMBRE - depurador de búsqueda para las extensiones de esta DLL primero
. Concha [<comando>] - ejecutar comandos shell
. Show_read_failures [<opts>] - control de lectura de salida adicionales fracaso
. Show_sym_failures [<opts>] - Control símbolo de salida adicionales fracaso
. <milliseconds> Sueño - depurador duerme por duración determinada
útil para permitir el acceso a una máquina que
roto en una de ntsd-d
. Srcfix [<ruta extra>] - fuente de fijar la ruta de búsqueda
. Srcfix + [<ruta extra>] - añade una fuente fija la ruta de búsqueda
. Srcnoisy [0 | 1] - control de código fuente detallado de salida de carga
. Srcpath <dir> [[;...]] - fuente establecer la ruta de búsqueda
. Srcpath + <dir> [[;...]] - fuente de agregar la ruta de búsqueda
. Step_filter [<opts>] ["<patrón> [; <patrón> ...]"] - los patrones de juego de símbolos
para saltar al caminar
. Symfix [<localsym>] - símbolo de fijar la ruta de búsqueda
. Symfix + [<localsym>] - añade símbolo fija la ruta de búsqueda
. Symopt <flags> - opciones de juego de símbolos
. Symopt + <flags> - opciones de juego de símbolos
. Symopt-<flags> - opciones claras símbolo
. Simpatectomía <dir> [[;...]] - conjunto de símbolos de ruta de búsqueda
. Simpatectomía + [<dir> [;...]] - añade símbolo ruta de búsqueda
. Hilo [<dirección>] - establece el contexto de la rosca en la dirección
restablece contexto predeterminado si no se especifica la dirección
. Tiempo - muestra la información de tiempo de la sesión
. Ttime - muestra información de Tema
. Tlist - lista de procesos en ejecución
. Typeopt <flags> - set / opciones de tipo de claro
. Descargar NOMBRE - eliminar esta DLL de extensión de la lista de archivos DLL de extensión
. Unloadall - eliminar todos los archivos DLL de extensión de la lista de archivos DLL de las extensiones
. Despertar - despertar a un depurador sleep'ing.
. While (<cond>) {} <commands> - ejecutar <commands> mientras <cond> no es cero
. <archivo> <rango> Writemem - escribir en la memoria en bruto a un archivoUse ". <comando> Hh", o Debugger.chm abierto en el directorio de depuradores para obtener
documentación detallada sobre un comando.
Comandos de extensión
Aquellos empezar!, Por lo general de un área en particular, como comandos de extensión de SOS para la depuración administrada. Se puede usar! <ext>. Ayudar a la lista de comandos de una extensión, como! Exts.help. Para la depuración de sistema avanzado, como la detección de pérdida de memoria, etc callejón sin salida, tienes que estar muy familiarizado con los comandos de extensión.
SOS
Información general
SOS es el acrónimo de Son of Strike (no me pregunten por qué), una extensión de depuración para la depuración administrada. Creo que fue inventado por el equipo de CLR CLR depuración, por lo que ha existido por mucho tiempo, y hay un montón de buena información en la web. Algunas lecturas recomendadas:
- SOS extensión de depuración de MSDN
- Mensaje Jason Zander blog: SOS depuración de CLR
Cada versión de CLR tiene su propio SOS (NET Framework 3.5 sigue utilizando CLR 2.0, Silverlight y tiene su propio CLR.)
Directorio de C: \ Archivos de programa \ herramientas de depuración para Windows \ clr10
19/09/2007 19:01 948.784 sos.dll
1 Archivo (s) 948784 bytesDirectorio de C: \ Archivos de programa \ Microsoft Silverlight \ 2.0.31005.0
10/05/2008 02:16 AM 495424 sos.dll
1 Archivo (s) 495424 bytesDirectorio de C: \ Windows \ Microsoft.NET \ Framework \ v1.1.4322
15/07/2004 12:35a.m. 319.488 sos.dll
1 Archivo (s) 319488 bytesDirectorio de C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727
07/27/2008 10:03 AM 392184 sos.dll
1 Archivo (s) 392184 bytes
Comandos
SOS ayuda en tiempo de ejecución es tan grande que casi no necesita ningún otro documento que no sea un intento y unos pocos errores y frustración que algunos ![]()
0:016>! Ayuda
---------------------------
SOS es una DLL de extensión de depurador diseñado para ayudar en la depuración de los administrados
programas. Funciones están agrupados por categorías, a continuación, más o menos en orden de
importancia. Nombres de acceso directo para funciones populares se enumeran entre paréntesis.
Tipo "! <functionname> Ayuda" para obtener información detallada sobre esta función.Código objeto de inspección y examen de las pilas
---------- ----------
DumpObj (do) Temas
DumpArray (da) clrstack
DumpStackObjects (DSO) IP2MD
Dumpheap U
DumpVC DumpStack
GCRoot EEStack
ObjSize gcinfo
FinalizeQueue EHInfo
PrintException (pe) COMState
TraverseHeap BPMDExaminar las estructuras de datos CLR Utilidades de diagnóstico
---------- ----------
DumpDomain VerifyHeap
EEHeap VerifyObj
Name2EE FindRoots
SyncBlk HeapStat
DumpMT GCWhere
DumpClass ListNearObj (LNO)
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 (ao)Examinando la historia de GC Otros
---------- ----------
HistInit FAQ
HistStats
HistRoot
HistObj
HistObjFind
HistClear
Ejemplo de demostración de depuración
Voy a utilizar la misma simple aplicación de Silverlight en el post anterior ( depuración de Silverlight con Visual Studio ) para demostrar la depuración con WinDbg SOS:
Aquí está el registro de depuración con mis anotaciones (empezar con / /):
/ / Establecer una ruta de símbolo para el uso del servidor de símbolos
0:013>. Simpatectomía
Ruta de símbolo de búsqueda es: <empty>
0:013> symfix C:. \ Users \ ningz \ AppData \ Local \ Temp \ Symbols
0:013>. Simpatectomía
Ruta de símbolo de búsqueda es: SRV * C: \ Users \ ningz \ AppData \ Local \ Temp \ Symbols \ * \ symbols \ symbols/ / Agregar la ruta pdb para la aplicación que se está depurando
0:013> Simpatectomía +. "C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Projects \ SilverlightApplication1 \ SilverlightApplication1 \ bin \ Debug"
Ruta de símbolo de búsqueda es: SRV * C: \ Users \ ningz \ AppData \ Local \ Temp \ Symbols *
http://msdl.microsoft.com/download/symbols;
C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Projects \ SilverlightApplication1 \ Bin SilverlightApplication1 \ \ Debug/ / Cargar todos los símbolos
0:013>. Recargar
Cargar de nuevo módulos actuales
/ / Establecer una ruta de origen para usar el servidor de origen
0:013>. Srcpath
Camino de búsqueda de código es: <empty>
0:013>. Srcfix
Camino de búsqueda de código es: SRV *
0:013> srcpath +. "C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Projects \ SilverlightApplication1 \ SilverlightApplication1"
Camino de búsqueda de código es: SRV * C: \ Users \ ningz \ Documents \ Visual Studio 2008 \ Projects \ SilverlightApplication1 \ SilverlightApplication1/ / Carga de SOS. Tenga en cuenta:
/ / 1. parece mscorwks se sustituye por coreclr en Silverlight
/ / 2. . en lugar de loadby, también puede utilizar la carga "C: \ Archivos de programa \ Microsoft Silverlight \ 2.0.31005.0 \ sos.dll".
0:013>. Loadby sos coreclr
Cargado c: \ Archivos de programa \ Microsoft Silverlight \ 2.0.31005.0 \ sos DLL de extensión/ / Establecer un punto de interrupción de controlador de eventos de clic de botón
0:013>! Bpmd SilverlightApplication1 SilverlightApplication1.Page.Button_Click
Se encontró 1 métodos ...
MethodDesc = 03983a30
Adición de puntos de interrupción en espera de ...
0:013> bl
0 e 0428215b 0001 (0001) 0 :****
0:013> g
MODLOAD: 70800000 7080c000 C: Windowssystem32dwmapi.dll/ / Haga clic en el botón y entrar en windbg
Breakpoint hit 0
*** ADVERTENCIA: No se puede verificar suma de comprobación para SilverlightApplication1.dll
! SilverlightApplication1 Button_Click:
04850398 55 push ebp
Integrada de depuración administrada no es compatible con la enumeración de las variables locales.
Ver http://dbg/managed.htm para más detalles.
Procesamiento logró marco no, HRESULT 0x80004005/ / Compare! Hilos y salida de ~ *
0:005>! Hilos / / lista de subprocesos administrados sólo
Threadcount: 3
UnstartedThread: 0
BackgroundThread: 3
PendingThread: 0
DeadThread: 0
Alojado en tiempo de ejecución: sí
PreEmptive GC bloqueo de asig
ID OSID ThreadOBJ Estado del dominio del contexto GC Conde excepción APT
5 1 1b08 043576e0 220 personas de movilidad reducida 04f9f214: 04f9ffe8 06f529d8 0 STA
9 2 928 043689c8 B220 Activado 00000000:00000000 0433c738 0 MTA (Finalizer)
10 3 1220 1e8c 06f509d0 Activado 00000000:00000000 0433c738 0 UKN
0:005> ~ * / / lista de todos los temas
0 Id: 162c.1a28 Suspender: 1 Teb: 7ffde000 descongelado
Inicio: iexplore wWinMainCRTStartup (00a52d79)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
2 Id: 162c.1020 Suspender: 1 Teb: 7ffdc000 descongelado
Inicio: ole32 CRpcThreadCache:: RpcWorkerThreadEntry (76dfe0cc)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
3 Id: 162c.1e00 Suspensión: 1 Teb: 7ffda000 descongelado
Inicio: ntdll TppWaiterpThread (778ab61b)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
4 Id: 162c.1f00 Suspender: 1 Teb: 7ffd9000 descongelado
Inicio: MSVCRT _endthreadex 0 x6f (76162da8)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
. 5 Id: 162c.1b08 Suspender: 1 Teb: 7ffd8000 descongelado
Inicio: IEFRAME CTabWindow:: _TabWindowThreadProc (6c163fdb)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
7 Id: 162c.170 Suspensión: 1 Teb: 7ffd6000 descongelado
Inicio: npctrl CXcpDispatcher:: DispatcherTimerCallback (6a6d16f4)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
8 Id: 162c.1cd0 Suspender: 1 Teb: 7ffd5000 descongelado
Inicio: coreclr DebuggerRCThread:: ThreadProcStatic (640eb5cd)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
9 Id: 162c.928 Suspensión: 1 Teb: 7ffd4000 descongelado
Inicio: coreclr Tema:: intermediateThreadProc (63fb8e4f)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
10 Id: Suspender 162c.1e8c: 1 Teb: 7ffd3000 descongelado
Inicio: coreclr Tema:: intermediateThreadProc (63fb8e4f)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
11 Id: Suspender 162c.1fac: 1 Teb: 7ffaf000 descongelado
Inicio: agcore CMulticoreTaskScheduler:: WorkerThread (660547de)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
12 Id: 162c.1b78 Suspensión: 1 Teb: 7ffae000 descongelado
Inicio: agcore CMulticoreTaskScheduler:: WorkerThread (660547de)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
13 Id: 162c.1d18 Suspensión: 1 Teb: 7ffdb000 descongelado
Inicio: ntdll RtlUserThreadStart (778c9a78)
Prioridad: 0 clase de prioridad: 32 Afinidad: 3
Procesamiento logró marco no, HRESULT 0x80004005
Integrada de depuración administrada no es compatible con la enumeración de las variables locales.
Ver http://dbg/managed.htm para más detalles./ / Compare! Salida clrstack & k
0:005>! Clrstack-p / / lista de marcos de pila sólo logró
OS Id Tema: 0x1b08 (5)
ESP EIP
0450f850 04800398 SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
PARÁMETROS:
este (<CLR reg>) = 0x04f59c78
remitente (<CLR reg>) = 0x04f5b948
e (0x0450f854) = 0x04f9f1f00450f858 048cde0d System.Windows.Controls.Primitives.ButtonBase.OnClick ()
PARÁMETROS:
este (0x0450f864) = 0x04f5b9480450f870 048cdd10 System.Windows.Controls.Button.OnClick ()
PARÁMETROS:
este = <sin <datos0450f880 048cdc3d
PARÁMETROS:
este (0x0450f884) = 0x04f5b948
e (0x0450f880) = 0x04f9f1880450f890 048cdba1 System.Windows.Controls.Control.OnMouseLeftButtonUp (System.Windows.Controls.Control, System.EventArgs)
PARÁMETROS:
ctrl = <sin <datos
e = <sin <datos0450f8a0 0483a0e7 MS.Internal.JoltHelper.FireEvent (IntPtr, IntPtr, Int32, System.String)
PARÁMETROS:
unmanagedObj (0x0450f8f8) = 0x04355c48
unmanagedObjArgs (0x0450f8f4) = 0x0707be00
argsTypeIndex (0x0450f928) = 0x000000a9
eventName (0x0450f924) = 0x04f9f16c0450fa74 63ef17b0 [GCFrame: 0450fa74]
0450fb30 63ef17b0 [ContextTransitionFrame: 0450fb30]
0450fc28 63ef17b0 [UMThkCallFrame: 0450fc28]
0:005> KP / / lista de todos los marcos de pila
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
ADVERTENCIA: No IP del marco en cualquier módulo conocido. Cuadros siguientes puede estar equivocado.
0450fc10 6607e0db 0x4c513d2
0450fc70 6a6dc1fc agcore CCoreServices:: CLR_FireEvent 0 x183
Procesamiento logró marco no, HRESULT 0x80004005
0450fc84 6a6dc187 npctrl CommonBrowserHost:: 0 CLR_FireEvent X2A
0450fcc8 6a6dc048 npctrl CControlBase:: ScriptCallback 0 x366
0450fd08 6a6dc013 npctrl CXcpDispatcher:: 0 OnScriptCallback Xee
! 0450fd14 6a6dbfef npctrl CXcpDispatcher:: 0 OnWindowMessage X3A
0450fd2c 7731f8d2 npctrl CXcpDispatcher:: WindowProc 0 x7f
0450fd58 7731f794 USER32! InternalCallWinProc 0 x23
0450fdd0 77320008 USER32! UserCallWinProcCheckWow 0 x14b/ / Examinar montón, tenga en cuenta la conveniencia de la pila de fuertes objeto con tipo,
/ / En lugar de bytes sin escribir como en un montón nativo
0:005>! Dumpheap tipo SilverlightApplication1
Dirección Tamaño MT
04f4f31c 046336b0 36
04f59c78 04633a6c 68
un total de 2 objetos
Estadísticas:
MT Conde TotalSize Nombre de clase
046336b0 1 36 SilverlightApplication1.App
04633a6c 1 68 SilverlightApplication1.Page
Un total de 2 objetos
0:005>! Hacer 04f59c78
Nombre: SilverlightApplication1.Page
MethodTable: 04633a6c
EEClass: 0463196c
Tamaño: 68 (0x44) bytes
Archivo: Versión SilverlightApplication1, = 1.0.0.0, Culture = neutral, PublicKeyToken = null
Campos:
Campo MT Offset Tipo VT Nombre de valor Attr
047d97a0 40000dc 4 ... al.NativeResource 0 instancia 04f5a5c0 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0 instancia 00000000 _valueTable
047d9874 40000e0 c ... 0 reTypeEventHelper ejemplo 04f5a600 _coreTypeEventHelper
04856388 40000e3 10 ... bject, mscorlib]] 0 instancia 04f79a58 _treeChildren
047ae03c 40000e4 14 ... rnal.IManagedPeer 0 instancia 00000000 _treeParent
03d50a90 40000dd 2B0 System.IntPtr una compartida StaticNativePointer estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
03d50f28 40000de 2B4 System.Boolean un _isCoreCreate estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 0 <<
047ae384 40000e1 8 .... 0 DependencyObject compartida PropertyReferencesHolder estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f489b8 <<
04661618 40000e2 c ... flection.Assembly 0 estática compartida _executingAssembly
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
047d0b90 40000f1 18 ... rs.AutomationPeer 0 instancia 00000000 m_pAP
047d7404 40000e8 10 ... ependencyProperty 0 compartida OpacityProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4a8 <<
047d7404 40000e9 14 ... ependencyProperty 0 compartida ClipProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4d0 <<
047d7404 40000ea 18 ... ependencyProperty 0 compartida RenderTransformProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4f8 <<
047d7404 40000eb 1c ... ependencyProperty 0 compartida OpacityMaskProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a50c <<
047d7404 40000ec 20 ... ependencyProperty 0 compartida RenderTransformOriginProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a534 <<
047d7404 40000ed 24 ... ependencyProperty 0 compartida IsHitTestVisibleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a548 <<
047d7404 40000ee 28 ... ependencyProperty 0 compartida VisibilityProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a570 <<
047d7404 40000ef 2c ... ependencyProperty 0 compartida RenderSizeProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a598 <<
047d7404 40000f0 30 ... ependencyProperty 0 compartida UseLayoutRoundingProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a5ac <<
00000000 4000108 00000000 1c 0 instancia BindingValidationError
04856ae4 400010a 20 ... angedEventHandler 0 instancia 00000000 DPChanged
048bc8a4 400010b 24 ... angedEventHandler 0 instancia 00000000 DataContextChanged
03d50f28 400010c 2c System.Boolean un ejemplo 0 _isDataContextBound
0481f43c 400010d 28 ... angedEventHandler 0 instancia 00000000 _sizeChanged
047d7404 40000f2 34 ... ependencyProperty 0 compartida TriggersProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a144 <<
047d7404 40000f3 38 ... ependencyProperty 0 compartida ResourcesProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a158 <<
047d7404 40000f4 3c ... ependencyProperty 0 compartida LanguageProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a180 <<
047d7404 40000f5 40 ... ependencyProperty 0 compartida ActualWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a194 <<
047d7404 40000f6 44 ... ependencyProperty 0 compartida ActualHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1a8 <<
047d7404 40000f7 48 ... ependencyProperty 0 compartida WidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1bc <<
047d7404 40000f8 4c ... ependencyProperty 0 compartida HeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1d0 <<
047d7404 40000f9 50 ... ependencyProperty 0 compartida MinWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1e4 <<
047d7404 40000fa 54 ... ependencyProperty 0 compartida MaxWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1f8 <<
047d7404 40000fb 58 ... ependencyProperty 0 compartida MinHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a20c <<
047d7404 40000fc 5c ... ependencyProperty 0 compartida MaxHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a220 <<
047d7404 40000fd 60 ... ependencyProperty 0 compartida HorizontalAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a234 <<
047d7404 40000fe 64 ... ependencyProperty 0 compartida VerticalAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a248 <<
047d7404 40000ff 68 ... ependencyProperty 0 compartida MarginProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a25c <<
047d7404 4000100 6c ... ependencyProperty 0 compartida StyleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a284 <<
047d7404 4000101 70 ... ependencyProperty 0 compartida ParentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2ac <<
047d7404 4000102 74 ... ependencyProperty 0 compartida NameProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2c0 <<
047d7404 4000103 78 ... ependencyProperty 0 compartida TagProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2d4 <<
047d7404 4000104 7c ... ependencyProperty 0 TagInternalProperty estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2fc <<
04851464 4000105 80 ... ndows.RoutedEvent 0 compartida LoadedEvent estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a420 <<
047d7404 4000106 84 ... ependencyProperty 0 compartida CursorProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a440 <<
047d7404 4000107 88 ... ependencyProperty 0 compartida InstanceDelegateStoreProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a468 <<
047d7404 4000109 8c ... ependencyProperty 0 compartida DataContextProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a494 <<
047a1e2c 400010e 90 ... rencia, mscorlib]] 0 _staticDelegateList estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
00000000 4000264 30 ... angedEventHandler 0 instancia 00000000 IsEnabledChanged
047d7404 4000252 430 ... ependencyProperty 0 compartida IsTabStopProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59ce4 <<
047d7404 4000253 434 ... ependencyProperty 0 compartida TabIndexProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59cf8 <<
047d7404 4000254 438 ... ependencyProperty 0 compartida TemplateProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d20 <<
047d7404 4000255 43C ... ependencyProperty 0 compartida TabNavigationProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d48 <<
047d7404 4000256 440 ... ependencyProperty 0 compartida PaddingProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d70 <<
047d7404 4000257 444 ... ependencyProperty 0 compartida HorizontalContentAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d98 <<
047d7404 4000258 448 ... ependencyProperty 0 compartida VerticalContentAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59dc0 <<
047d7404 4000259 44c ... ependencyProperty 0 compartida BackgroundProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59de8 <<
047d7404 400025a 450 ... ependencyProperty 0 compartida BorderBrushProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59dfc <<
047d7404 400025b 454 ... ependencyProperty 0 compartida BorderThicknessProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e10 <<
047d7404 400025c 458 ... ependencyProperty 0 compartida FontSizeProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e24 <<
047d7404 400025d 45c ... ependencyProperty 0 compartida FontFamilyProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e4c <<
047d7404 400025e 460 ... ependencyProperty 0 compartida ForegroundProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e60 <<
047d7404 400025f 464 ... ependencyProperty 0 compartida FontWeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e88 <<
047d7404 468 4000260 ... ependencyProperty 0 compartida FontStyleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59eb0 <<
047d7404 4000261 46c ... ependencyProperty 0 compartida FontStretchProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59ed8 <<
047d7404 4000262 470 ... ependencyProperty 0 compartida DefaultStyleKeyProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59eec <<
047d7404 4000263 474 ... ependencyProperty 0 compartida IsEnabledProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59f00 <<
04857f14 478 4000265 ... System.Windows]] 0 _resourceDictionaryCache estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5cae4 <<
03cf5668 4000266 47c System.Object [] 0 _controlDelgates estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59f14 <<
047d7404 4000501 77c ... ependencyProperty 0 compartida ContentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59cd0 <<
04852580 4000002 34 ... 0 ows.Controls.Grid ejemplo 04f79770 LayoutRoot
04852a10 4000003 38 ... 0 s.Controls.Button ejemplo 04f5b948 botón
03d50f28 4000004 3c System.Boolean un ejemplo un _contentLoaded/ / Dos líneas de arriba es el objeto de botón del objeto de la página
/ / Recordar su dirección 04f5b948, ya que nos vamos a referir a ella más tarde
/ / Se puede obtener la misma dirección para el objeto de botón a través de comandos dumpheap:
0:005>! Dumpheap-mt 04852a10
Dirección Tamaño MT
04f5b948 04852a10 92
total de un objeto
Estadísticas:
MT Conde TotalSize Nombre de clase
04852a10 1 92 System.Windows.Controls.Button
Total de un objeto
0:005>! Gcwhere 04f5b948 / / botón está en Gen0, ya que no hay todavía GC
La dirección del segmento del montón Gen comenzar tamaño asignado
04f5b948 0 0 04f40000 04f41000 04f9fff4 0x5c (92)
0:005>! Gcroot 04f5b948 / / ver quién de retención de referencia para el objeto de botón
Nota: Las raíces se encuentran en las pilas pueden ser falsos positivos. Run "! Gcroot ayuda" para
más info.
/ / Registro de referencias
ecx: Raíz: 04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
edx: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
/ / Pila de referencias
Tema 5 escanear 1b08 OSTHread
ESP: 450f860: Raíz: 04f5ca18 (System.Windows.RoutedEventHandler) ->
04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f864: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f874: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f884: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f894: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f8d4: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
ESP: 450f8e4: Raíz: 04f5b948 (System.Windows.Controls.Button) ->
Tema 9 escanear OSTHread 928
Tema 10 1e8c exploración OSTHread
/ / Dominio referencias
DOMINIO (06F529D8): MANGO (Pinned): 46412f8: Raíz: 05f44260 (System.Object [])->
04f45234 (System.Collections.Generic.List `1 [[System.Object, mscorlib ]])->
04f59980 (System.Object [])->
04f59c78 (SilverlightApplication1.Page) ->
04f5b948 (System.Windows.Controls.Button) ->
Procesamiento logró marco no, HRESULT 0x80004005
Integrada de depuración administrada no es compatible con la enumeración de las variables locales.
Ver http://dbg/managed.htm para más detalles./ / Examinar el objeto de botón se
0:005>! Hacer 04f5b948
Nombre: System.Windows.Controls.Button
MethodTable: 04852a10
EEClass: 0482e5f0
Tamaño: 92 (0x5c) bytes
Archivo: c: \ Archivos de programa \ Microsoft Silverlight \ 2.0.31005.0 \ System.Windows.dll
Campos:
Campo MT Offset Tipo VT Nombre de valor Attr
047d97a0 40000dc 4 ... al.NativeResource 0 instancia 04f5bd58 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0 instancia 04f5c0bc _valueTable
047d9874 40000e0 c ... 0 reTypeEventHelper ejemplo 04f5bd88 _coreTypeEventHelper
04856388 40000e3 10 ... bject, mscorlib]] 0 instancia 04f5bee8 _treeChildren
047ae03c 40000e4 14 ... 0 rnal.IManagedPeer ejemplo _treeParent 04f79770
03d50a90 40000dd 2B0 System.IntPtr una compartida StaticNativePointer estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
03d50f28 40000de 2B4 System.Boolean un _isCoreCreate estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 0 <<
047ae384 40000e1 8 .... 0 DependencyObject compartida PropertyReferencesHolder estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f489b8 <<
04661618 40000e2 c ... flection.Assembly 0 estática compartida _executingAssembly
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
047d0b90 40000f1 18 ... rs.AutomationPeer 0 instancia 00000000 m_pAP
047d7404 40000e8 10 ... ependencyProperty 0 compartida OpacityProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4a8 <<
047d7404 40000e9 14 ... ependencyProperty 0 compartida ClipProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4d0 <<
047d7404 40000ea 18 ... ependencyProperty 0 compartida RenderTransformProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a4f8 <<
047d7404 40000eb 1c ... ependencyProperty 0 compartida OpacityMaskProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a50c <<
047d7404 40000ec 20 ... ependencyProperty 0 compartida RenderTransformOriginProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a534 <<
047d7404 40000ed 24 ... ependencyProperty 0 compartida IsHitTestVisibleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a548 <<
047d7404 40000ee 28 ... ependencyProperty 0 compartida VisibilityProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a570 <<
047d7404 40000ef 2c ... ependencyProperty 0 compartida RenderSizeProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a598 <<
047d7404 40000f0 30 ... ependencyProperty 0 compartida UseLayoutRoundingProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a5ac <<
00000000 4000108 00000000 1c 0 instancia BindingValidationError
04856ae4 400010a 20 ... angedEventHandler 0 instancia 00000000 DPChanged
048bc8a4 400010b 24 ... angedEventHandler 0 instancia 00000000 DataContextChanged
03d50f28 400010c 2c System.Boolean un ejemplo 0 _isDataContextBound
0481f43c 400010d 28 ... angedEventHandler 0 instancia 00000000 _sizeChanged
047d7404 40000f2 34 ... ependencyProperty 0 compartida TriggersProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a144 <<
047d7404 40000f3 38 ... ependencyProperty 0 compartida ResourcesProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a158 <<
047d7404 40000f4 3c ... ependencyProperty 0 compartida LanguageProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a180 <<
047d7404 40000f5 40 ... ependencyProperty 0 compartida ActualWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a194 <<
047d7404 40000f6 44 ... ependencyProperty 0 compartida ActualHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1a8 <<
047d7404 40000f7 48 ... ependencyProperty 0 compartida WidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1bc <<
047d7404 40000f8 4c ... ependencyProperty 0 compartida HeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1d0 <<
047d7404 40000f9 50 ... ependencyProperty 0 compartida MinWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1e4 <<
047d7404 40000fa 54 ... ependencyProperty 0 compartida MaxWidthProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a1f8 <<
047d7404 40000fb 58 ... ependencyProperty 0 compartida MinHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a20c <<
047d7404 40000fc 5c ... ependencyProperty 0 compartida MaxHeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a220 <<
047d7404 40000fd 60 ... ependencyProperty 0 compartida HorizontalAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a234 <<
047d7404 40000fe 64 ... ependencyProperty 0 compartida VerticalAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a248 <<
047d7404 40000ff 68 ... ependencyProperty 0 compartida MarginProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a25c <<
047d7404 4000100 6c ... ependencyProperty 0 compartida StyleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a284 <<
047d7404 4000101 70 ... ependencyProperty 0 compartida ParentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2ac <<
047d7404 4000102 74 ... ependencyProperty 0 compartida NameProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2c0 <<
047d7404 4000103 78 ... ependencyProperty 0 compartida TagProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2d4 <<
047d7404 4000104 7c ... ependencyProperty 0 TagInternalProperty estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a2fc <<
04851464 4000105 80 ... ndows.RoutedEvent 0 compartida LoadedEvent estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a420 <<
047d7404 4000106 84 ... ependencyProperty 0 compartida CursorProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a440 <<
047d7404 4000107 88 ... ependencyProperty 0 compartida InstanceDelegateStoreProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a468 <<
047d7404 4000109 8c ... ependencyProperty 0 compartida DataContextProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5a494 <<
047a1e2c 400010e 90 ... rencia, mscorlib]] 0 _staticDelegateList estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 00000000 <<
00000000 4000264 30 ... angedEventHandler 0 instancia 00000000 IsEnabledChanged
047d7404 4000252 430 ... ependencyProperty 0 compartida IsTabStopProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59ce4 <<
047d7404 4000253 434 ... ependencyProperty 0 compartida TabIndexProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59cf8 <<
047d7404 4000254 438 ... ependencyProperty 0 compartida TemplateProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d20 <<
047d7404 4000255 43C ... ependencyProperty 0 compartida TabNavigationProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d48 <<
047d7404 4000256 440 ... ependencyProperty 0 compartida PaddingProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d70 <<
047d7404 4000257 444 ... ependencyProperty 0 compartida HorizontalContentAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59d98 <<
047d7404 4000258 448 ... ependencyProperty 0 compartida VerticalContentAlignmentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59dc0 <<
047d7404 4000259 44c ... ependencyProperty 0 compartida BackgroundProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59de8 <<
047d7404 400025a 450 ... ependencyProperty 0 compartida BorderBrushProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59dfc <<
047d7404 400025b 454 ... ependencyProperty 0 compartida BorderThicknessProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e10 <<
047d7404 400025c 458 ... ependencyProperty 0 compartida FontSizeProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e24 <<
047d7404 400025d 45c ... ependencyProperty 0 compartida FontFamilyProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e4c <<
047d7404 400025e 460 ... ependencyProperty 0 compartida ForegroundProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e60 <<
047d7404 400025f 464 ... ependencyProperty 0 compartida FontWeightProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59e88 <<
047d7404 468 4000260 ... ependencyProperty 0 compartida FontStyleProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59eb0 <<
047d7404 4000261 46c ... ependencyProperty 0 compartida FontStretchProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59ed8 <<
047d7404 4000262 470 ... ependencyProperty 0 compartida DefaultStyleKeyProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59eec <<
047d7404 4000263 474 ... ependencyProperty 0 compartida IsEnabledProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59f00 <<
04857f14 478 4000265 ... System.Windows]] 0 _resourceDictionaryCache estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5cae4 <<
03cf5668 4000266 47c System.Object [] 0 _controlDelgates estática compartida
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f59f14 <<
03cf44e8 40002b4 34 System.Object 0 instancia 00000000 _treeContent
047d7404 40002b3 530 ... ependencyProperty 0 compartida ContentTemplateProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5bd30 <<
047d7404 534 40002b5 ... ependencyProperty 0 compartida ContentProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5bd44 <<
03d50f28 40005aa 40 System.Boolean un ejemplo un _isLoaded
03d50f28 40005ab 41 System.Boolean un ejemplo un _isMouseCaptured
03d50f28 40005ac 42 System.Boolean un ejemplo 0 _isSpaceKeyDown
03d50f28 40005ad 43 System.Boolean un ejemplo 0 _isMouseLeftButtonDown
04852208 40005ae 48 System.Windows.Point un ejemplo 04f5b990 _mousePosition
048b5f98 40005af 38 ... mation.Storyboard 0 instancia 00000000 _currentState
03d50f28 40005b0 44 System.Boolean un ejemplo 0 _suspendStateChanges
0481fae0 40005b1 3c ... outedEventHandler 0 instancia 04f5ca18 Haga clic en
047d7404 40005a6 7E0 ... ependencyProperty 0 compartida ClickModeProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5ba7c <<
047d7404 40005a7 7e4 ... ependencyProperty 0 compartida IsFocusedProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5bb38 <<
047d7404 40005a8 7e8 ... ependencyProperty 0 compartida IsMouseOverProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5bbd8 <<
047d7404 40005a9 7ec ... ependencyProperty 0 compartida IsPressedProperty estática
> Dominio>: Valor 0433c738: NotInit 06f529d8: 04f5bc40 <</ / Vuelca Button.Click campo (9 líneas arriba)
0:005>! Hacer 04f5ca18
Nombre: System.Windows.RoutedEventHandler
MethodTable: 0481fae0
EEClass: 0482c99c
Tamaño: 32 (0x20) bytes
Archivo: c: \ Archivos de programa \ Microsoft Silverlight \ 2.0.31005.0 \ System.Windows.dll
Campos:
Campo MT Offset Tipo VT Nombre de valor Attr
03cf44e8 40001e0 4 0 System.Object ejemplo 04f59c78 _target
04663c58 40001e1 8 ... ection.MethodBase 0 instancia 00000000 _MethodBase
03d50a90 40001e2 c System.IntPtr un ejemplo 463c08c _methodPtr
03d50a90 40001e3 10 System.IntPtr un ejemplo 0 _methodPtrAux
03cf44e8 40001e4 14 System.Object 0 instancia 00000000 _invocationList
03d50a90 40001e5 18 System.IntPtr un ejemplo 0 _invocationCount0:005>! Do-nofields 04f59c78 / / verificar _target es la página
Nombre: SilverlightApplication1.Page
MethodTable: 04633a6c
EEClass: 0463196c
Tamaño: 68 (0x44) bytes
Archivo: Versión SilverlightApplication1, = 1.0.0.0, Culture = neutral, PublicKeyToken = null/ / Verificar los puntos de _methodPtr Button_Click
/ / Ver cómo están todos vinculados entre sí
0:005> En 463c08c
(0463c08c) SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
0:005> u 463c08c / / jit-ed talón de método
SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs):
0463c08c b8303a6304 mov eax, 4633A30h
0463c091 89ed mov ebp, ebp
0463c093 e900431c00 jmp SilverlightApplication1! Button_Click (04800398)
0463c098 0000 bytes añadir ptr [eax], al
0463c09a 0000 añadir byte ptr [eax], al
0463c09c 0000 añadir byte ptr [eax], al
0463c09e 0000 añadir byte ptr [eax], al
0463c0a0 0000 bytes añadir ptr [eax], al
0:005> u eip / / jit-ed código nativo
! SilverlightApplication1 Button_Click:
04800398 55 push ebp
04800399 8bec mov ebp, esp
0480039b 83ec08 sub 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 je! Button_Click 0 X1a (048003b2)
048003ad e8862a895f llamar coreclr! JIT_DbgIsJustMyCode (64092e38)
0:005>! Ip2md 04800398
MethodDesc: 04633a30
Nombre del método: SilverlightApplication1.Page.Button_Click (System.Object, System.Windows.RoutedEventArgs)
Clase: 0463196c
MethodTable: 04633a6c
mdToken: 06000008
Módulo: 046333b4
IsJitted: sí
CodeAddr: 04800398
0:005>! Dumpil 04633a30
ilAddr = 047e03fe
IL_0000: nop
IL_0001: ret
Cuando tengo tiempo, puedo escribir un blog el funcionamiento interno de CLR, para demostrar cómo los objetos se colocan en la memoria, ¿cómo se llama al método se envían, etc
Conclusión
Este es un post largo, pero que apenas constituyen una visión general de WinDbg y SOS. Buena comprensión de CLR es importante para la codificación y depuración, WinDbg con SOS es la mejor herramienta para explorar CLR y realizar una depuración avanzada. Esperamos que este mensaje corto pero siempre te ayudará a empezar en la exploración de CLR y Silverlight. Gracias!








Comentarios recientes