Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241

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

15.04.2014, 02:03. Показов 1138. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какую пользу несут отладчики и как ими правильно пользоваться? Нет, как его запустить я себе представляю (благо иде помогает), но что я должен там увидеть? Вот у меня падает программа, я запускаю отладчик и вижу такое окно
[]https://www.dropbox.com/s/6t3aus0dbc8eubz/1.png[/]
если нажать f7 то информация изменится
[]https://www.dropbox.com/s/wcryeh74hnyemsl/2.png[/]
Какую полезную информацию я должен увидеть в этих окошках? Как она мне помогает узнать из-за чего падает программа?
Использую стандартный отладчик в Code::Blocks (как я понял это GDB).
Миниатюры
Отладчики - какая от них польза и как ими правильно пользоваться?   Отладчики - какая от них польза и как ими правильно пользоваться?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2014, 02:03
Ответы с готовыми решениями:

Ресурсы проекта. Как ими пользоваться?
Я создал файл 1.html, записал его в папку проекта, создал файл 1.rc и записал туда имя_ресурса тип_ресурса имя_файла: MYHTML HTMLFILE...

Где хранятся настройки и как ими пользоваться?
В Visual Studio есть такая примочка - встроенные настройки приложения. Пытаюсь разобраться как ее использовать для начала мне очень...

Где лежат библиотеки четвёртой версии OpenOffice и как ими пользоваться?
Вообщем, где лежат библиотеки четвёртой версии OpenOffice, как их подключить и как с ними работать

13
4 / 4 / 0
Регистрация: 14.04.2014
Сообщений: 61
15.04.2014, 02:26
А какая у Вас среда программирования?

С помощью отладчика мы можем смотреть значение каждой переменной. Если программа компилится, но ответ не верный, то отладчик нам в помощь!
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
15.04.2014, 08:39
OrmaJever, судя по выводу, программа собрана без отладочной информации. Следовательно, эти окошки пока что ничего полезного не несут. Пересобери с отладкой, ключ -g, и повтори заново.

Цитата Сообщение от vikichocolated Посмотреть сообщение
А какая у Вас среда программирования?
Он жеж написал, что CodeBlocks
0
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 12:29  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Следовательно, эти окошки пока что ничего полезного не несут. Пересобери с отладкой, ключ -g, и повтори заново.
но ведь... я же...
Code
1
2
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"
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
15.04.2014, 12:46
Но ведь же!
Цитата Сообщение от OrmaJever Посмотреть сообщение
g++.exe -o Debug\test.exe Debug\test.o -s
Сначала добавил, потом все удалил

Добавлено через 8 минут
Короче, ключ -s убери - это strip, он удаляет все лишнее из бинарника, в том числе и отладку
Верный признак бинарника с отладкой - раcпухший размер.
1
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 14:21  [ТС]
Цитата Сообщение от 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 если можно снова выделить память и скопировать в неё всё? Или я что-то не так делаю?
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
15.04.2014, 15:33
OrmaJever, а можно весь код посмотреть тогда? Не похоже, что проблема именно в realloc.
0
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 15:47  [ТС]
блин, проблема решена, подвёл компилятор! метод описан как
C++
1
string &string::operator<<( const char c )
но я забыл написать return *this и на строке str << 'a' << 'b' второй вызов рушил всё т.к.
Почему компилятор не указал что я забыл return если он явно указан в объявлении метода?
0
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
15.04.2014, 15:50
ясно
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
15.04.2014, 16:07
Цитата Сообщение от OrmaJever Посмотреть сообщение
Почему компилятор не указал что я забыл return если он явно указан в объявлении метода?
Должно было быть предупреждение.
0
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
15.04.2014, 16:34
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
0
Заблокирован
15.04.2014, 16:45
Пффффффф А как ты софт - то свои запускаешь? Ты что сделал софт, ни разу его не собрав и не протестировав, собрал его сразу в Release и отправил заказчику?

99% запуска софта во время разработки идёт под отладкой
0
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
15.04.2014, 18:39  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение
собрал его сразу в Release и отправил заказчику?
да, сразу в гугл, майкрософт отсылаю, других же вариантов нету, например писать софт для себя?
Цитата Сообщение от dimcoder Посмотреть сообщение
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
Цитата Сообщение от dimcoder Посмотреть сообщение
Если предупреждения нету, можно добавить -Wall как одну из команд для компилятора.
Только хотел написать что у меня стоял -Wall, но ошибок не было, как сразу вспомнил про -s и пошёл глянуть нет ли чего нибудь ещё лишнего, и сразу обратил внимание на -w (Inhibit all warning message), убрав которые варнинги появились. Ключи для компилятора страшное дело, я думал от них только польза
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
15.04.2014, 19:03
Цитата Сообщение от OrmaJever Посмотреть сообщение
Ключи для компилятора страшное дело, я думал от них только польза
Конечно польза. От молотка тоже польза, но и по пальцам можно заехать. Это я к тому, что всякий инструмент требует изучения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2014, 19:03
Помогаю со студенческими работами здесь

Какая польза от классов?
Смотрел видео уроки по класам, там идьот опис обектов их свойств. Но я не понимаю какая польза от класов эсли у меня эсть кнопка и поле...

Польза указателей и потребновсть в них
Помогите,пож-ста,начинаю изучать С++ и хочу понять: 1. для чего все-таки полезны указатели и можно ли без них обойтись? 2.Говорят, что...

Какая практическая польза в использовании envoy?
Всем привет читаю использование envoy https://laravel.com/docs/5.7/envoy и не пойму в чем его преимущество и в каких случаях его...

Необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы
Здравствуйте! Мне необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы. Я нашел вариант решения...

Для чего вообще нужен полиморфизм. Какая польза от наследования
Здравствуйте всем. Кто зашел в эту ветку форума. Вопрос такой. Есть ООП и один из трех столпов - полиморфизм. Суть полиморфизма ясна и для...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru