![]() |
|
Модераторы: bsa |
![]()
|
|
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Вопрос не совсем технический.
У меня возникают трудности с отладкой программ, вот например, сейчас программа на 500 строк и происходят ошибки с сегментацией памяти (видимо с указателями). Какие советы можете дать по отладке больших программ? Есть ли какие-то отличительные признаки и.т.д. |
|||
|
||||
| icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
Если под виндой и используешь Microsoft компилятор, то учись отлаживать WinDbg. Хоть отладить можно чем угодно. |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
То что вы указали - это такая маленькая софтинка я когда в форме за день могу больше 1000 строк кода накатать от руки... ну да ладно это лирика При отладке больших программ очень рекомендую поблочную отладку, т.е. вы написали какой-то вполне законченный блок, потом проверяете как он работает, с выводом всех данных и проверкой того что там выдаёт программа и как она там что обрабатывает, часто внутри блока можно тоже что-то отключать(т.е. комментировать), что поможет отладить, ну в общем просто пробуйте и пытайтесь, потом найдёте вполне оптимальный для вас алгоритм отладки программ. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Alexey91, какая ОС ? какой компилятор ? какая IDE ?
В принципе, это всё не так и важно, т.к. способ, предложенный DarkProg будет работать где угодно, но при помощи IDE можно отловить немалое количество ошибок.
не пойму, какой смысл, если можно использовать студийный ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Каждому блоку по тесту |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
Alexey91, помните героиню фильма "Москва слезам не верит"? Ее назначили директором большого завода, и на вопрос корреспондента, как она может руководить 2000 работников, следует ответ: "трудно руководить тремя. научишься, дальше число не имеет значения".
Также и с программами. Разработка сверху вниз и применение принципа "разделяй и властвуй". Не стоит писать сразу 500 строк кода и потом мучительно их отлаживать. Продумайте структуру программы, разделите её на части - функции, классы. Сделайте каркас приложения, реализующий основную логику. Вызываемые функции пока не реализуйте, сделайте "заглушки" - пустые функции. Отлаживайте каркас. Дальше реализуйте функции, заменив заглушки. Для сложных функций/классов можно создать отдельные тестовые приложения. Для компонентного тестирования есть специальные средства. Добавлено через 1 минуту и 6 секунд Вопрос то как раз технический, в плоскости программной инженерии. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Советую по крайней мере на время обучения совсем положить болт на отладчик. Тренеруйтесь писать без него. Потому что когда программа вырастет до 50к строк, отладчик уже мало поможет.
Для того, чтобы отлавливать ошибки доступа к памяти, существуют специальные отладчики памяти, под линуксом - valgrind. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
||||
|
||||
| icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
borisbn
Смотря что отлаживать ... WinDbg более гибкий , если надо отладить больше чем пару циклов.. |
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 5 Всего: 10 |
icecrashldr, вы бы еще софтайс предложили.
Это сообщение отредактировал(а) Abyx - 14.9.2010, 21:02 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Гибкий то он конечно гибкий, но уж слишком неудобный - явно для истинных ценителей WinDbg
Был на PDP11 такой редактор - teco, с командной строкой. И команды задавались в ней буквами. Среди пользователей этого чуда природы была популярна такая игра - набить ему в командную строку свою фамилию и угадать, что он сделает WinDbg в этом отношении его достойный преемник NB. VI до teco далеко |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Спасибо
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |