сбой с exc_bad_access (code = exc_i386_gpflt) - PullRequest
0 голосов
/ 31 декабря 2018

Objective-C;Mac OS 10.10 или более поздняя версия В моем проекте библиотеки XCode Mac я следовал функции RawDeviceAdded из кода библиотеки разработчика Apple, приведенного ниже по ссылке, для обработки необработанных USB-устройств различных Pids, как добавлено в. https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/USBBook/USBDeviceInterfaces/USBDevInterfaces.html

При довольно быстрой вставке устройств одно за другим проект падает с такой текстовой строкой: thread 1 exc_bad_access (code = exc_i386_gpflt) .отображается в этой строке:

result = (*plugInInterface)->QueryInterface(plugInInterface,
                        CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID),
                        (LPVOID *)&dev); 

, но последняя выполненная строка - printf строка ниже:

if ((vendor != kOurVendorID) || (product != kOurProductID1) || (product != kOurProductID2) )
        {
            printf("Found unwanted device (vendor = %d, product = %d)\n",
                    vendor, product);
            (void) (*dev)->Release(dev);
            continue;
        }

Когда я вставляю устройства медленнее или добавляю спящий режим вэта функция, кажется, работает без сбоев, но я бы хотел исправить это правильно.Что происходит и как правильно с этим справиться?.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...