Pergunta

Tenho algumas estruturas de dados massivas que estão causando problemas em meu aplicativo VB.NET.Depois que uma exceção é lançada e o aplicativo pausa, gostaria de executar alguns códigos como:

For Each o As MyClass In myObjects
  If o.property = "value" Then debug.print(o.id)
Next

para diagnosticar o problema.

O problema é que a janela imediata não me permite executar loops, e a coleção myObjects contém muitos objetos para eu encontrar manualmente o ofensivo que desejo.

Como posso encontrar este objeto enquanto o depurador está pausado?Isso ou algo semelhante é possível no IDE .NET?

Foi útil?

Solução

Você deve ser capaz de usar a janela do modo Imediato no IDE para executar comandos como esse, mas os dados devem estar disponíveis no escopo atual do depurador.

Outras dicas

Não, você não pode fazer isso diretamente do IDE.Infelizmente, a maneira mais fácil de contornar isso é interromper a depuração, escrever seu loop dentro de um método estático público que retorna o objeto que você está procurando, recompilar e executar, e então chamar esse método estático público da janela Immediate ou Watch.

Outro truque mais imediato (mas irritante) é escrever "? myObjects" na janela Immediate, copiar, colar o resultado no bloco de notas e usar a pesquisa de texto (Ctrl + F) no bloco de notas para encontrar seu objeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top