crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Отладка, Способы
barabaka
  опции профиля:
сообщение 17.11.2011, 1:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 40
Регистрация: 14.11.2011
Из: Санкт-Петербург
Пользователь №: 2999

Спасибо сказали: 1 раз(а)




Репутация:   2  


Знаете ли вы какие-нибудь эффективные приёмы отладки для кода со множеством указателей и их массивами? Как узнать где именно свалилась программа, без пошаговой отладки? В коде туча указателей и массивов указателей
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.11.2011, 6:28
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


1) убрать все точки останова
2) запустить на отладку

--------------------

а ещё лучше проектировать код так, чтобы таких проблем не было :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 17.11.2011, 7:19
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Как вариант ставить ассерты.
Но в основном только грамотное проектирование...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 17.11.2011, 9:52
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


intel'овские тулзы для отладки. они отлавливают подобную хрень только так.
ставятся и под никсы и под венду. только под венду типа платно (но есть торренты :) )

под линь можно качнуть Intel® Parallel Studio XE 2011 for Linux:
http://software.intel.com/en-us/articles/n...tware-download/
ставится отдельным пакетом, там и компилятор icc, и средства отладки. запускает отладку в Eclipse(ставит его сам, от системы нужен только установленный пакет поддержки java JRE), позволяет профилировать процессы, искать утечки и многое другое.

под венду искать Intel Parallel Studio в торрентах, с ключами. она интегрируется в студию очень удобно. удобный интерфейс, практически всё понятно без документации.

P.S. тулзы не отменяют грамотное проектирование и использование умных указателей :)

Сообщение отредактировал Iron Bug - 17.11.2011, 9:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
barabaka
  опции профиля:
сообщение 17.11.2011, 13:36
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 40
Регистрация: 14.11.2011
Из: Санкт-Петербург
Пользователь №: 2999

Спасибо сказали: 1 раз(а)




Репутация:   2  


Вот!А это интересно.Надо попробовать.

Цитата(barabaka @ 17.11.2011, 14:33) *
Вот!А это интересно.Надо попробовать.


То,что написано в QT тоже можно отлаживать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 17.11.2011, 13:47
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(barabaka @ 17.11.2011, 16:36) *
То,что написано в QT тоже можно отлаживать?


если скомпилировать Qt с помощью icc. я так понимаю, что это вполне возможно.
впрочем, gcc-шные библиотеки под линём совместимы по внешним вызовам с icc(только надо уточнять совместимость по версиям, она обычно чуть запаздывает от последних версий gcc), так что если не углубляться внутрь самих библиотек, то можно отлаживать только свой код без всяких дополнительных усилий.

Сообщение отредактировал Iron Bug - 17.11.2011, 13:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 17.11.2011, 14:31
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Цитата(barabaka @ 17.11.2011, 2:50) *
Как узнать где именно свалилась программа, без пошаговой отладки? В коде туча указателей и массивов указателей

Рефакторинг.
Подозреваю, что там еще и указатели "голые", чисто сишные. Выбросить код с "тучей указателей и массивов указателей" в помойку и написать заново.

Опыт показывает, что получится быстрее, чем все это хозяйство отлаживать, раз уж нет ясности, "где свалилась программа". А свалиться она может в любом месте, если хоть один указатель из этой тучи испорчен. Причем, место, "где свалилось", может ровно никак быть логически не связано с местом, "где портится" - просто стрельба по памяти... При другом запуске - свалится в другом месте.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
barabaka
  опции профиля:
сообщение 17.11.2011, 17:21
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 40
Регистрация: 14.11.2011
Из: Санкт-Петербург
Пользователь №: 2999

Спасибо сказали: 1 раз(а)




Репутация:   2  


Выкинуть и переписать конечно здорово,но времени нет и надо отладить что есть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 4:22