powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / QVariantList в качестве возращаемого значения функции QVariant
16 сообщений из 16, страница 1 из 1
QVariantList в качестве возращаемого значения функции QVariant
    #38173605
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собираю статистику по поводу креша следующего кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <QVariant>

QVariant foo() {
    QVariantList l;
    l << QVariant(QString("Hello"));
    return l;
}

int main(int argc, char *argv[])
{
    QVariant f = foo();
    return 0;
}



На одной Windows 7 32bit машине в конфигурации Qt 5.0.1 MSVC2010 32bit ABI: x86-windows-msvc2010-pe-32bit это приложение крешится. На своей рабочей машине Windows 7 64 bit в той же конфигурации этот пример работает.

Буду благодарен если Вы имеете развернутую среду разработки под QT и уделите пару минут на запуск этого примера в своей конфигурации системы и приведете результат здесь.

Заранее спасибо!
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173718
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows XP SP3 32
Qt 4.7.0 mingw 4.6.2 - работает
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173770
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Sla,

Спасибо большое, а вот что получаю я ( https://bugreports.qt-project.org/browse/QTBUG-30009):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
0	RtlpBreakPointHeap	ntdll		0x77a85654	
1	RtlpValidateHeapEntry	ntdll		0x77a51a77	
2	RtlValidateHeap	ntdll		0x779e5926	
3	HeapValidate	KERNELBASE		0x75e15dcf	
4	_CrtIsValidHeapPointer	MSVCR100D		0x62378580	
5	_free_dbg_nolock	MSVCR100D		0x623776ba	
6	_free_dbg	MSVCR100D		0x62377560	
7	operator delete	MSVCR100D		0x62376629	
8	QVariant::`scalar deleting destructor'	Qt5Cored		0x5eef0020	
9	QList<QVariant>::node_destruct	qlist.h	421	0x5eef5ef1	
10	QList<QVariant>::dealloc	qlist.h	765	0x5eef18eb	
11	QList<QVariant>::~QList<QVariant>	qlist.h	740	0x5eeed456	
12	QList<QVariant>::`scalar deleting destructor'	Qt5Cored		0x5efcdf7f	
13	v_clear<QList<QVariant> >	qvariant_p.h	162	0x5f01a8cd	
14	QVariantDestructor<`anonymous namespace'::CoreTypesFilter>::FilteredDestructor<QList<QVariant>,1>::FilteredDestructor<QList<QVariant>,1>	qvariant_p.h	431	0x5f010022	
15	QVariantDestructor<`anonymous namespace'::CoreTypesFilter>::delegate<QList<QVariant> >	qvariant_p.h	458	0x5f00a9f7	
16	QMetaTypeSwitcher::switcher<void,QVariantDestructor<`anonymous namespace'::CoreTypesFilter> >	qmetatypeswitcher_p.h	76	0x5f00210f	
17	`anonymous namespace'::clear	qvariant.cpp	122	0x5effac1e	
18	QVariant::~QVariant	qvariant.cpp	1116	0x5effd248	
19	main	main.cpp	13	0x1447db	
20	WinMain	qtmain_win.cpp	131	0x143c6a	
21	__tmainCRTStartup	crtexe.c	578	0x143148	
22	WinMainCRTStartup	crtexe.c	403	0x142eaf	
23	BaseThreadInitThunk	kernel32		0x75f6ed6c	
24	__RtlUserThreadStart	ntdll		0x77a2377b	
25	_RtlUserThreadStart	ntdll		0x77a2374e	
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173855
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удалось найти причину. Проблема не в Qt, а в настройках среды конкретной машины: Qt Creator 2.6.2, использующий Qt 5.0.1 MSVC 2010 32 bit подцеплял компилятор от 2008 студии и как результат: проблемы с хипом.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173950
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковУдалось найти причину. Проблема не в Qt, а в настройках среды конкретной машины: Qt Creator 2.6.2, использующий Qt 5.0.1 MSVC 2010 32 bit подцеплял компилятор от 2008 студии и как результат: проблемы с хипом.очень похоже, ловил такую же, по сути, фигню, когда Qt сконфигурированна под 2008ю студию, а приложение компилялось по факту 2010й ))
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173955
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в это время, люди пользующиеся mingw сидят и удивляются.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38173959
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,
да ладно, что, сконфигурить Qt под одну версию mingw, а приложение собрать другой, и ничего не упадёт? хип не рухнет? сказки это
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38174005
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА в это время, люди пользующиеся mingw сидят и удивляются.

Проблема разных рантаймов она не такая и редкая в условиях работы с разными средами разработки на одной машине, поэтому, фиг знает, может кому-то эта ситуация сократит время на локализацию и устранение проблемы. Ну а так старый добрый http://www.dependencywalker.com/ рулит.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38174092
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychWhite Owl,
да ладно, что, сконфигурить Qt под одну версию mingw, а приложение собрать другой, и ничего не упадёт? хип не рухнет? сказки этоНеа, не упадет. В первую очередь потому что Qt выпускает свою библиотеку сразу в комплекте с компилятором. Соотвественно у библиотеки и собираемых приложений один и тот же рантайм.
Дело вовсе не в том что gcc лучше чем cl, а всего-лишь в модели инсталляции инструмента...
Хотя и gcc все-же лучше чем cl :)
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38174154
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, и у тебя всегда на машине только один mingw? ну, завидую, чё. Правда дело тут не в компиляторе, а в производственной необходимости иметь несколько разных версий Qt при разработке

PS Было, правда, что по каким-то своим причинам, винда находила одну из Qtшных dll от TortoiseHg, что тоже приводило к похожему падению. dependencywalker помог разобраться, не религия ))
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38174513
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Хотя и gcc все-же лучше чем cl :)

Ну уж всяко не быстрее.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38175162
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychWhite Owl, и у тебя всегда на машине только один mingw? ну, завидую, чё. Правда дело тут не в компиляторе, а в производственной необходимости иметь несколько разных версий Qt при разработкеНет, у меня сейчас три mingw на машине стоят. Один чистый mingw, один в составе Qt4 и один в Qt5. Заблудится и собрать приложение с неподходящим рантаймом - сложно.
И кстати VS у меня тоже есть двух версий - 2003 и 2010, но для Qt они не используются. И вообще они редко используются.
Еще есть два gcc в составе двух cygwin'ов (один самостоятельный cygwin, второй пришел как часть OCaml'а), но эти два вообще не используется.
Кроссплатформенных компиляторов у меня сейчас нет. GBA уже умер и проекты под него заморожены, а PS Vita - все руки не доходят попробовать пописать. Поэтому их SDK лежат в архивах и ждут настроения. Эти два SDK тоже основаны на gcc, кстати.

egorychdependencywalker помог разобраться, не религия ))Религия тоже имеет свои плюсы. Соблюдение заповедей "не убий" и "не укради" могут спасти человека от тюрьмы.
А соблюдение заповеди "не трогай VS если этого можно избежать" может спасти от головной боли :)
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38175283
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковWhite OwlА в это время, люди пользующиеся mingw сидят и удивляются.

Проблема разных рантаймов она не такая и редкая в условиях работы с разными средами разработки на одной машине, поэтому, фиг знает, может кому-то эта ситуация сократит время на локализацию и устранение проблемы. Ну а так старый добрый http://www.dependencywalker.com/ рулит.

Она решается организационно. У нас для релизов используются "Билд Машины". Каждая машина имеет одну среду компелирования. Релиз с девелоперских машин запрещен.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38175318
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЗаблудится и собрать приложение с неподходящим рантаймом - сложно.
никто и не говорит, что это происходит каждый день. Никаких преимуществ mingw в данном вопросе не наблюдаю.
White OwlА соблюдение заповеди "не трогай VS если этого можно избежать" может спасти от головной боли :)когда креатор научится корректно выполнять команду clean и обзаведётся вменяемым отладчиком, тогда и можно будет хотя бы подумать о том, чтобы отказаться от студии, хотя спорить о том, что она ( студия ) - тормозное и глюкавое гавно я не буду, это - так. Спорить о вреде отладчика я тоже не хочу, довольно часто он помогает _мне_ быстро решать мелкие и не очень мелкие проблемы.
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38175321
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcОна решается организационно. У нас для релизов используются "Билд Машины". Каждая машина имеет одну среду компелирования. Релиз с девелоперских машин запрещен.а с чего это вы решили, что речь идёт о релизе? вы пример видели? часто такие полезные программы пользователям поставляете?
...
Рейтинг: 0 / 0
QVariantList в качестве возращаемого значения функции QVariant
    #38175676
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychOoCcОна решается организационно. У нас для релизов используются "Билд Машины". Каждая машина имеет одну среду компелирования. Релиз с девелоперских машин запрещен.а с чего это вы решили, что речь идёт о релизе? вы пример видели? часто такие полезные программы пользователям поставляете?
Вчера был тяжелый день.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / QVariantList в качестве возращаемого значения функции QVariant
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]