Название: не работает в дебаге 4.7.3 (QtConcurrent ?) Отправлено: wester от Август 13, 2012, 15:39 Доброго времени суток.
Есть код в widget.cpp Код
и фрагмент кода в detectop.cpp Код и проблема в том, что код который работает в релизной версии, в отладке возбуждает исключение sigsegv в QPainter.drawImage(); Но! если метод вызывается напрямую без QtConcurrent то все работает. Код
вот сижу и думаю, кто виноват и как исправлять Qt 4.7.3 Win Xp SP3 Название: Re: не работает в дебаге 4.7.3 (QtConcurrent ?) Отправлено: Nimbus от Август 14, 2012, 13:17 У меня одного вызывает подозрения этот фрагмент кода?
Код Ты передаёшь указатель на метод экземпляра (как я понял, это метод экземпляра, а не статический метод, т. к обращается к полю this->printerMap), а про указатель на сам экземпляр, ты видимо забыл? Как оно вообще работает? Может, лучше так? Код
З. Ы. Извините, давно на С++ не кодил Название: Re: не работает в дебаге 4.7.3 (QtConcurrent ?) Отправлено: wester от Август 14, 2012, 14:11 Не думаю. Widget::updateState у меня статический (забыл упомянуть).Если использовать указатель на this, то точно ничего хорошего не будет, так как нужен только статический член класса.
В релизе оно работает прекрасно ;D, мне просто не ясна природа такого поведения. upd: По ходу дела возникла еще одна странность. могу написать и будет успешно работать Код где printerMap объявлен как static QMap<QString,QString> printerMap; но, если я хочу сделать, что - то типа такого Код
то программа падает во время выполнения updateState. Название: Re: не работает в дебаге 4.7.3 (QtConcurrent ?) Отправлено: Nimbus от Август 14, 2012, 18:35 Просто странно как компилятор вот от этого (http://doc.qt.nokia.com/4.7-snapshot/qtconcurrentmap.html#using-member-functions) отличает.
Хммм... Видимо, дело в стековой переменной ;) |