Я разрабатываю приложение для iPhone с использованием смешанных Obj-C и C++. Похоже, что иногда значения различных полей полностью поддельны, как сообщается gdb при переходе из файла Obj-C в файл C++. Например, в способе:Является ли GDB в Xcode просто чешуйчатым?
int count = 1;
для (INT I = 0; я < рассчитывать; ++ я) {
int x = 0; // put a breakpoint here to see how many times it gets hit.
}
в этом примере, иногда GDB сообщит значение для подсчета '', который является иным, чем '1'. это может быть 126346, например. но, пройдя через код, цикл повторяется только один раз, указывая, что значение «count» фактически было ожидаемым значением.
Я новичок в Xcode. Я, наверное, просто пропустил что-то основное. Но это заставляет сомневаться в ваших инструментах. Кто-нибудь еще видел странность в этой области? Решил?
Я согласен, что когда отладчик сообщает вам, что значение счета является довольно опасным значением, неинициализируется (или поврежденной), определенно нужно что-то искать, но тот факт, что цикл повторяется только один раз, ясно указывает, что значение, сообщаемое gdb, и то, что код, используемый во время выполнения, не согласуется. – Eric
Это зависит от того, когда вы сделали вывод, чтобы увидеть значение. В его ответе Нитин имеет хороший пример. –