visual ver ventana tutorial temas studio para mejores locales las iconos extensiones español configurar code visual-studio visual-studio-2008 debugging timestamp output-window

ver - ¿Ventana de depuración de Visual Studio 2008 para mostrar la marca de tiempo?



visual studio code español (3)

Como el texto de la ventana de salida es de solo lectura una vez que se escribe, no hay una manera fácil de hacer exactamente lo que quiere hacer. Sin embargo, es fácil hacer algo similar: agregar una línea de marca de tiempo después de escribir un texto nuevo en la ventana de salida. Esto hará que la ventana de salida sea mucho más desordenada, pero obtendrá sus tiempos.

Así es como funcionaría esto: Primero, cree un Complemento de Visual Studio o Macro que enganche el evento PaneUpdated del panel activo de la Ventana de Outlook. (Consulte este hilo para saber cómo hacer esto con un enfoque Macro). Asegúrese de verificar, en el controlador de eventos, ese pane.Name == "Debug" e ignorar otros paneles. En segundo lugar, cuando detecte nuevo texto en el panel de salida de depuración, agregue una línea de marca de tiempo, como esta:

public void AddTimestamp(DTE2 dte) { // Retrieve and show the Output window. OutputWindow outWin = dte.ToolWindows.OutputWindow; pane = outWin.OutputWindowPanes.Item("Debug"); } catch { pane = outWin.OutputWindowPanes.Add("Debug"); } pane.OutputString("[timestamp: " + DateTime.Now.ToString() + "]/n"); }

También es posible preemitir una marca de tiempo a cada línea, pero es mucho más difícil. No puede cambiar el texto ya en la ventana Salida (es de solo lectura), pero puede borrar la ventana y agregar texto. Por lo tanto, podría usar el mismo enfoque de controlador de eventos anterior para detectar cambios de texto, pero en lugar de agregar podría copiar el texto actual, anteponer marcas de tiempo a cualquier línea que no tenga marcas de tiempo, borrar la ventana y volver a agregar el ahora -with-timestamps texto. El problema con esto es el rendimiento una vez que su ventana de salida se vuelve grande. Por lo tanto, es probable que deba implementar un tipo de "estampación diferida" que borre e inserte en segundo plano, para evitar matar a su IDE cuando (como es habitual) se emitan 100 líneas de salida de depuración en poco tiempo. . Además, cuando borra y vuelve a agregar, si actualmente está seleccionando texto en la ventana de salida, su selección se pierde.

Personalmente, me gustaría hacer las cosas fáciles y anexar líneas de marca de tiempo en lugar del enfoque de pre-pend más difícil. Como las cosas al final de la línea son difíciles de ver sin desplazarse, probablemente me asegure de que haya una nueva línea antes de la marca de tiempo, de modo que el usuario vea cada lote de una o más líneas de salida seguidas de una línea de marca de tiempo.

Es posible que haya una forma de enganchar la ventana de salida antes de que se muestre el texto, pero no pude encontrar ningún punto de extensibilidad en las API de Extensibilidad de VS.

Una idea más: siempre puede pasar su propia ventana de herramientas, por ejemplo, "Salida de depuración de Ivan", que escucha los eventos provenientes de la ventana de salida real, y hace eco de nuevas líneas (con marcas de tiempo) en su propia ventana de herramientas. Esta es probablemente la opción más difícil, pero debería hacer exactamente lo que desea.

Quiero poder ver una marca de tiempo al comienzo de cada traza en la ventana de depuración en Visual Studio.

[Time stamp here] The thread ''Win32 Thread'' (0xcd0) has exited with code 0 (0x0). [Time stamp here] => CLR ProvideAssembly: AppDomainId: 1, Ref: ''msvcm90d...

Ejemplo de esto es la aplicación sysinternals - DebugView . El problema es que no puedo tener la depuración de Visual Studio y escuchar con DebugView al mismo tiempo, y no me siento cómodo con agregar la marca de tiempo manualmente a mis trazadores.


Estaba buscando la misma funcionalidad. A un colega mío se le ocurrió la macro $TICK en el campo de mensaje, imprimiendo los ticks de cpu ''actuales''.

Eche un vistazo a estos consejos de Simon Chapman , también.