У меня есть проблема с приложением, которое мы сделали, которое иногда завершается с ошибкой StackOverflowException в некотором коде .NET.
К сожалению, приложение частично неуправляемое и частично управляемое, и по какой-то причине проблема проявляется только на компьютерах, не принадлежащих разработчикам.
Мой текущий план состоит в том, чтобы использовать WINDBG (часть средств отладки для Windows от Microsoft), установленную на компьютерах тестеров, и я могу заставить WINDBG перехватить создание рассматриваемого исключения.
Таким образом, я могу сделать следующее:
sxe ld:mscorlib
g
.loadby sos clr
!stoponexception -create System.StackOverflowException
g
К сожалению, поскольку эта проблема возникает только через день и только после 50+ выполнений, я бы предпочел, чтобы тестировщикам приходилось вводить это полностью или частично при каждом запуске этого приложения.
Я попытался поместить вышеупомянутые команды в текстовый файл и создал ярлык для них следующим образом:
"...\windbg.exe" -c "$<c:\windbg.txt" -o "...\app.exe"
Это запускает отладчик WINDBG, но, к сожалению, не с этим сообщением об ошибке:
0:000> sxe ld:mscorlib
0:000> g
Command file caused an implicit wait
Command file execution failed, HRESULT 0x80004005
"Unspecified error"
Итак, по-видимому, g
не допускается в таком скрипте запуска.
Можно ли делать то, что я хочу? Могу ли я автоматизировать это, или мне просто нужно подготовить пакетный файл или что-то, что использует autohotkey, который делает это?