7.5.1. Использование Electric Fence

7.5.1. Использование Electric Fence

Одна из наиболее примечательных особенностей Electric Fence заключается в простоте ее использования. Нужно всего лишь скомпоновать свою программу с библиотекой libefence.а, указав -lefence в качестве последнего аргумента. В результате код будет готов к отладке. Давайте посмотрим, что происходит при запуске тестовой программы с применением Electric Fence.

$ ./broken

Electric Fence 2.2.0 Copyright (C) 1987 - 1999 Bruce Perens.

1: 12345

Segmentation fault (core dumped)

Ошибка сегментации (дамп ядра сброшен)

Хотя Electric Fence непосредственно не указывает на место, где произошла ошибка, проблема становится намного очевидней. Можно легко и точно определить проблемный участок, запустив программу под управлением отладчика, например gdb. Для того чтоб gdb смог точно указать на проблему, соберите программу с отладочной информацией, указав для gcc флажок -g, затем запустите gdb и зададите имя исполняемого файла, который нужно отладить. Когда программы уничтожается, gdb точно показывает, в какой строке произошел сбой.

Вот как выглядит описанная процедура.

$ gcc -ggdb -Wall -о broken broken.с -lefence

$ gdb broken

...

(gdb) run

Starting program: /usr/src/lad/code/broken

Electric Fence 2.2.0 Copyright (C) 1987 - 1999 Bruce Perens.

1: 12345

Program received signal SIGSEGV, Segmentation fault.

Программа получила сигнал SIGSEGV, ошибка сегментации.

0х007948с6 in strcpy() from /lib/tls/libc.so.6

(gdb) where

#0 0x007948c6 in strcpy() from /lib/tls/libc.so.6

#1 0x08048566 in broken() at broken.c:21

#2 0x08048638 in main() at broken.c:47

(gdb)

Благодаря Electric Fence и gdb, становится понятно, что в строке 21 файла broken.с имеется ошибка, связанная со вторым вызовом strcpy().

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

7.5. Electric Fence

Из книги автора

7.5. Electric Fence Следующее средство, которое мы рассмотрим — это Electric Fence (доступен на ftp://sunsite.unc.edu/pub/Linux/devel/lang/c и во многих дистрибутивах). Несмотря на то что Electric Fence не обнаруживает утечки памяти, он очень помогает в изоляции переполнений буфера. Каждый современный компьютер


14.7.1. Использование ftw()

Из книги автора

14.7.1. Использование ftw() #include <ftw.h>int ftw(const char *dir, ftwFunctionPointer callback, int depth);Функция ftw() начинает с каталога dir и вызывает указанную в callback функцию для каждого файла в этом каталоге и его подкаталогах. Функция вызывается для всех типов файлов, включая символические ссылки и


Использование tar

Из книги автора

Использование tar Утилита tar — одна из самых популярных программ, используемых для резервного копирования в системах Linux и UNIX. Она объединяет несколько файлов в один файл архива, что упрощает передачу информации по сети и сохранение ее на резервном носителе. Название


Использование ip

Из книги автора

Использование ip Программа ip предназначена для управления таблицами маршрутизации, в частности, правилами, определенными в них. Выполнение данной программы зависит от значений некоторых подопций опции IP: Advanced Router. Программа ip вызывается следующим образом:ip команда [list |


Использование tc

Из книги автора

Использование tc Утилита tc использует средства ядра, которые активизируются посредством опций меню QoS and/or Fair Queueing. Данная программа управляет исходящим трафиком, в частности, не позволяет одному типу трафика монополизировать пропускную способность линии связи. В


Использование VPN

Из книги автора

Использование VPN VPN позволяет расширить локальную сеть за счет взаимодействия с внешними компьютерами. Очевидно, что если локальная сеть подключена к Internet, внешние пользователи могут обращаться к ней без VPN. Однако VPN имеет ряд преимуществ перед обычными типами сетевого


3.1.3. Использование yum

Из книги автора

3.1.3. Использование yum Управлением пакетами в Fedora занимается программа yum (Yellow dog Updater Modified) - это и есть менеджер пакетов. С его помощью вы можете устанавливать и удалять пакеты, а также обновлять уже установленные пакеты.Программа yum не обладает графическим интерфейсом,


3.3.3. Использование RPM

Из книги автора

3.3.3. Использование RPM Программа RPM не имеет графического интерфейса, поэтому запускать ее нужно в консоли или в терминале (команда меню Приложения?Системные?Терминал). Формат вызова программы rpm следующий:rpm [-опции] [пакеты]Напомню, что установка программ - это привилегия


Fence (Линия выбора)

Из книги автора

Fence (Линия выбора) Режим Fence (Линия выбора) напоминает режим Crossing Polygon (Пересечение с многоугольником), но в отличие от него последнее звено ломаной линии, замыкающей границу многоугольника, отсутствует. В этом режиме выделяются только те объекты, которые пересекаются


А.2.5. Библиотека Electric Fence

Из книги автора

А.2.5. Библиотека Electric Fence Библиотека Electric Fence, написанная Брюсом Перензом (Bruce Perens), останавливает выполнение программы в той строке, где происходит обращение к памяти за пределами выделенной области. Это единственное средство, позволяющее выявить неправильные операции


Использование

Из книги автора

Использование Легкий вариант, Instant Saxon представляет собой утилиту командной строки saxon.exe, с помощью которой можно применять преобразования к XML-документам:saxon.exe -о result.xml source.xml stylesheet.xslПолная версия Saxon (включающая также исходный код) тоже может использоваться как утилита


Использование

Из книги автора

Использование Как и любой другой XSLT-процессор, написанный на Java, xt можно без труда использовать в Java-проектах. Помимо этого, xt можно использовать в качестве сервлета и из командной строки.Сервлет-версия xt реализована в классе com.jclark.xsl.sax.XSLservlet и может выполняться на


Использование

Из книги автора

Использование Прежде всего, как C-библиотеку, libxslt можно подключать к собственным модулям посредством документированного API, а также при помощи разработанных врапперов использовать в Perl и Python-программах. Поскольку по степени совместимости и разработанности libxslt явно


29.4.3. Использование SSI

Из книги автора

29.4.3. Использование SSI Использование сценариев cgi, открывающих Web–страницы с целью отображения небольшого количества сведений, не всегда является оправданным. Например, была отображена дата, но также был создан сценарий cgi, который тоже отображает дату. Не лучше ли было бы