LINUX.ORG.RU

Под дебагом работает!


0

1

Все привет, обнаружил ошибку у себя в программе, программа просто при запуске зависала, решил открыть в gdb, но почему-то она работает очень хорошо, без ошибок!! а если открыть не в gdb иногда работает, а иногда нет, и в чем же проблема может быть???

★★★

Навскидку, многопоточность или работа с памятью.

vurdalak ★★★★★
()

Неинициализированная(ые) переменная(ые)

annulen ★★★★★
()

Очевидно, проблемы с памятью, где-то что-то затер или где-то что-то не проинициализировал. Попробуй core dump сгенери и открой дебагером.

Dead ★★★★
()

Я бы под валгриндом запустил. Он всегда увидит соломинку в твоём глазу, но ему можно.

d ★★★★
()

подключайся gdb к уже зависшей проге и смотри bt. Скорее всего где-то дедлок

mashina ★★★★★
()

рейс кондишн, например

lazyklimm ★★★★★
()

Где ошибка я нашел, а как исправить фиг знает, вообще не понимаю в чем прикол. Создаю шрифт через FTGL в начале программы:

Theme->Font = ftglCreatePixmapFont (Theme->Data["general"].Func["font"][0].Str.c_str());

и в конце программы удаляю его:

ftglDestroyFont (Font);

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

Int64 ★★★
() автор топика
Ответ на: комментарий от Int64

Theme->Data[«general»].Func[«font»][0].Str.c_str()

ты 100% уверен, что эта строка никогда не вызовет обращения к несуществующему индексу в массиве?

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

уверен, там специальное сообщение тогда выводится если нету индекса, и я проверял без него, просто вводил строковую константу:

ftglCreatePixmapFont ("fonts/DejaVuSans.ttf");

Int64 ★★★
() автор топика

в общем нашел я баг, и он мега тупой: т.к. я компилирую сейчас под виндовс, то оно и понятно что так коряво работает )) при закрытии приложения, почему-то приложение какое-то время остается в процессах, и только через некоторое время закрывается, или не закрывается вообще! именно это и послужило причиной бага, при создании шрифта, почему-то снова создать шрифт, ссылаясь на этот файл не получается, и программа зависает.

Int64 ★★★
() автор топика
Ответ на: комментарий от Int64

в общем всем спасибо, разобрался, оказалось в конце программы пытался удалить не существующие переменные, и программа оставалась в процессах, создавал эти переменные как тестовые, в конструкторе их удалил, а деструкторе забыл.

Int64 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.