Трудная отладка локальной переменной в XCode - PullRequest
1 голос
/ 13 января 2011

У меня проблемы с отладкой локальной переменной.Я использую gcc 4.2, XCode 3.2.4, базовый SDK Mac OS 10.5 и Objective-C++ в режиме отладки.

Вот проблема.Я работаю над попыткой понять некоторый код, и он выглядит следующим образом:

#define MAX4D 500

...

NSMutableArray *viewerPix[ MAX4D ];

При наведении на него курсора во время отладки (пауза в строке до и после) я получаю

Unable to access variable "viewerPix"
Unable to access variable "viewerPix"
Unable to access variable "viewerPix"
...

повторяется, пока я не убью приложение.Что вызвало бы это?Я пытался установить его на меньшее число ... но безрезультатно.Даже после того, как я на самом деле установил C-Array:

viewerPix[0] = [[NSMutableArray alloc] initWithCapacity:0];

, я все равно получаю такое же повторное сообщение об ошибке.

Однако, если я не наведу курсор мыши на значение (или отладку)он «кажется» работает нормально, даже делая такие вещи, как:

[viewerPix[0] addObject: dcmPix];
if( [viewerPix[0] count] != [loadList count])...

, но если я отлаживаю после этих шагов, он вылетает, как и раньше.Вот мои настройки компоновки:

STRIPFLAGS =
ALTERNATE_GROUP = $ (INSTALL_GROUP)
ALTERNATE_OWNER = $ (INSTALL_OWNER)
ALTERNATE_MODE = $ (INSTALL_MODE_FLAG) * 1026_L_LATENS_LECTS_LOG_STER_LOWNSTER_LECT_LOGSTERSTER_LOGSTERSTER_LECT_LOGSTERSTER= NO
DEPLOYMENT_POSTPROCESSING = NO
INSTALL_GROUP = $ (GROUP)
INSTALL_OWNER = $ (USER)
INSTALL_MODE_FLAG = u + w, go-w, a + rX
DSTROOT = / tmp /$ (PROJECT_NAME) .dst
INSTALL_PATH = $ (HOME) / Приложения
SKIP_INSTALL = NO
COPY_PHASE_STRIP = NO
STRIP_INSTALLED_PRODUCT =
STRIP_STYLE = отладка
SEIPAR = SEARнет 1040 * GCC_FAST_OBJC_DISPATCH = ДА * тысяче сорок-один * GCC_AUTO_VECTORIZATION = NO
GCC_OBJC_CALL_CXX_CDTORS = ДА
GCC_ENABLE_SSE3_EXTENSIONS = NO
GCC_ENABLE_SSE41_EXTENSIONS = NO
GCC_ENABLE_SSE42_EXTENSIONS = NO
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = нЕТ * тысячу сорок-семь * GCC_STRICT_ALIASING = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION = Выкл.
GCC_ENABLE_FIX_AND_CONTINUEнет = NO
GCC_GENERATE_DEBUGGING_SYMBOLS = ДА * тысяча пятьдесят-одна * GCC_DYNAMIC_NO_PIC = NO
GCC_GENERATE_TEST_COVERAGE_FILES = NO * 1 053 * GCC_INLINES_ARE_PRIVATE_EXTERN = ДА * 1 054 * GCC_MODEL_TUNING = G5 * +1055 * GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_ENABLE_KERNEL_DEVELOPMENT = NO * +1057 * GCC_DEBUGGING_SYMBOLS = по умолчанию
GCC_REUSE_STRINGS = ДА
GCC_NO_COMMON_BLOCKS = NO
GCC_ENABLE_OBJC_GC = неподдерживаемые
GCC_OPTIMIZATION_LEVEL = 0 * тысяча шестьдесят два * GCC_FAST_MATH = NO
GCC_ENABLE_SYMBOL_SEPARATION = ДА
GCC_THREADSAFE_STATICS = ДА * 1 065 * GCC_SYMBOLS_PRIVATE_EXTERN = НЕТ * тысячи шестьдесят-шести* GCC_UNROLL_LOOPS = НЕТ
GCC_MODEL_PPC64 = НЕТ

Я не знаю, что еще сказать.Дайте мне знать, что нужно больше информации, потому что я в растерянности.Там также нет вкладки «сборка», когда я получаю информацию о .mm файле.Просто General, Target, Comments (некоторые подсказки, которые я проверял, говорили об удалении файловых тегов).

Должен ли я инициализировать этот c-массив с nil?Я не могу просто сделать .. array[500] = {nil}; верно?это C #?

Я использовал LLVM и Clang 1.5, но я переключился на GCC 4.2, поскольку я не получал каких-либо локальных символов.Я что-то упустил ??

Ответы [ 2 ]

1 голос
/ 14 января 2011

Если оптимизатор включен, это может эффективно устранить локальные переменные.

Однако, почему массив C изменяемых массивов ObjC?Это кажется странным.

0 голосов
/ 09 сентября 2013

проверьте Product-> Scheme-> Edit Scheme-> Run xxx, Конфигурация сборки отладка, если это Release, то вы видите.

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