Как проверить на утечки памяти в модулях расширения Хитрости?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

5
задан Omer Zak 17 September 2008 в 01:28
поделиться

1 ответ

У Вас есть пара опций. Нужно записать файл подавлений для valgrind, который выключает создание отчетов материала, что Вы не продолжаете работать. Python имеет такой файл, например: http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp

Если valgrind не нравится Ваша установка, другая возможность использует libmudflap; Вы компилируете свою программу с gcc -fmudflap -lmudflap, и получающийся код оснащен для отладки указателя. Описанный в gcc документах, и здесь: http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging

6
ответ дан 14 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: