#188 closed баг (fixed)
Падение при клике по элементу списка записей переговоров
Reported by: | alx | Owned by: | dimag |
---|---|---|---|
Priority: | major | Milestone: | 2 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: | san |
Description
- Запускаем программу.
- Переходим в "Записи переговоров".
- Выставляем параметры поиска и нажимаем "Применить фильтр".
- В появившемся списке переговоров кликаем любую строку.
Результат - падение из-за исключения в операции с плавающей точкой.
Change History (7)
comment:1 by , 8 years ago
Status: | new → accepted |
---|
comment:2 by , 8 years ago
Найдено место падения.
Thread 1 "MC04Dispatcher" received signal SIGFPE, Arithmetic exception. 0x000000000041f2a8 in MainAppFrameWindow3::RefreshUsersRecordList (this=this@entry=0x7fffffffe0e0, iid=iid@entry=14919, iType=<optimized out>) at MainAppFrameWindow3.cpp:2666 2666 int iVisibleItemsNumber = pUsersInRecordTable->height() / ConferenceRecordIcon.availableSizes()[0].height(); (gdb) bt #0 0x000000000041f2a8 in MainAppFrameWindow3::RefreshUsersRecordList (this=this@entry=0x7fffffffe0e0, iid=iid@entry=14919, iType=<optimized out>) at MainAppFrameWindow3.cpp:2666 #1 0x0000000000421b3a in MainAppFrameWindow3::RecordsCellClicked (this=0x7fffffffe0e0, row=6, column=<optimized out>) at MainAppFrameWindow3.cpp:2451 #2 0x000000000048c951 in MainAppFrameWindow3::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at moc_MainAppFrameWindow3.cpp:223 #3 0x00007ffff62a3010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #4 0x00007ffff6d65f0f in QTableWidget::cellClicked(int, int) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #5 0x00007ffff62a3010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #6 0x00007ffff6cf8225 in QAbstractItemView::clicked(QModelIndex const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #7 0x00007ffff6cf843b in QAbstractItemView::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #8 0x00007ffff68128d0 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #9 0x00007ffff6bdbcee in QFrame::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #10 0x00007ffff6d01663 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #11 0x00007ffff628ea76 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #12 0x00007ffff67bbfbc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #13 0x00007ffff67c30d6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #14 0x00007ffff628e90d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #15 0x00007ffff67c26dd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #16 0x00007ffff68403f2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #17 0x00007ffff683fc83 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #18 0x00007ffff6869542 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #19 0x00007ffff2b4e127 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007ffff2b4e380 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007ffff2b4e42c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007ffff62bf2ae in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #23 0x00007ffff6869616 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #24 0x00007ffff628d18f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #25 0x00007ffff628d4f5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #26 0x00007ffff62934b9 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #27 0x000000000040fe0f in main (argc=<optimized out>, argv=<optimized out>) at MC04Dispatcher.cpp:148
comment:3 by , 8 years ago
Добавление перед строкой 2666 кода
fprintf(stderr, "--> ConferenceRecordIcon.availableSizes()[0].height() = %d\n", ConferenceRecordIcon.availableSizes()[0].height());
перед падением дает вывод:
--> ConferenceRecordIcon.availableSizes()[0].height() = 0
То есть причина падения - деление на 0.
follow-up: 5 comment:4 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Перепишите всё содержимое каталога
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.
Вы переписали не все иконки, соотвественно не все они загрузились, а при попытке получения их размера возвращается 0, на который делиться pUsersInRecordTable->height().
rev 227.
comment:5 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Replying to dimag:
Перепишите всё содержимое каталога
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.
:) Есть только одно официальное место, где "живет" ваша программа - это репозиторий svn. Именно оттуда я беру и буду брать все файлы. Если файла ConferenceRecord.png нет в репозитории - значит его просто нет, и ни из каких "неофициальных" источников я его брать не должен и не буду. Если файл программе нужен - добавляйте его в репозиторий, и тогда закрывайте тикет. А пока файла в рапозитории нет, я переоткрываю тикет, так как без файла программа падает.
Не удалось воспроизвести