Форум программистов, компьютерный форум CyberForum.ru

Отладчики - какая от них польза и как ими правильно пользоваться? - C++

Восстановить пароль Регистрация
 
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 02:03     Отладчики - какая от них польза и как ими правильно пользоваться? #1
Какую пользу несут отладчики и как ими правильно пользоваться? Нет, как его запустить я себе представляю (благо иде помогает), но что я должен там увидеть? Вот у меня падает программа, я запускаю отладчик и вижу такое окно
[]https://www.dropbox.com/s/6t3aus0dbc8eubz/1.png[/]
если нажать f7 то информация изменится
[]https://www.dropbox.com/s/wcryeh74hnyemsl/2.png[/]
Какую полезную информацию я должен увидеть в этих окошках? Как она мне помогает узнать из-за чего падает программа?
Использую стандартный отладчик в Code::Blocks (как я понял это GDB).
Миниатюры
Отладчики - какая от них польза и как ими правильно пользоваться?   Отладчики - какая от них польза и как ими правильно пользоваться?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 02:03     Отладчики - какая от них польза и как ими правильно пользоваться?
Посмотрите здесь:

Если в нем есть цифра a и b, то определить, какая из них расположена в числе правее C++
C++ Как правильно пользоваться функцией strtok
Подскажите хороший компилятор, как его установить, как им пользоваться? C++
C++ Две точки заданы своими координатами на плоскости.определить,какая из них находится ближе к началу координат
C++ Какова польза лямбда выражений
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vikichocolated
4 / 4 / 0
Регистрация: 14.04.2014
Сообщений: 60
15.04.2014, 02:26     Отладчики - какая от них польза и как ими правильно пользоваться? #2
А какая у Вас среда программирования?

С помощью отладчика мы можем смотреть значение каждой переменной. Если программа компилится, но ответ не верный, то отладчик нам в помощь!
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,617
15.04.2014, 08:39     Отладчики - какая от них польза и как ими правильно пользоваться? #3
OrmaJever, судя по выводу, программа собрана без отладочной информации. Следовательно, эти окошки пока что ничего полезного не несут. Пересобери с отладкой, ключ -g, и повтори заново.

Цитата Сообщение от vikichocolated Посмотреть сообщение
А какая у Вас среда программирования?
Он жеж написал, что CodeBlocks
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 12:29  [ТС]     Отладчики - какая от них польза и как ими правильно пользоваться? #4
Цитата Сообщение от DrOffset Посмотреть сообщение
Следовательно, эти окошки пока что ничего полезного не несут. Пересобери с отладкой, ключ -g, и повтори заново.
но ведь... я же...
Код
g++.exe -Wall  -g  -Weffc++ -std=c++11 -w -Wextra -Wall -DWIN32    -c D:\Dropbox\Sources\C++\_\test\test.cpp -o Debug\test.o
g++.exe  -o Debug\test.exe Debug\test.o   -s -static  "C:\Program Files (x86)\CodeBlocks\MinGW\i686-w64-mingw32\lib\libwsock32.a"
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,617
15.04.2014, 12:46     Отладчики - какая от них польза и как ими правильно пользоваться? #5
Но ведь же!
Цитата Сообщение от OrmaJever Посмотреть сообщение
g++.exe -o Debug\test.exe Debug\test.o -s
Сначала добавил, потом все удалил

Добавлено через 8 минут
Короче, ключ -s убери - это strip, он удаляет все лишнее из бинарника, в том числе и отладку
Верный признак бинарника с отладкой - раcпухший размер.
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 14:21  [ТС]     Отладчики - какая от них польза и как ими правильно пользоваться? #6
Цитата Сообщение от DrOffset Посмотреть сообщение
Сначала добавил, потом все удалил
да да да, давно ещё ставил эту опцию не зная побочных эффектов)) Теперь стало куда понятнее, тыкает на строчку падения и информации стало больше. Спасибо.

Добавлено через 1 час 21 минуту
Что бы не создавать новую тему напишу сюда. Падает на функции realloc.
Я выделил память 6 байт (5 символов и 0х00), затем мне нужно добавить к строке ещё один символ, я пишу так
C++
1
2
3
str = (char *)realloc(str, length+2); // length содержит длину строки без \0, поэтому +2
str[length++] = c;
str[length] = '\0';
программа благополучно падает, и вот здесь у меня непонятки с realloc, после её использования то что было в str должно в ней и остаться? Ведь именно в этом её суть в отличии от malloc?
Вот такой код работает
C++
1
2
3
4
5
    char *newStr = (char *)realloc(str, length+2);
    memcpy(newStr, str, length);
    newStr[length++] = c;
    newStr[length] = '\0';
    str = newStr;
Но ведь зачем тогда realloc если можно снова выделить память и скопировать в неё всё? Или я что-то не так делаю?
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,617
15.04.2014, 15:33     Отладчики - какая от них польза и как ими правильно пользоваться? #7
OrmaJever, а можно весь код посмотреть тогда? Не похоже, что проблема именно в realloc.
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 15:47  [ТС]     Отладчики - какая от них польза и как ими правильно пользоваться? #8
блин, проблема решена, подвёл компилятор! метод описан как
C++
1
string &string::operator<<( const char c )
но я забыл написать return *this и на строке str << 'a' << 'b' второй вызов рушил всё т.к.
Почему компилятор не указал что я забыл return если он явно указан в объявлении метода?
UserAK
70 / 70 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
15.04.2014, 15:50     Отладчики - какая от них польза и как ими правильно пользоваться? #9
ясно
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,617
15.04.2014, 16:07     Отладчики - какая от них польза и как ими правильно пользоваться? #10
Цитата Сообщение от OrmaJever Посмотреть сообщение
Почему компилятор не указал что я забыл return если он явно указан в объявлении метода?
Должно было быть предупреждение.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
15.04.2014, 16:34     Отладчики - какая от них польза и как ими правильно пользоваться? #11
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
newbie666
Заблокирован
15.04.2014, 16:45     Отладчики - какая от них польза и как ими правильно пользоваться? #12
Пффффффф А как ты софт - то свои запускаешь? Ты что сделал софт, ни разу его не собрав и не протестировав, собрал его сразу в Release и отправил заказчику?

99% запуска софта во время разработки идёт под отладкой
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 18:39  [ТС]     Отладчики - какая от них польза и как ими правильно пользоваться? #13
Цитата Сообщение от newbie666 Посмотреть сообщение
собрал его сразу в Release и отправил заказчику?
да, сразу в гугл, майкрософт отсылаю, других же вариантов нету, например писать софт для себя?
Цитата Сообщение от dimcoder Посмотреть сообщение
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
Цитата Сообщение от dimcoder Посмотреть сообщение
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
Только хотел написать что у меня стоял -Wall, но ошибок не было, как сразу вспомнил про -s и пошёл глянуть нет ли чего нибудь ещё лишнего, и сразу обратил внимание на -w (Inhibit all warning message), убрав которые варнинги появились. Ключи для компилятора страшное дело, я думал от них только польза
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 19:03     Отладчики - какая от них польза и как ими правильно пользоваться?
Еще ссылки по теме:

Три точки заданы координатами. Определить, какая из них расположена ближе к началу координат C++
Необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы C++
Как правильно пользоваться typedef для декларации типа указателя на функцию? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,617
15.04.2014, 19:03     Отладчики - какая от них польза и как ими правильно пользоваться? #14
Цитата Сообщение от OrmaJever Посмотреть сообщение
Ключи для компилятора страшное дело, я думал от них только польза
Конечно польза. От молотка тоже польза, но и по пальцам можно заехать. Это я к тому, что всякий инструмент требует изучения
Yandex
Объявления
15.04.2014, 19:03     Отладчики - какая от них польза и как ими правильно пользоваться?
Ответ Создать тему
Опции темы

Текущее время: 22:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru