J'ai un problème avec une application que nous avons provoquée qui plante parfois avec une exception StackOverflowException dans du code .NET.
Malheureusement, l'application est en partie non gérée et en partie gérée, et pour une raison quelconque, le problème ne se pose que sur des machines autres que des développeurs.
Mon plan actuel consiste à utiliser WINDBG (une partie des outils de débogage pour Windows de Microsoft), installé sur les machines de testeurs, afin que WINDBG intercepte la création de l'exception en question.
En tant que tel, je peux faire ce qui suit:
sxe ld:mscorlib
g
.loadby sos clr
!stoponexception -create System.StackOverflowException
g
Malheureusement, comme ce problème ne se présente que tous les deux jours, et toutes les 50+ exécutions ou plus, je préfère éviter que les testeurs soient obligés de saisir tout ou partie de cela à chaque démarrage de cette application.
J'ai essayé de placer les commandes ci-dessus dans un fichier texte et de leur créer un raccourci comme ceci:
"...\windbg.exe" -c "$<c:\windbg.txt" -o "...\app.exe"
Cela lance le débogueur WINDBG, mais échoue malheureusement avec le message d'erreur suivant:
0:000> sxe ld:mscorlib
0:000> g
Command file caused an implicit wait
Command file execution failed, HRESULT 0x80004005
"Unspecified error"
Donc, apparemment, g
n'est pas autorisé dans un tel script de démarrage.
Est-il possible de faire ce que je veux? Puis-je automatiser ceci ou dois-je simplement préparer un fichier de commandes ou quelque chose utilisant autohotkey pour le faire?