Отладчик XCode иногда не отображает значения переменных? - PullRequest
44 голосов
/ 11 июля 2010

Это случается со мной довольно часто. Например, сейчас у меня отладчик остановлен на точке останова в методе. , , и он не отображает значения переменных вообще. В других случаях отображаются некоторые, но не другие.

Может кто-нибудь объяснить?

Ответы [ 19 ]

1 голос
/ 24 августа 2015

Я видел ситуацию, когда Xcode не может справиться с оптимизацией возвращаемого значения (RVO) - если компилятор решит применить RVO к переменной, он может не появиться в списке переменных. Вы можете отключить это в g ++ и clang с флагом компилятора -fno-elide-constructors

См. Также Понимание соответствующих правил в отношении c ++ 11

0 голосов
/ 04 июля 2018

У меня была такая же проблема, и я исправил ее, переустановив все модули.Просто удалите их и установите снова.

0 голосов
/ 05 августа 2017

Одной из возможных причин того, что отладчик отображает на первый взгляд неправильные значения, является то, что тип переменной имеет значение Any?.

Например:

var a: Any? = 12
var b: Int? = a as? Int // b=13483920750
var c: Int = a as? Int ?? 0 // c=1

В приведенном выше примере, b содержит правильное значение 1, даже если оно не отображается как таковое.

0 голосов
/ 22 мая 2012

временное решение, когда оно меня устраивает: щелкните правой кнопкой мыши по свойству, перейдите к определению (вы можете сделать это вручную и пролистать до @synthesize в верхней части файла)

сейчас, если строкавот так:

@ synthesize myObject = _myObject;

установить курсор мыши на _myObjects.вот что сработало для меня .. когда у меня проблемы.

0 голосов
/ 12 апреля 2013

Я выяснил, почему это не работает в XCode 4.6 - все переменные в моем объекте self были объявлены в файле .m вместо .h.Когда я переместил один из них обратно в файл .h, он обнаружился в отладчике.Похоже, ошибка с XCode в том, что он не может «видеть» переменные, объявленные в файле реализации.

0 голосов
/ 08 июня 2016

Я застрял некоторое время с этой проблемой и, наконец, найти решение.Я думаю, что многие причины могут вызвать эту ошибку, но в моем случае здесь есть решение.Пока вы находитесь в точке останова, проверьте включенные классы.Я включал использование двойной кавычки для файла, который был найден с использованием include path.

#include "MyClass.h"

вместо

#include <MyPorject/MyClasses/MyClass.h>

Так что, если у вас есть эта проблема, попробуйте дважды проверить включение и импорт.Я знаю, что это кажется странным, но сработало для меня, и я смог воспроизвести его, вернув двойную кавычку.

0 голосов
/ 23 мая 2016

Вам необходимо отключить два типа оптимизации сборки в настройках сборки.По умолчанию уровень оптимизации «быстрый компилятор - генерация кода» для отладочной сборки установлен на быстрый.Вы должны установить это ни к чему.Также убедитесь, что для оптимизации отладки «apple llvm 7.1 - генерация кода» установлено значение none.Наконец, убедитесь, что вы строите отладочную сборку в разделе «архитектуры» настроек вашей сборки.

Надеюсь, это поможет.

0 голосов
/ 20 июня 2015

Для меня это работает, изменяя содержимое панели переменных дисплея на Local Variables, а затем обратно на Auto.

Это решение работало на XCode 6.3.2, проект типа Swift.

0 голосов
/ 24 октября 2010

Если вы используете функцию @property в Objective-C 2.0, отладчик не отображает эти переменные, если они не поддерживаются явными иварами в интерфейсе вашего класса.Это должно быть исправлено в Xcode 4, насколько я понимаю.

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