Сбой Qt: нарушение прав доступа QEventDispatcherWin32 :: trUtf8 - PullRequest
0 голосов
/ 08 июня 2019

по некоторым причинам, я все еще использую Qt4 в некоторых встроенных system.it, непредвиденный сбой.потому что я никогда не создавал QEventDispatcherWin32 или вызывал trUtf8 (мне не нужен перевод).

пробовал: (1) использовать QTextCodec по умолчанию (ОС поддерживает английский и японский).(2) отслеживать QThread :: setPriority, но он не вызывает QEventDispatcherWin32 :: trUtf8. (Вызываемый стек ниже).

относительный код: (1) код никогда не вызывал tr или trUtf8 для перевода, даже никогда не вызывал QThread::Установить приоритет.(2) использование многопоточности и пула потоков в этой программе.(3) QString :: fromlocal8Bit для создания QString.(4) ui _ *. H файл, который использует QString :: fromUtf8 или перевод по умолчанию.

в файле дампа, я нашел вызываемый стек: STACK_TEXT:

04fdfda4 73495d4b 02feea10 00000001 b9d094c6 QtCore4!QEventDispatcherWin32::trUtf8+0x16a
04fdfdc4 735c225b ffffffff 73c7c6de 02ff9988 QtCore4!QThread::setPriority+0x3ab
04fdfe04 73c7c788 00000000 04fdfe1c 767e33ca QtCore4!QString::toStdWString+0x1b7b
04fdfe4c 770d1ecc 03aea39e 00000000 04fdfe74 msvcr100!_endthreadex+0xce
04fdfe5c 77099ea5 73c7c724 02ffe408 00000000 ntdll!SQM_SETIFMIN_DWORD+0x4
04fdfe74 00000000 73c7c724 02ffe408 00000000 ntdll!_RtlUserThreadStart+0x1b

аварийный поток:

# ChildEBP RetAddr Args to Child

00 04fded60 770a18ad 770a3c16 05782b71 04fded3c ntdll!ZwGetContextThread+0x12
01 04fdee10 770a384f 77162180 7708f53e 705b88e2 ntdll!LdrpSearchResourceSection_U+0x63c
02 04fdee18 7708f53e 705b88e2 05782b71 00000000 ntdll!LdrpGetFileSizeFromLoadAsDataTable+0x86
03 04fdee50 03aea876 fffffffe 7708f53e 7709317f ntdll!RtlImageNtHeaderEx+0x117
04 04fdee74 770a1d93 05782c28 05782b70 770a1df1 0x3aea876
05 04fdeed0 770a1ef3 00323000 05783be8 04fdef40 ntdll!LdrpAccessResourceDataNoMultipleLanguage+0xef
06 04fdef0c 767e5335 767e52de 00389830 00000001 ntdll!LdrpAccessResourceData+0xf6
07 04fdf1b4 76a895df 00390516 00000020 04fdf3d8 kernel32!FSPErrorMessages::CMessageMapper::NotifyLoadStringResource+0x170
08 04fdf234 77093ca3 77093cce 00000014 00000020 KERNELBASE!ConvertTimeZoneMuiStrings+0x1e9
09 04fdf31c 767e12cc 00000308 04fdf3b0 0000006c ntdll!RtlpAllocateHeap+0xe73
0a 04fdf338 7373ba6f 00006000 00000000 051b0f68 kernel32!WriteFileImplementation+0x76
0b 04fdf354 00000000 00000000 00000000 00000000 dbghelp!Win32FileOutputProvider::WriteAll+0x1a
...