SIGSEGV в QAbstractSocket::writeData при записи 5k данных
Работая в системе ARM, я получаю SIGSEGV в QAbstractSocket::writeData(char const*, long long). Я звоню через QIODevice::write(char const*, long long), и это умеренно небольшой объем данных. Всего 5к.
Я проверяю, что отправляемая память правильно распределена с помощью new[] и что QIODevice открыт перед отправкой. Меньшие пакеты работают надежно, но точный порог, когда пакеты слишком велики, кажется, меняется. Я бинарно искал его, чтобы найти его чуть ниже 4 Кб, но затем при запуске кода в gdb он немного вырос, но я не бинарный поиск, чтобы найти, где именно.
Существует много запасных оперативной памяти, я могу увеличить размер пакета до более чем 1М, и новый [] по-прежнему счастлив.
Версия Qt 4.8.6.
Я бы предпочел не раскрывать всю обратную трассировку от проекта, она раскрывает больше деталей проекта, чем мне бы хотелось. Но верхние несколько кадров:
#0 0xb6b6ed6c in __memcpy_neon () at ../ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S:596
#1 0xb6f71dce in QAbstractSocket::writeData(char const*, long long) () from /usr/lib/arm-linux-gnueabihf/libQtNetwork.so.4
#2 0xb6d9b5fe in QIODevice::write(char const*, long long) () from /usr/lib/arm-linux-gnueabihf/libQtCore.so.4
Любые идеи о том, что идет не так?