Electric Fence (или eFence ) — отладчик памяти, написанный Брюсом Перенсом . Он состоит из библиотеки, которую программисты могут подключать к своему коду для переопределения функций управления памятью стандартной библиотеки C. eFence вызывает сбой программы при возникновении ошибки памяти, поэтому отладчик можно использовать для проверки кода, вызвавшего ошибку.
Electric Fence предназначен для поиска двух распространенных типов ошибок программирования:
В обоих случаях Electric Fence немедленно прерывает работу ошибочной программы из-за ошибки сегментации. Обычно эти две ошибки вызывают повреждение кучи, которое проявляется гораздо позже, обычно не связанными способами. Таким образом, Electric Fence помогает программистам находить точное местоположение ошибок программирования памяти.
Electric Fence выделяет не менее двух страниц (часто 8 КБ) для каждого выделенного буфера. В некоторых режимах работы он не освобождает освобожденные буферы. Таким образом, Electric Fence значительно увеличивает требования к памяти отлаживаемых программ. Это приводит к рекомендации, что программисты должны применять Electric Fence к меньшим программам, когда это возможно, и никогда не должны оставлять Electric Fence связанным с производственным кодом.
Electric Fence — это свободное программное обеспечение , распространяемое по лицензии GNU General Public License .