Russian Qt Forum
Ноябрь 24, 2024, 03:50
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Падает программа. Как понять где ошибка?
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Падает программа. Как понять где ошибка? (Прочитано 12676 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Падает программа. Как понять где ошибка?
«
Ответ #15 :
Август 26, 2015, 10:03 »
А что за массивы вы используете?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Падает программа. Как понять где ошибка?
«
Ответ #16 :
Август 26, 2015, 10:04 »
Локализуй примерное место сбоя, добавь туда вывод в лог всяких данных (текущие потоки, состояние переменных, указатели), постеенно сужай место поиска и найдешь то, что тебе нужно. Да, это может занять время, но что поделаешь. Я тут на работе 2 дня в удаленной отладке недавно провел, пока наконец не нашел место сбоя.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qtkoder777
Частый гость
Offline
Сообщений: 245
Re: Падает программа. Как понять где ошибка?
«
Ответ #17 :
Август 31, 2015, 16:03 »
valgrind поставил, выводит кучу мусора, есть утечки памяти и ошибки "invalid read", похоже всё в Qt.
Но из-за утечек же падать не должно?
И под Linux не падает, только под Windows.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Падает программа. Как понять где ошибка?
«
Ответ #18 :
Август 31, 2015, 16:30 »
Под виндой сборка под 32 бита?
Вывод валгринда прикрепи к сообщению, посмотрим, что у тебя там.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qtkoder777
Частый гость
Offline
Сообщений: 245
Re: Падает программа. Как понять где ошибка?
«
Ответ #19 :
Август 31, 2015, 16:54 »
Цитата: Пантер от Август 31, 2015, 16:30
Под виндой сборка под 32 бита?
Вывод валгринда прикрепи к сообщению, посмотрим, что у тебя там.
Сколько бит не знаю, падает не на всех компах. Под valgrind выполнил две операции, вызывающие падение, но под линукс не падает.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Падает программа. Как понять где ошибка?
«
Ответ #20 :
Август 31, 2015, 16:57 »
У вас чтение за пределами массива
Цитировать
==6251== Invalid read of size 4
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Падает программа. Как понять где ошибка?
«
Ответ #21 :
Август 31, 2015, 16:58 »
Завтра гляну.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Падает программа. Как понять где ошибка?
«
Ответ #22 :
Сентябрь 01, 2015, 08:04 »
Что-то у меня такое ощущение, что у тебя с моделями проблема. Могу ошибаться. Код можешь показать?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Падает программа. Как понять где ошибка?
«
Ответ #23 :
Сентябрь 01, 2015, 16:21 »
Падение на закрывающей скобке - испорчены данные в стеке. Сохранённый в стеке адрес изменён на недопустимый, и при обращении к нему происходит GPF. Дополнительная наводка:
Цитата: __Heaven__ от Август 31, 2015, 16:57
У вас чтение за пределами массива
Цитировать
==6251== Invalid read of size 4
qtkoder777
, ищите автоматический (находящийся в стеке) массив, в который что-то записывается - очевидно происходит запись за его границами, которая и портит стек.
Пакостность в том, что запись не туда может происходить не в самой функции, которая падает, а в вызванных из неё, неизвестно на каком уровне вложенности.
Записан
2^7-1 == 127, задумайтесь...
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...