2011-09-09 43 views
0

我已經導入了一個我爲iOS開發的iPhone應用程序,現在正在維護它。在嘗試添加到iPhone的日曆時,我遇到了一些錯誤,我很樂意嘗試通過一些調試來整理自己。Xcode 4.2沒有正確調試

一個問題是,當我在iPhone模擬器上運行應用程序時,它似乎運行的應用程序的版本比我運行的版本低。從那時起我已經刪除並添加了另一個按鈕,當我在模擬器中運行它時,舊按鈕仍然顯示。但是,當我在設備上編譯並運行它時,它將加載正確的版本並在「關於」視圖中顯示正確的版本號。

但是......我的主要問題是它似乎沒有正確調試設備。除了日曆問題外,該應用程序實際上工作正常,但是如果我在其中放置了幾個斷點,那麼我可以確切地知道錯誤發生的位置,但似乎並沒有經過!該應用程序暫停,Xcode說該應用程序已暫停!我可以按一下繼續執行等等,它似乎可行,但我看不到它跨越代碼,也不能將鼠標懸停在變量上以查看它們的值。

我已經嘗試重新安裝Xcode多次(我確實有安裝舊版本的問題,所以我不得不等待,直到下一個版本在Xcode安裝之前可用)。

壓力是:今天是我工作的最後一天,我真的很想在離開前讓iOS 5的應用程序準備就緒。

有沒有人見過這些症狀?有沒有我錯過的調試設置?或者它是一個損壞的安裝?

我希望我可以幫助人們瞭解更多信息,但我甚至不知道從哪裏開始尋找這裏。我可以發佈任何代碼?任何設置? (不太熟悉這個,我通常是一個.NET人)。

謝謝!

+2

所有的iOS 5 sdk和XCode都包含在NDA中,它禁止我們在apple.com上的iOS 5論壇外面討論它。 – rckoenes

+0

真的嗎?!好的,謝謝你讓我知道。 – Connell

回答

3

對不起,你正在經歷一個艱難的時刻康奈爾;正如你所說,你對這一切都不太熟悉,我正在制定幾個步驟來幫助你。有些是非常基本的,但是,當我遇到類似的情況時,我已經多次解決了這些步驟;

  • 如果您正在模擬器上進行測試,請從'iOS Simulator'主菜單執行'重置內容和設置'。這將刪除所有舊的數據和設置,並給你一個乾淨的開始。
  • 從Build菜單執行'Clean All Targets'。然後轉到您的物理項目文件夾,並在開始再次構建之前從其中刪除Build文件夾。
  • 重新啓動兩臺Xcode和模擬器(與Mac太多,如果可能的話)
  • 確保模式設置爲調試和甚至沒有在設備上釋放或配送
  • ,把新的之前刪除舊的應用程序在,並重新啓動它的好措施。
  • 從設備中刪除所有供應配置文件並安裝您需要的配置文件。

關於代碼;

  • 我注意到,當我意外地在代碼中創建了一個無限循環時,應用程序似乎'暫停'像這樣幾次。仔細檢查一下是否有可能導致這種情況的東西。
  • 除非你還沒有這樣做,否則在那裏拋出一個NSLog或兩個NSLog,看它是否真的沒有在斷點之外被執行。
+0

謝謝!現在嘗試第一組要點中的所有步驟。確實有一些我以前嘗試過,但我會讓他們全部完成,看看是否有效。我從來沒有嘗試刪除生成文件夾之前。 – Connell

+0

關於你的倒數第二點,我的意思是IDE實際上在調試部分表示「暫停」,當斷點被擊中時它會執行,並且當它說暫停時,跳過/跳出/進入按鈕不再變爲灰色。 – Connell

+0

不客氣康納爾。我剛剛看到關於iOS 5的評論,我們不應該公開討論它。那麼,爲了避免陷入困境,我可以建議你簡單地從你的問題中刪除它的參考嗎? :)無論如何,這是一個完全合法的問題。 – Madhu

0

我已經有一個項目,我開始在xcode 3,然後切換到xcode 4完全相同的問題。什麼解決它是我在項目設置中更改編譯器。

到xcode 3的默認編譯器是gcc,而xcode 4上的默認編譯器是LLVM gcc。

現在,我不知道gdb可能與LLVM gcc有什麼問題,但是在我的項目設置中將編譯器切換回gcc並且執行乾淨的構建修復了我的調試問題。

值得一試。

+0

礦已經設置爲GCC。無論是在項目設置還是其他方面,我都不知道。你是如何將它導入到xcode 4的?從字面上看,只需將xcode指向同一文件夾? (在做備份之後) – Connell

+0

我沒有必要做任何特別的操作來在xcode 4中打開舊的xcodeproj,我只是像平常一樣打開項目。但該項目設置爲使用默認編譯器,其中xcode 3是GCC,而xcode 4是LLVM GCC,這顯然是我調試問題的原因。在項目的Build Settings中將'Compiler version'更改回'GCC 4.2'而不是'System Default(LLVM GCC 4.2)'解決了我的問題。 – filipe

+0

掛上,對不起,我在看調試器,而不是編譯器。編譯器設置在哪裏?我已經看過項目設置,但它全部改變了! – Connell

0

您是否檢查過哪個調試器正在使用GDB或LLDB?從「產品」菜單中選擇「編輯方案」,然後查看「調試方案」下的「調試器」設置。您可以嘗試在GDB,LLDB和None之間切換並在兩者之間運行。