2011-08-29 45 views
7

當我設置在我的項目breakopint,並點擊「繼續評估所有動作之後」複選框時,Xcode不會繼續。不僅如此,執行經常似乎掛起。無論我是否在斷點上有任何操作,情況都是如此。Xcode是在停止自動繼續斷點

我非AUTOCONTINUE斷點正常工作。

我嘗試了全新的項目和問題仍時有發生。所以它必須與我的電腦或Xcode中的設置相關。我使用雪豹和Xcode 4.0.2。

可能是什麼回事?

編輯:代碼和控制檯日誌。

代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    [self.window makeKeyAndVisible]; 
    int x = 5; 
    printf("%d", x); // breakpoint here with autocontinue checked and no action 
    x+=2; 
    printf("%d", x); 
    return YES; 
} 

控制檯日誌:

This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all 
Attaching to process 87901. 
Pending breakpoint 1 - ""AutocontinueTestAppDelegate.m":21" resolved 
Current language: auto; currently objective-c 
57 

有趣的是,即使是最優化設置爲無,既printf語句解僱。

+0

您的標題和說明似乎有衝突。問題是「Xcode [是]在自動繼續斷點處停止還是」Xcode不停止「?如果是前者,我會得到完全相同的問題,並希望你能得到一個很好的答案! – clozach

+0

這是否出現在Xcode 4.1中? –

+0

我實際上認爲@deanWombourne可能是對的:可能是一個錯誤。以下是我剛剛做的一個測試:1)在按鈕操作中設置斷點2)編輯並設置播放聲音+自動繼續3)運行應用程序:當我點擊模擬器中的按鈕時,應用程序暫停。 4)將斷點拖到一行:應用程序繼續,模擬器進入前臺,隨後的水龍頭不停頓地播放聲音。 – clozach

回答

1

從你的描述,這聽起來像它可能是在Xcode中的錯誤 - 舉報here

(對不起,我的回答沒有更多幫助)

1

您可以粘貼您的控制檯日誌。檢查你的'條件'和'行動'是否有效,沒有錯誤。我只是用resetAllAppData == NO的動作測試過這個,但是斷點沒有停止執行,因爲'動作'需要'resetAllAppData == false'。

這是另一個測試的控制檯日誌:

Attaching to process 23361. 
warning: Error parsing breakpoint condition expression 
Pending breakpoint 1 - ""iPhoneAppDelegate.m":50" resolved 

,因爲我設置了「行動」斷點的是「調試器命令」 po resetAllAppData我得到這個錯誤,因爲resetAllAppData不是一個對象typedef signed char BOOL;它不能執行該動作,並且隨後不會停在斷點處。

2

如果您正在設備上運行您的應用程序,我剛剛爲您解答了這個問題: 目前,自動繼續斷點僅適用於模擬器,不適用於設備。

來源:一些蘋果工程師。

0

這也發生在我身上。我注意到,在給定的斷點處它只會偶爾停止。斷點使用po將BOOL記錄到控制檯。檢查它我發現它會停止,只要BOOL是1,它將停止並追加到日誌[no Objective-C description available]。將其更改爲防止無法描述的「錯誤」導致自動繼續。

所以,現在我使用的是這樣的:

po (NSString *)[NSString stringWithFormat:@"%d", isCenterActive] 

有可能是一個更好的和更短的解決方案,但。