Всем привет!
Обнаружил странный баг (а баг ли это).
Работаю в Windows 10, Qt Creator (Community) 3.5.1, Qt 5.5.1 (MSVC 2013, 32 бита), Собрано Oct 13 2015 в 07:38:22.
На форме QTableView и QPushButton. В конструкторе виджета следующий код:
Настраиваем модель и таблицу, ничего особенного.
model = new QFileSystemModel(this);
model->setFilter(QDir::AllEntries | QDir::NoDot | QDir::Hidden);
ui->tableView->setModel(model);
ui->tableView->setRootIndex(model->setRootPath("C:\\"));
ui->tableView->scrollToTop();
connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(onCliked()));
Дальше самое интересное. По нажатию кнопки, выполняется переход на рабочий стол:
ui->tableView->setRootIndex(model->setRootPath("C:\\Users\\user\\Desktop"));
ui->tableView->scrollToTop();
Код в слоте успешно отрабатывает, из слота выходим и программа зависает.
Приостановив выполнение в отладчике, видно следующий call stack:
0 ntdll!DbgBreakPoint 0x776a8d21
1 ntdll!DbgUiRemoteBreakin 0x776d9d59
2 ?? 0xabae3b83
3 ntdll!DbgUiIssueRemoteBreakin 0x776d9d20
4 KERNEL32!BaseThreadInitThunk 0x744e38f4
5 ntdll!RtlUnicodeStringToInteger 0x77695de3
6 ??
И асм инструкции:
0x776a8d20 cc int3
=> 0x776a8d21 <+0x0001> c3 ret
Скриншот прилагаю:
Гугл в решении проблемы, оказался бесполезен.
Кто-нибудь сталкивался с подобным? Что посоветуете?
Благодарю.