Так это он изобрёл шуршалку для денег? (Ходят слухи, что банкомат может выдать деньги быстро и почти беззвучно, но в него встроен специальный механизм для шуршания, потому что это нравится людям).
Слышал ещё одну историю, возможно, вариант этой же. Там тоже программист сделал ошибку на много миллионов долларов. Когда его вызвали к начальнику, он зашёл на трясущихся ногах и сразу спросил:
— Меня увольняют?
На что начальник с удивлением ответил:
— Ещё чего! Твоё обучение только что стоило нам несколько миллионов долларов! Иди, работай.
P. S. Сам лично несколько лет назад делал косяк, приведший к несколькочасовому простою очень крупного финансового учреждения, так что представляю себе, чтО это. Но меня даже к начальству не вызвали. Урок усвоил, да.
Кажется, дело не этом, а в том, что вода при превращении в лёд увеличивает объём. А т.к. мы все в основном из воды, то при замерзании клетки разрываются изнутри.
Под Windows для поиска утечек памяти есть утилиты gflags и umdh из Debugging Tools for Windows. Сначала делаете:
gflags -i program.exe +ust
Подставив вместо program.exe имя своей программы, естественно. Это включает для program.exe логирование выделения/удаления блоков в куче со стеком. Это нужно делать ТОЛЬКО перед поиском утечек, т.к. всё будет работать существенно медленней. Потом запускаете программу и выполняете:
umdh -pn:program.exe -f:dump1.txt
Делается первый слепок памяти (все выделенные блоки со стеками). Дали поработать, поутекать памяти, потом делаете:
В файл diff.txt выводятся все блоки памяти (количество, объём, стек), сгруппированные по стеку, которые либо был выделены и удалены, либо выделены до первого вызова umdh и удалены до второго. В конце нужно не забыть сделать:
Взрослые хакеры, стыд вам и срам!
— Меня увольняют?
На что начальник с удивлением ответил:
— Ещё чего! Твоё обучение только что стоило нам несколько миллионов долларов! Иди, работай.
P. S. Сам лично несколько лет назад делал косяк, приведший к несколькочасовому простою очень крупного финансового учреждения, так что представляю себе, чтО это. Но меня даже к начальству не вызвали. Урок усвоил, да.
Никто не знает.
gflags -i program.exe +ust
Подставив вместо program.exe имя своей программы, естественно. Это включает для program.exe логирование выделения/удаления блоков в куче со стеком. Это нужно делать ТОЛЬКО перед поиском утечек, т.к. всё будет работать существенно медленней. Потом запускаете программу и выполняете:
umdh -pn:program.exe -f:dump1.txt
Делается первый слепок памяти (все выделенные блоки со стеками). Дали поработать, поутекать памяти, потом делаете:
umdh -pn:program.exe -f:dump2.txt
umdh dump1.txt dump2.txt > diff.txt
В файл diff.txt выводятся все блоки памяти (количество, объём, стек), сгруппированные по стеку, которые либо был выделены и удалены, либо выделены до первого вызова umdh и удалены до второго. В конце нужно не забыть сделать:
gflags -i program.exe -ust