#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 , 9 years ago
| Status: | new → accepted | 
|---|
comment:2 by , 9 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 , 9 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 , 9 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | accepted → closed | 
Перепишите всё содержимое каталога 
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.
Вы переписали не все иконки, соотвественно не все они загрузились, а при попытке получения их размера возвращается 0, на который делиться pUsersInRecordTable->height().
rev 227.
comment:5 by , 9 years ago
| Resolution: | fixed | 
|---|---|
| Status: | closed → reopened | 
Replying to dimag:
Перепишите всё содержимое каталога
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.
:)  Есть только одно официальное место, где "живет" ваша программа - это репозиторий svn. Именно оттуда я беру и буду брать все файлы. Если файла ConferenceRecord.png нет в репозитории - значит его просто нет, и ни из каких "неофициальных" источников я его брать не должен и не буду. Если файл программе нужен - добавляйте его в репозиторий, и тогда закрывайте тикет. А пока файла в рапозитории нет, я переоткрываю тикет, так как без файла программа падает.


Не удалось воспроизвести