Russian Qt Forum
Февраль 10, 2012, 15:41
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Мультимедиа
(Модератор:
Sergeich
) >
Проблема с ALSA
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проблема с ALSA (Прочитано 897 раз)
sergebegger
Новичок
Offline
Сообщений: 9
Проблема с ALSA
«
:
Июль 04, 2010, 14:54 »
Помогите пожалуйста, куда копать?
При изменении Volume - segmentation fault
Исходники прилагаются.....
Записан
Rcus
phpBB Супер
Offline
Сообщений: 1087
Twin-tail kidou senshi
Re: Проблема с ALSA
«
Ответ #1 :
Июль 04, 2010, 15:46 »
Valgrind же
Цитировать
==23310== Use of uninitialised value of size 8
==23310== at 0x4041BA: MainWindow::setVolume(int) (mainwindow.cpp:20)
==23310== by 0x4095BE: MainWindow::qt_metacall(QMetaObject::Call, int, void**) (moc_mainwindow.cpp:72)
==23310== by 0x5F26E3E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293)
==23310== by 0x5968BDD: QAbstractSlider::valueChanged(int) (moc_qabstractslider.cpp:182)
==23310== by 0x5721CAB: QSlider::mouseMoveEvent(QMouseEvent*) (qslider.cpp:514)
==23310== by 0x53231DE: QWidget::event(QEvent*) (qwidget.cpp:7983)
==23310== by 0x52CD22B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300)
==23310== by 0x52D3ECA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3865)
==23310== by 0x5F1406B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704)
==23310== by 0x52D30AD: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (qcoreapplication.h:215)
==23310== by 0x5352F64: QETWidget::translateMouseEvent(_XEvent const*) (qapplication_x11.cpp:4368)
==23310== by 0x53518AB: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3501)
==23310==
==23310== Invalid read of size 8
==23310== at 0x4041BA: MainWindow::setVolume(int) (mainwindow.cpp:20)
==23310== by 0x4095BE: MainWindow::qt_metacall(QMetaObject::Call, int, void**) (moc_mainwindow.cpp:72)
==23310== by 0x5F26E3E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293)
==23310== by 0x5968BDD: QAbstractSlider::valueChanged(int) (moc_qabstractslider.cpp:182)
==23310== by 0x5721CAB: QSlider::mouseMoveEvent(QMouseEvent*) (qslider.cpp:514)
==23310== by 0x53231DE: QWidget::event(QEvent*) (qwidget.cpp:7983)
==23310== by 0x52CD22B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300)
==23310== by 0x52D3ECA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3865)
==23310== by 0x5F1406B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704)
==23310== by 0x52D30AD: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (qcoreapplication.h:215)
==23310== by 0x5352F64: QETWidget::translateMouseEvent(_XEvent const*) (qapplication_x11.cpp:4368)
==23310== by 0x53518AB: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3501)
==23310== Address 0x56 is not stack'd, malloc'd or (recently) free'd
==23310==
==23310==
==23310== Process terminating with default action of signal 11 (SIGSEGV)
==23310== Access not within mapped region at address 0x56
==23310== at 0x4041BA: MainWindow::setVolume(int) (mainwindow.cpp:20)
==23310== by 0x4095BE: MainWindow::qt_metacall(QMetaObject::Call, int, void**) (moc_mainwindow.cpp:72)
==23310== by 0x5F26E3E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293)
==23310== by 0x5968BDD: QAbstractSlider::valueChanged(int) (moc_qabstractslider.cpp:182)
==23310== by 0x5721CAB: QSlider::mouseMoveEvent(QMouseEvent*) (qslider.cpp:514)
==23310== by 0x53231DE: QWidget::event(QEvent*) (qwidget.cpp:7983)
==23310== by 0x52CD22B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300)
==23310== by 0x52D3ECA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3865)
==23310== by 0x5F1406B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704)
==23310== by 0x52D30AD: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (qcoreapplication.h:215)
==23310== by 0x5352F64: QETWidget::translateMouseEvent(_XEvent const*) (qapplication_x11.cpp:4368)
==23310== by 0x53518AB: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3501)
hint: line 10
Записан
You Can Write FORTRAN in any Language (I Do)
sergebegger
Новичок
Offline
Сообщений: 9
Re: Проблема с ALSA
«
Ответ #2 :
Июль 04, 2010, 15:57 »
Спасибо за подсказку про Valgrind - gdb такого не показал.
А нельзя-ли поконкретнее ткнуть носом?
Записан
sergebegger
Новичок
Offline
Сообщений: 9
Re: Проблема с ALSA
«
Ответ #3 :
Июль 04, 2010, 16:06 »
А у меня картина другая.....
Цитировать
==12223== Invalid read of size 4
==12223== at 0x804ADB7: MainWindow::setVolume(int) (mainwindow.cpp:20)
==12223== by 0x804FC0F: MainWindow::qt_metacall(QMetaObject::Call, int, void**) (moc_mainwindow.cpp:72)
==12223== by 0x513F5DA: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==12223== by 0x514E4AE: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==12223== by 0x5BDE8D3: QAbstractSlider::valueChanged(int) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x58F4925: QAbstractSlider::setValue(int) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x58F49FD: QAbstractSlider::triggerAction(QAbstractSlider::SliderAction) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x58F4EB8: QAbstractSlider::setSliderPosition(int) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x5995638: QSlider::mouseMoveEvent(QMouseEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x556CF0E: QWidget::event(QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x58F4794: QAbstractSlider::event(QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==12223== by 0x5995CDE: QSlider::event(QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==12223== Address 0x0 is not stack'd, malloc'd or (recently) free'd
Записан
sergebegger
Новичок
Offline
Сообщений: 9
Re: Проблема с ALSA
«
Ответ #4 :
Июль 04, 2010, 16:40 »
Интересный момент - кто-же kill-яет микшер?
И как его от этого оградить?
Вот такой вариант работает...
Код:
void MainWindow::setVolume(int value)
{
alsaMixer *amixer = new alsaMixer();
amixer->setVolume(value,value);
}
но правильно-ли это?
Записан
Rcus
phpBB Супер
Offline
Сообщений: 1087
Twin-tail kidou senshi
Re: Проблема с ALSA
«
Ответ #5 :
Июль 04, 2010, 20:08 »
Что значит другая? Различие в размере в сообщении Invalid read of size 8 объясняется отличием в размере указателя. mainwindow.cpp:20 - вызов виртуального метода, значит ошибка произошла во время доступа к vtbl, что в данном случае является следствием обращения к неинициализированному указателю на объект. "hint: line 10" указывал на mainwindow.cpp:10, где вы вместо инициализации MainWindow::amixer создали локальную переменную.
Всё это выводится из первого сообщения, куда еще точнее?
Записан
You Can Write FORTRAN in any Language (I Do)
sergebegger
Новичок
Offline
Сообщений: 9
Re: Проблема с ALSA
«
Ответ #6 :
Июль 06, 2010, 01:36 »
"Учиться, учиться, и ещё раз учиться"((с) однако В.И. Ленин ) - для меня это до сих пор актуально..... Спасибо, разобрался....
«
Последнее редактирование: Июль 06, 2010, 01:39 от sergebegger
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> Печать
=> Интернационализация, локализация
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Python
===> Веб программирование
=====> PHP, PERL, CGI
Загружается...