2011-01-13 19 views
1

我在硬調試本地變量。我在調試模式下運行gcc 4.2,XCode 3.2.4,基本SDK Mac OS 10.5Objective-C++硬核時間調試XCode中的本地變量

這是問題所在。我正在試圖理解一些代碼,它是這樣的:

#define MAX4D 500 

... 

NSMutableArray *viewerPix[ MAX4D ]; 

當我(就行暫停之前和之後)在它懸停在調試期間,我得到這個

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

重複直到我殺了應用程序。什麼會造成這種情況?我試着將它設置爲較低的數字......但無濟於事。即使在我實際設置C-陣列:

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)
ALTERNATE_PERMISSIONS_FILES =
DEPLOYMENT_LOCATION = NO
DEPLOYMENT_POSTPROCESSING = NO
INSTALL_GROUP = $(集團)
INSTALL_OWNER = $(USER)
INSTALL_MODE_FLAG = U + W,去-W,A + RX
DSTROOT =/tmp/$(PROJECT_NAME)。DST
INSTALL_PATH = $(HOME)/應用
SKIP_INSTALL = NO
COPY_PHASE_STRIP = NO
STRIP_INSTALLED_PRODUCT =
STRIP_STYLE =調試
SEPARATE_STRIP = NO

GCC_FAST_OBJC_DISPATCH = YES
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 = NO
GCC_STRICT_ALIASING = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION =關
GCC_ENABLE_FIX_AND_CONTINUE = NO
GCC_GENERATE_DEBUGGING_SYMBOLS = YES
GCC_DYNAMIC_NO_PIC = NO
GCC_GENERATE_TEST_COVERAGE_FILES = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_MODEL_TUNING = G5
個 GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_ENABLE_KERNEL_DEVELOPMENT = NO
GCC_DEBUGGING_SYMBOLS =默認
GCC_REUSE_STRINGS = YES
GCC_NO_COMMON_BLOCKS = NO
GCC_ENABLE_OBJC_GC =不受支持
GCC_OPTIMIZATION_LEVEL = 0
GCC_FAST_MATH = NO
GCC_ENABLE_SYMBOL_SEPARATION = YES
GCC_THREADSAFE_STATICS = YES
GCC_SYMBOLS_PRIVATE_EXTERN = NO
GCC_UNROLL_LOOPS = NO
GCC_MODEL_PPC64 = NO

我不知道該說些什麼。讓我知道需要更多的信息,因爲我不知所措。當我獲得.mm文件的信息時,也沒有「生成」選項卡。只是一般,目標,評論(有些幫助我檢查說刪除文件特定的標籤)。

我應該初始化該c數組爲nil?我不能這樣做.. array[500] = {nil};對不對?那是C#?

我使用LLVM和Clang 1.5,但我切換到GCC 4.2,因爲我沒有得到任何本地符號。我錯過了什麼?

回答

1

如果優化器開啓,那可以有效地消除局部變量。

但是,爲什麼一個C數組的可變ObjC數組?這似乎很奇怪。

+0

是的,是的。我沒有時間重構[OsiriX](http://www.osirix-viewer.com)的所有代碼,所以我盡我所能。這是來自OS9 C程序的端口。 –

0

檢查產品 - >方案 - >編輯方案 - >運行xxx,構建配置是調試,如果這是釋放發生你會看到。