Ну ладно, давайте "со всеми остановками". Вот собсно сам вылет с которого все началось
static inline void qt_mac_waitForMoreEvents(NSString *runLoopMode = NSDefaultRunLoopMode)
{
// If no event exist in the cocoa event que, wait (and free up cpu time) until
// at least one event occur. Setting 'dequeuing' to 'no' in the following call
// causes it to hang under certain circumstances (QTBUG-28283), so we tell it
// to dequeue instead, just to repost the event again:
NSEvent* event = [NSApp nextEventMatchingMask:NSEventMaskAny // Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
untilDate:[NSDate distantFuture]
inMode:runLoopMode
dequeue:YES];
if (event)
[NSApp postEvent:event atStart:YES];
}
// Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Приложение запускается и работает, летит при загрузке большого файла данных (сегодня утром осчастливили)
Ладно, пробую Guard Malloc, теперь летит уже на инициализации приложения
inline uint qstrlen(const char *str)
{ return str ? uint(strlen(str)) : 0; }
Thread 1: EXC_BAD_ACCESS (code=1, address=0x600096c32000)
А вот место откуда зовется qstrlen
// Append rest of shader code
sourceChunks.append(source + versionDirectivePosition.position);
sourceChunkLengths.append(GLint(qstrlen(source + versionDirectivePosition.position)));
// scurce = 0x0000600096c31f08
// versionDirectivePosition.position = 248
Вот дамп строки source, да, она заканчивается нулем
23 76 65 72 73 69 6F 6E 20 33 33 30 0D 0D 69 6E 20 76 65 63 33 20 74 65 78 43 6F 6F 72 64 30 5F 76 73 68 3B 0D 0D 75 6E 69 66 6F 72 6D 20 73 61 6D 70 6C 65 72 32 44 20 74 65 78 74 75 72 65 30 3B 0D 0D 6F 75 74 20 76 65 63 34 20 67 6C 46 72 61 67 43 6F 6C 6F 72 3B 0D 0D 76 6F 69 64 20 6D 61 69 6E 20 28 76 6F 69 64 29 0D 7B 0D 09 67 6C 46 72 61 67 43 6F 6C 6F 72 20 3D 20 74 65 78 74 75 72 65 28 74 65 78 74 75 72 65 30 2C 20 74 65 78 43 6F 6F 72 64 30 5F 76 73 68 2E 78 79 29 3B 0D 2F 2F 09 76 65 63 34 20 74 78 20 3D 20 74 65 78 74 75 72 65 28 74 65 78 74 75 72 65 30 2C 20 74 65 78 43 6F 6F 72 64 30 5F 76 73 68 2E 78 79 29 3B 0D 2F 2F 09 67 6C 46 72 61 67 43 6F 6C 6F 72 20 3D 20 76 65 63 34 28 74 78 2E 78 79 7A 2C 20 31 29 3B 0D 7D 0D 00
И вот сама строка source
#version 330
in vec3 texCoord0_vsh;
uniform sampler2D texture0;
out vec4 glFragColor;
void main (void)
{
glFragColor = texture(texture0, texCoord0_vsh.xy);
// vec4 tx = texture(texture0, texCoord0_vsh.xy);
// glFragColor = vec4(tx.xyz, 1);
}
И шо? Впечатление что типовая хренотень с тулзами диагностики - ему "все не нравится"