Код C ведет себя по-разному в выпуске на XCode 12

#ios #xcode #poco-libraries

#iOS #xcode #poco-библиотеки

Вопрос:

Мое приложение использует стороннюю библиотеку, которая, в свою очередь, построена на библиотеке Poco. Библиотека poco включена в качестве скомпилированного объектного файла (.a). Теперь приложение работает должным образом в режиме отладки, но приводит к сбою в режиме выпуска.

Я смог отследить его до этой строки. Строка в качестве входных данных идентична в обоих режимах, но в режиме выпуска возвращается пустой объект (без исключения, просто объект с размером 0).

     Poco::JSON::Parser parser;
    try {
        *object = parser.parse(jsonstr);
    }
 

Это началось, когда мы переключились на XCode 12 для приложения и для компиляции Poco.

Я считаю, что это должны быть некоторые флаги оптимизации плюс ошибка в библиотеке, но как мне ее отследить? Особенно без отладки в режиме выпуска.

Есть идеи?

Комментарии:

1. Что произойдет, если вы прервете parse extract вызовы and . Возможно, вас сбивает с толку какое-то неявное преобразование.

2. Var result = parser.parse(json); Object::Ptr object = result.extract<Object::Ptr>();