J'ai un problème avec une application que nous avons créée et qui se bloque parfois avec une StackOverflowException dans certains codes .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 manifeste que sur les machines non développées.
Mon plan actuel est d'utiliser WINDBG (qui fait partie des Debugging Tools for Windows de Microsoft), installé sur les machines des testeurs, je peux faire en sorte que WINDBG piège 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, étant donné que ce problème n'apparaît qu'un jour sur deux, et seulement toutes les 50 exécutions environ, je préférerais éviter que les testeurs aient à saisir tout ou partie de ces informations à chaque fois qu'ils lancent cette application.
J'ai essayé de placer les commandes ci-dessus dans un fichier texte et de créer un raccourci pour elles comme ceci :
"...\windbg.exe" -c "$<c:\windbg.txt" -o "...\app.exe"
Cela lance le débogueur WINDBG, mais échoue malheureusement avec ce message d'erreur :
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 cela, ou dois-je simplement préparer un fichier batch ou quelque chose qui utilise autohotkey qui fait cela ?