Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
1

Gdb - debug c++

24.09.2018, 15:26. Показов 807. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
доброй день
решил освоить gdb и столкнулся с тем что он не находит ошибку
работаю на винде 10, но это должно и с виндой работать
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Windows.h>
void Bug()
{
    int n = 3;
    int* pn = &n;
    delete pn; //ошибка
}
 
int main(int argc, char *argv[])
{
    Bug();
    system("pause");
    return 0;
}
сначала запустил
Bash
1
g++ -g main.cpp -o bug
получил bug.exe
потом запустил
Bash
1
2
gdb bug.exe
(gdb) run
получил результат
Bash
1
2
3
4
5
6
7
8
Starting program: e:\QtProject\ShleeProProg\ShleeQtConsole/bug.exe
[New Thread 15920.0x3cbc]
[New Thread 15920.0x33b8]
[New Thread 15920.0x3d3c]
[New Thread 15920.0x2920]
Для продолжения нажмите любую клавишу . . .
[Inferior 1 (process 15920) exited normally]
(gdb)
а должна быть ошибка

Добавлено через 14 минут
а дальше надо бы разобраться в стаке, но выводить нечего
Bash
1
2
(gdb) where
No stack.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2018, 15:26
Ответы с готовыми решениями:

gdb + .so
Есть динамическая библиотека, программа, к которой она линкуется. Включаю отладчик и понимаю, что...

gdb и Netbeans
Решил попробовать Netbeans. Настроил по этой доке Но когда запускаю дебаг, Netbeans выдает...

GDB ошибка
Пытаюсь дебажить программу с помощью GDB, но при попытке спуска в конструктор (step) выдаёт ошибку,...

Проблема с gdb.
Всем доброго времени суток! Пишу я одну программулину, в которой используется такая функция: ...

4
18902 / 9860 / 2410
Регистрация: 30.01.2014
Сообщений: 17,306
24.09.2018, 15:43 2
Цитата Сообщение от Leningradeс Посмотреть сообщение
не находит ошибку
Поздравляю, вы познакомились с UB.
Undefined behaviour вовсе не обязано приводить к наблюдаемой ошибке. Неопределенность, она на то и неопределенность, что может скрыто находиться в программе многие годы
1
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
26.09.2018, 16:15  [ТС] 3
Цитата Сообщение от DrOffset Посмотреть сообщение
Поздравляю
Спасибо
А какие ошибки можно найти с помощью GDB? При условии что я VS15 юзаю и он практически все ошибки фиксит, предоставленную тоже, при компиляции, кроме утечек памяти вроде.
0
18902 / 9860 / 2410
Регистрация: 30.01.2014
Сообщений: 17,306
26.09.2018, 18:36 4
Leningradeс, спокойно можно найти любую ошибку, так же как ив отладчике VS. В частности, лично у меня не возникло никаких проблем при отлове ошибке в вашем коде выше.
Просто, видимо, вам в определенном смысле "повезло".
См. скрин.
Gdb - debug c++
0
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,937
27.09.2018, 09:49 5
Цитата Сообщение от Leningradeс Посмотреть сообщение
А какие ошибки можно найти с помощью GDB?
Отладчик сам ничего не ищет и не исправляет.
Отладчик - это инструмент управления исполнением программы и исследования ее состояния в процессе исполнения.
Он лишь помогает вам разобраться, что происходит, и найти причину ошибки.
А будет ли это ошибка аварийного завершения, потому что не ту память удаляем, или у вас просто какое-то окошко не открывается, а должно, - это уже зависит от вашей конкретной программы.

Собственно и компилятор сам по себе ничего не исправляет. Скорее здесь оптимизатор (как часть компилятора) перестарался - просто удалена часть кода, потому что переменные n и pn никем нигде не используются. Любопытно взглянуть на результирующий ассемблерный код.
0
27.09.2018, 09:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2018, 09:49
Помогаю со студенческими работами здесь

Clion, Ubuntu 12.04, GDB
Здравствуйте, извините за туповатый вопрос.Проблема вот в чем: При установке Clion на Ubuntu 12.04...

Очень медленно работает отладка в QtCreator (отладчик gdb) на 64 битной ОС
Привет! Может кто-нибудь сталкивался с такой проблемой. Перешел на 64 битную ОС и отладка из под...

Это нормально, что работа программы под gdb отличается от её обычной работы?
Всем привет! Имеется программа. Вот начало её работы в обычном режиме: tree size: 8 depth: 6...

Debug vs. Release
Доброго дня! Подскажите момент: Debian + Eclise CDT C++ Компилирую для Debug, использую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru