Название: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 12, 2015, 09:24 В программе при выполнении инструкции return a.exec() (где a - объект QApplication) возникает Segmentation Fault.
Содержимое стека на момент краша: Код: 0 __memmove_ssse3_back /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.19.so 93 0x7ffff397c200 Название: Re: SegFault в QApplication::exec() Отправлено: Авварон от Октябрь 12, 2015, 12:45 2 ?? 0x7fffd5f0a424
Это явно вызов вашего метода. Ищите где забыли создать QIODevice (QFile?) Название: Re: SegFault в QApplication::exec() Отправлено: Old от Октябрь 12, 2015, 12:46 2 ?? 0x7fffd5f0a424 Скорее всего буфер для чтения.Это явно вызов вашего метода. Ищите где забыли создать QIODevice (QFile?) Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 13, 2015, 08:31 SegFault возникает, если я воспроизвожу звук с помощью QAudioOutput в Linux, при этом возникает ошибка "Got a buffer underflow!". В Windows было всё нормально.
Название: Re: SegFault в QApplication::exec() Отправлено: __Heaven__ от Октябрь 13, 2015, 12:52 Может valgrind?
Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 13, 2015, 13:43 может пример падающего кода ?
Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 13, 2015, 16:35 может пример падающего кода ? Код: int main(int argc, char *argv[]){ Название: Re: SegFault в QApplication::exec() Отправлено: __Heaven__ от Октябрь 13, 2015, 17:21 А может быть такое, что в одном потоке ваши объекты пытаются завершиться, а в главном потоке память из под них уже вычищена?
Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 13, 2015, 18:50 А может быть такое, что в одном потоке ваши объекты пытаются завершиться, а в главном потоке память из под них уже вычищена? Приложение однопоточное.Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 14, 2015, 08:44 а где хеадер ?
а если попробовать так: QTimer::singleShot(1, [=] { MainModule* m = new MainModule(); }); Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 14, 2015, 08:57 а где хеадер ? Заголовочные файлы не содержат ничего особенного, поэтому их не приводил.а если попробовать так: QTimer::singleShot(1, [=] { MainModule* m = new MainModule(); }); Добавил строку которую вы написали - ничего не изменилось, тот же SegFault. Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 14, 2015, 11:37 Заголовочные файлы не содержат ничего особенного, поэтому их не приводил. я просил рабочий, компилируемый пример, а не обрезки кода Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 14, 2015, 12:33 Audio.h:
Код: #include <QBuffer> Код: #include "audio.h" Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 15, 2015, 12:52 где конструктор и деструктор Audio ?
еще раз прошу проект в компилируемом виде т.е. в zip архиве где есть файл проекта и исходники и для сборки достаточно набрать qmake и make неполные куски кода неинтересны Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 15, 2015, 13:13 где конструктор и деструктор Audio ? Конструктор и деструктор по умолчанию. То что было предоставлено выше - весь исходный код, а не "неполные куски кода".еще раз прошу проект в компилируемом виде т.е. в zip архиве где есть файл проекта и исходники и для сборки достаточно набрать qmake и make неполные куски кода неинтересны Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 15, 2015, 16:54 да, проигрывает все и падает
посмотрю завтра Название: Re: SegFault в QApplication::exec() Отправлено: gil9red от Октябрь 15, 2015, 18:45 У меня падает если файл с wav не найден и пустой буфер попадает на воспроизведение и тут this->player->start(&buffer); падает
Название: Re: SegFault в QApplication::exec() Отправлено: Evil_Genius от Октябрь 16, 2015, 08:53 Принудительная остановка QAudioOutput после воспроизведения решает проблему. Проблема с буфером осталась, но это уже совсем другая история...
Код: this->player->stop(); Название: Re: SegFault в QApplication::exec() Отправлено: qate от Октябрь 16, 2015, 09:05 также работает если buffer и temp перевести в динамическую память, видимо плеер чтото с ним делает, когда его уже нет
|