Список файлов, которые были изменены в commit:
git diff --name-only SHA1^ SHA1
Это не показывает сообщения журнала, дополнительные строки новой строки или любые другие помехи. Это работает для любой фиксации, а не только для текущей. Не знаю, почему еще не было довольно , поэтому я добавляю его.
второй valgrind... и я добавлю электрический забор .
В университете, когда я делал большинство вещей под Unix Солярис, я использовал gdb.
Однако я пошел бы с valgrind в соответствии с Linux.
Болезненный, но если необходимо было использовать тот..
я рекомендовал бы комплект DevPartner BoundsChecker .. это - то, что люди на моем рабочем месте используют с этой целью. Заплаченный n собственный.. не бесплатное программное обеспечение.
линт (очень похожий инструмент с открытым исходным кодом, названный шплинт )
Valgrind в соответствии с Linux довольно хорош; у меня нет опыта в соответствии с Windows с этим.
У меня была минимальная любовь к любым детекторам утечки памяти. Обычно существует слишком много ложных положительных сторон для них, чтобы иметь любое применение. Я рекомендовал бы эти два, как принадлежат наименее навязчивое:
Дедушка этих инструментов является коммерческим, закрытым исходным кодом инструмент Purify , который был продан IBM, и затем Parasoft UNICOM
Обеспечивают ++ (инструментарий исходного кода), и valgrind (открытый исходный код) являются двумя другими настоящими конкурентами.
Мелочи: исходный автор Очищает, Reed Hastings, переходил к найденному Netflix.
123.1231231229999988908297926818176540649...
Однако при выполнении умножения Вы добираетесь 15159.303447561417273129
..... использование String
, конструктор для BigDecimal
действительно приводит к корректному ответу. bigSqrt(new BigDecimal("15159.303447561417273129")) = 123.1231231230000000000000000000000000...
я предполагаю, что это - проблема с Double
к BigDecimal
удобный метод конструкции а не sqrt алгоритма.
– haventchecked
27 January 2015 в 00:50
Я буду второй valgrind как внешний инструмент для утечек памяти.
, Но, для большинства проблем, которые я должен был решить, я всегда использовал внутренне созданные инструменты. Иногда внешние инструменты имеют слишком много служебное или являются слишком сложными для установки.
, Почему использование уже записанный код, когда можно записать собственное:)
я шучу, но иногда Вам нужно что-то простое, и это быстрее для записи его самим. Обычно я просто заменяю вызовы к malloc () и свободный () с функциями, которые отслеживают то, кто выделяет что. Большинство моих проблем, кажется, кто-то, забыл освобождать, и это помогает решить ту проблему.
Это действительно зависит от того, где утечка, и если бы Вы знали, что, тогда Вам не были бы нужны никакие инструменты. Но если у Вас есть некоторое понимание, где Вы думаете, что оно пропускает, затем вставило Ваш собственный инструментарий и видит, помогает ли оно Вам.
Для отладки Win32 утечек памяти у меня был очень хороший опыт с простой "кучей" Отладки CRT, которая стала lib с Визуальным C.
В Отладочная сборка malloc (и др.) переопределена как _malloc_dbg (и др.) и существуют другие вызовы для получения результатов, которые все не определены, если _DEBUG не установлен. Это настраивает все виды граничной защиты на "куче" и позволяет Вам diplay результаты в любое время.
у меня было несколько ложных положительных сторон, когда я обвинял стандартные программы некоторого времени, которые смешали с выделениями времени выполнения библиотеки, пока я не обнаружил _CRT_BLOCK.
я должен был произвести первый DOS, затем консоль Win32 и сервисы, которые будут работать навсегда. Насколько я знаю, что нет никаких утечек памяти, и в по крайней мере одном помещают код, выполненный в течение двух лет, необслуживаемых перед монитором на отказавшем ПК (хотя ПК был прекрасен!).
Если у Вас есть деньги: Рациональная IBM Очищает , чрезвычайно мощная утечка памяти промышленной силы и детектор повреждения памяти для C/C++. Существует для Windows, Соляриса и Linux. Если Вы только для Linux и хотите дешевое решение, пойдите для Valgrind.
В Windows я использовал Визуальный Детектор Утечки . Интегрируется с VC ++, простой в использовании (просто включают заголовок и устанавливают LIB для нахождения lib), открытый исходный код, бесплатный использовать FTW.
Брызговик для gcc! Это на самом деле компилирует проверки в исполняемый файл. Просто добавьте
-fmudflap -lmudflap
к Вашим флагам gcc.
Также стоящий использования, если Вы находитесь на Linux с помощью glibc, встроенный код "кучи" отладки. Чтобы использовать его, свяжитесь с -lmcheck или определить (и экспорт) MALLOC_CHECK _ переменная среды со значением 1, 2, или 3. glibc руководство предоставляет больше информации.
Этот режим является самым полезным для обнаружения дважды - освобождает, и это часто находит записи вне выделенной области памяти при выполнении свободного. Я не думаю, что это сообщает, пропустил память.
BigDecimal.ZERO
вместо того, чтобы воссоздать колесо. Кроме того,doubleValue()
вызов побеждает всю цель этого осуществления путем отбрасывания произвольной точности. – EntangledLoops 2 October 2015 в 14:22