Хочу поставить условный breakpoint, который сработает, если программа съела слишком много памяти. Попытался прописать такое в условие:
GC.GetTotalMemory(false) > 4000000000
Но получилось, что программа просто перестаёт работать - визуально похоже на какой-нибудь дедлок. Хотя, один раз из четырёх запусков получил такое:
Как правильно сделать такой breakpoint? Или даже просто, как заставить VS остановить (но не завершить) исполнение при достижении некого объёма потребляемой памяти?
На всякий случай отмечу, что breakpoint находится внутри lock-секции.
Традиционный способ с if и безусловным breakpoint'ом вполне сработал:
if (GC.GetTotalMemory(false) > 4000000000)
offset = offset; // Тут breakpoint
PS: Но почему-то после этого программа перестала выжирать все 32 гига подкачки и стала вполне укладываться в традиционные 3. o_O
Продвижение своими сайтами как стратегия роста и независимости