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

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

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

Ответы [ 19 ]

39 голосов
/ 11 июля 2010

Наиболее распространенная причина этого заключается в том, что вы пытаетесь отлаживать код, скомпилированный с включенной оптимизацией и / или без символов отладки. Обычно это происходит потому, что вы пытаетесь отладить сборку Release, а не сборку Debug, но это также может произойти со сборками Debug, если вы внесли неправильные изменения в настройки сборки Debug.

Другая менее распространенная возможность - это то, что вы перевернули стек.

18 голосов
/ 16 марта 2016

У меня была эта проблема (с использованием Swift), я потратил целую вечность, просматривая мои git коммиты, чтобы найти, где возникла проблема.

xcode debugging variables not working or showing


Для меня я использовал библиотеку Facebook Tweaks, но я (излишне) импортировал ее из моего project-bridging-header.h файла.

Как только я избавился от этого, я получил отладку обратно.

например, в моем соединительном заголовке у меня было:

#ifndef PROJECT_Bridging_Header_h
#define PROJECT_Bridging_Header_h
// Facebook Tweaks
#import "FBTweak.h"
#import "FBTweakStore.h"
#import "FBTweakCategory.h"
#import "FBTweakCollection.h"
#import "FBTweakViewController.h"
#import "FBTweakShakeWindow.h"
#endif

Я удалил весь импорт и просто импортировал его как обычно в моем AppDelegate import Tweaks.

например:

#ifndef PROJECT_Bridging_Header_h
#define PROJECT_Bridging_Header_h
// Removed Facebook Tweaks
#endif

а по моему AppDelegate.swift

import Tweaks

Это исправило все мои проблемы с отладкой, все работает как положено, и я также могу использовать твики Facebook.

Примечание: Я не думаю, что это проблема с самими настройками Facebook, у вас может быть какая-то другая библиотека, вызывающая такую ​​же проблему. Идея состоит в том, чтобы удалить вещи из вашего bridging-header по одному и посмотреть, сможете ли вы сузить проблему.

Мне кажется, я где-то читал, что если библиотека вызывает много проблем за кулисами, это может остановить работу вашего отладчика.

Если это не поможет, попробуйте просканировать ваши коммиты git и посмотреть, на каком этапе остановка отладки.

другие подобные проблемы на SO:

Xcode Debugging не показывает значения

Отладчик XCode не отображает переменную информацию после установки CocoaPods Podfile

Если у вас похожие проблемы, надеюсь, это поможет! ?

8 голосов
/ 06 мая 2014

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

Проект -> Цель -> Настройки сборки -> Уровень оптимизации -> Отладка (или что-то подходящее вашему проекту) -> Нет

Источник:

https://stackoverflow.com/a/14948486/3590753

6 голосов
/ 11 ноября 2011

У меня были похожие проблемы при использовании LLDB.Переключение обратно на GDB, кажется, решает эту проблему.Очевидно, что это не решает проблему, но в любом случае это обходной путь

5 голосов
/ 31 марта 2013

Вы можете получить значение любой переменной в консоли, написав:

po name_of_an_objectCVar

или

print name_of_a_cVar
2 голосов
/ 17 августа 2016

Если для вашей точки останова установлено «автоматически продолжить после оценки параметров», она не будет записывать в представление переменной - FYI

2 голосов
/ 05 марта 2017

Моя проблема заключалась в том, что у меня было включено средство очистки адреса.Отключение дезинфицирующего средства решило мою проблему в XCode 8.2.1

1 голос
/ 04 апреля 2013

Я знаю, что это старый, но я столкнулся с той же проблемой.Я не мог видеть резюме каких-либо объектов, только типы и некоторый адресный код.После 4 часов борьбы с компиляторами, отладчиками и другими решениями я собирался отказаться, когда случайно нашел эту опцию в отладчике.«Показать аннотации».Просто нажав на нее, все исправилось, и теперь я вижу все сводки переменных!

enter image description here

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

Возникла та же проблема с использованием Xcode 6.4 при запуске приложения на устройстве.Запуск на симуляторе покажет все переменные на панели отладочных переменных.

1 голос
/ 11 мая 2017

Для проекта Swift mix OC, в котором используется pod

Исправление путем удаления бесполезного заголовка (который импортируется с каркасом с помощью pod)например.В прошлом я импортировал заголовок с #import "GCDAsyncSocket.h", который был добавлен в подфайл

platform:ios, '8.0' use_frameworks! target "roocontrollerphone" do pod 'CocoaAsyncSocket' end

, просто удалите его в этом xx-Bridging-Header.h файле

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