Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: burunduk от Январь 30, 2007, 12:01



Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: burunduk от Январь 30, 2007, 12:01
Вот бывает такое у меня

ASSERT failure in QVector<T>::operator[]: "index out of range", file c:\qt\4.1.4
\include\qtcore\../../src/corelib/tools/qvector.h, line 219

и пойди найди точку в программе откудова это вызвано было :(
ставить qDebug() с выводом сообщений слишком утомительно, есть другие способы ?


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: Tonal от Январь 30, 2007, 15:13
Используй итераторы вместо индексов - и не будет таких ошибок. ;-)


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: burunduk от Январь 31, 2007, 10:23
cпасибо за совет :)
ну а всё-таки если другая всплывёт ошибка подобного рода ?


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: Tonal от Январь 31, 2007, 11:23
Ну, можно из под отладчика запустить и стек посмотреть после assert-а.
А в общем случае решения нет, т.к. для разных OS, компиляторов, настроек всё может изрядно различаться.


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: burunduk от Январь 31, 2007, 11:57
а без отладчика ?
я ним не пользуюсь


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: Tonal от Январь 31, 2007, 13:57
Цитата: "Tonal"
А в общем случае решения нет, т.к. для разных OS, компиляторов, настроек всё может изрядно различаться.


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: burunduk от Январь 31, 2007, 15:32
мне и не нужно для общего, хотя бы для моего :)
win2000 + qt 4.1.4 + msvc.net 2003


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: goer от Февраль 01, 2007, 13:12
В студии есть Call Stack. Окно стека вызовов можно вывести на экран запустив программу и нажавCtrl-Alt-C или Debug/Windows/Call Stack. Когда произойдет эксепшн нажмешь прервать и по стеку найдешь точку выброса исключения.


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: QCasper от Февраль 01, 2007, 13:32
Цитата: "burunduk"
а без отладчика ?
я ним не пользуюсь


Как вы до сих пор живете? :)


Название: Как распечатать стек и узнать источник ошибки ?
Отправлено: burunduk от Февраль 02, 2007, 09:54
я и без студии живу :)
меня интересует распечатка этого стека допустим в лог-файл, т.е. программа уже у пользователей на этапе тестирования