Eu tenho um problema com um aplicativo que fizemos, que às vezes falha com um StackOverflowException em algum código .NET.
Infelizmente, o aplicativo é parcialmente não gerenciado e parcialmente gerenciado e, por algum motivo, o problema só se exibe em máquinas que não são de desenvolvedor.
Meu plano atual é usar o WINDBG (parte das Ferramentas de Depuração para Windows da Microsoft), instalado nas máquinas do testador, posso obter o WINDBG para interceptar a criação da exceção em questão.
Como tal, posso fazer o seguinte:
sxe ld:mscorlib
g
.loadby sos clr
!stoponexception -create System.StackOverflowException
g
Infelizmente, como esse problema só ocorre a cada dois dias, e apenas a cada 50 ou mais execuções, eu prefiro evitar que os testadores tenham que digitar tudo ou parte disso toda vez que iniciarem esse aplicativo. / p>
Eu tentei colocar os comandos acima em um arquivo de texto e criei um atalho para eles assim:
"...\windbg.exe" -c "$<c:\windbg.txt" -o "...\app.exe"
Isso inicia o depurador WINDBG, mas infelizmente falha com esta mensagem de erro:
0:000> sxe ld:mscorlib
0:000> g
Command file caused an implicit wait
Command file execution failed, HRESULT 0x80004005
"Unspecified error"
Portanto, aparentemente, g
não é permitido nesse script de inicialização.
É possível fazer o que eu quero? Posso automatizar isso, ou preciso apenas preparar um arquivo de lote ou algo que use o autochamada que faz isso?