stas: (Default)
stas ([personal profile] stas) wrote2006-05-29 02:24 pm
Entry tags:

valgrind.exe

Люди добрые, скажите - а существует аналог valgrind под win32? Т.е. чтобы умел ловить memory leaks и memory corruption, причем без изменения кода программы? Я тут попытался поработать с insure++, но пока от него кроме unhandled exception ничего не добился, а суппорт их на вопрос "как запускать без instrumentation?" отвечает "мы, конечно, могли бы попробовать, но давай мы тебе лучше обьясним, как перекомпилировать твой код с instrumentation". А это не совсем то, что надо...

[identity profile] mopexod.livejournal.com 2006-05-29 11:30 am (UTC)(link)
А Bounds Checker еще жив? Когда-то был такой, работал и с инструментацией кода и без.

[identity profile] ex-ex-zhuzh.livejournal.com 2006-05-29 11:37 am (UTC)(link)
rational purify

[identity profile] gera2.livejournal.com 2006-05-29 11:59 am (UTC)(link)
По-моему ни purify ни bounds checker не умеют без instrumentaion

[identity profile] gera2.livejournal.com 2006-05-29 12:04 pm (UTC)(link)
хотя нет. на счёт purify я ошибся

[identity profile] ivar.livejournal.com 2006-05-29 04:18 pm (UTC)(link)
Вобщем, да, по моему опыту, шанс что BC или Purify отловят что-то _сложное_ и с инструментацией не очень велик; без нее он падает еще на порядок. По крайней мере, за последние несколько лет все попытки изловить что-то кокретное с помощью BC обычно кончались тем, что находилось что-то другое, однако совсем не то, что искалось :-) Rollbacks, diffs & code reduction...
Если много exceptions, до запуска попробуй убрать отладку всех неинтересуюших тебя модулей; если не помогает, то можно попробовать закомментировать как можно больше нерелевантного/стабильного кода. Такая петрушка не только с Insure++ - у нас иногда день уходит, что бы продукт с BC завести, ничего не поделаешь.

[identity profile] ex-ex-zhuzh.livejournal.com 2006-05-29 09:04 pm (UTC)(link)
насколько я помню, инструментирует at link time. может быть, умеет и at load time, не уверен.

[identity profile] svetasmirnova.livejournal.com 2006-05-29 01:00 pm (UTC)(link)
В руководстве "Debugging Tools for Windows" (http://www.microsoft.com/whdc/DevTools/Debugging) сказано, что memory leaks они ищут, но насколько это удобно, я не знаю.

[identity profile] beldmit.livejournal.com 2006-05-30 08:45 am (UTC)(link)
Под юниксами есть libefence. Как раз для этого. Есть ли под винды - не знаю. Не инструментирует, надо линковать с соответствующей библиотекой. Очень хорошо ловит выходы за границы массива.

[identity profile] cmm.livejournal.com 2006-05-30 09:50 am (UTC)(link)
а ещё лучше кушает память, посему годится только для отладки небольших программ.

[identity profile] quieres.livejournal.com 2006-05-29 01:01 pm (UTC)(link)
Простите за глупый вопрос: отладочная сишная библиотека сама ведь отслеживает кучу, так? Если так, то почему бы не собрать отладочную версию?

Там уже написали:

[identity profile] igorm.livejournal.com 2006-05-29 04:43 pm (UTC)(link)
Purify.

[identity profile] gdy.livejournal.com 2006-05-29 10:07 pm (UTC)(link)
AQTime

[identity profile] oxfv.livejournal.com 2006-05-30 08:05 am (UTC)(link)
Есть MemoryValidator, есть GlowCode. Последним я пользовался именно для этих целей, вполне успешно, хотя программа, слинкованная одновременно с несколькими версиями рантайма (don't ask) его малость сводит с ума. Первый вроде как тоже умеет, но не дружит со статически линкованной MFC (может, теперь уже дружит?).