can3p (can3p) wrote,
can3p
can3p

  • Music:

Боги отладки

Прославляю разработчиков отладочных утилит под linux! Уж вот кого коснулось божественное откровение!

Пишу программу, лезут баги. Язык си - он отличный и дружественный, но как и linux тщательно отбирает друзей. Не следишь за своими манерами, сразу засираешь память там, где не надо, и программа валится в кору. От логических ошибог отлично спасает дебаггер gdb, а вернее графическая морда к нему - Nemiver. Морда делает свое дело хорошо - содержимое переменных видно, программу можно прокрутить по шагам и отследить все действия. Но нетривиальные ошибки работы с памятью с ее помощью не поймешь.

Сижу, пишу программу, использую zlib. И раз - валится при сжатии памяти. Валится, и все! Дебаггер показывает, что все работает, все нормально, но валится. И быть бы моему горю безграничным, если бы не очередной релиз среды разработки Gnome/gtk+ приложений Anjuta. Читаю список изменений, обращает на себя строчка:
* Fixed lots of memory leaks (thanks valgrind)

Гугление дало ссылку на сайт - http://valgrind.org/
Принцип программы следующий: она запукскается в качестве супервизора и отслеживает все запросы программы на выделение памяти и все ее попытки эту память изменить. В случае недопустимых действий это все документируется и выводится в консоль. В моем случае valgrind указал на внешне безобидную строчку с memcpy, в которой и закралась ошибка. Исправил все за секунды, перед этим дебажил целый вечер. Обожаю этих людей!
Tags: linux, programming
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments