Em algum momento você já quis saber o que seu programa estava fazendo há 5 minutos? Já se perguntou quais arquivos ele estava abrindo no lugar daqueles que você gostaria que ele abrisse? Isso agora é possível com o Visual Studio 2010.
Durante o keynote Lang.NET (aos 10 minutos), a Microsoft apresentou as funcionalidades de eventos de diagnóstico e depuração do histórico presentes no Visual Studio 2010. Por meio delas, os desenvolvedores podem ver não só o estado atual da aplicação, mas também os eventos que levaram a esse estado.
A janela de eventos de diagnóstico mostra eventos importantes na execução de uma aplicação. Dentre esses eventos, inclui-se exceções, acesso a arquivos e eventos de depuração. É verdade que isso poderia ser feito manualmente usando comandos Debug.Write ou através de macros em breakpoints. Mas a lista integrada permite que se filtre o tipo de evento ou a thread na qual o evento ocorreu.
Essa funcionalidade, que é boa por si só, é acompanhada pela capacidade de depuração do histórico. Quando ligada, o Visual Studio captura stack frames e as variáveis associadas a eles. Isso permite que desenvolvedores voltem alguns passos do programa para descobrir por que algo ocorreu da maneira que ocorreu.
Para salvar essa informação, o estado da aplicação é armazenado no disco. Por padrão, somente tipos chave são armazenados, mas os desenvolvedores podem configurar para que seja gravado literalmente cada parâmetro, objeto e variável global. Somente as variáveis locais não podem ser armazenadas.
Para mais informações, consulte esse vídeo discutindo a depuração do histórico no Channel 9. Essa funcionalidade deve ser incluída na próxima versão beta 1.