2009-04-08 24 views
14

我試圖分析一個iPhone應用程序使用泄漏應用程序和一切似乎工作正常,除了當我試圖查看有關特定內存泄漏的詳細信息。泄漏似乎沒有加載我的源代碼。看看右邊的堆棧視圖,我可以看到引用iPhone框架的調用,但引用我寫的源代碼的任何東西都是空的。下面的截圖說明了我的觀點。淺藍色的塊應引用我的源代碼。有沒有人有過這個問題?泄漏只是找不到我的源代碼/符號?謝謝!儀器泄漏 - 未顯示我的源代碼

編輯:我編譯使用'設備 - iPhone OS 2.2'與調試配置的應用程序。我通過選擇Run-> Start With Performance Tool->從Xcode中泄漏來啓動泄漏。如何讓'爲符號文件提供'泄漏?

alt text http://www.andrewgarrison.com/forum/leaks_nosource.png

回答

2

刪除來自您的啓動磁盤的任何非ASCII字符
和主機名(請參閱系統偏好設置共享面板) 並重新啓動。

大達!

+0

這項工作?我的啓動盤和主機名都是隻有ASCII字符的單個字 - 但我也沒有看到符號。 – 2009-09-17 01:30:32

+0

這幫了我2.x風格的崩潰日誌。對於3.0風格,我不得不學習一些Perl並修復符號性腳本。現在可能有一個明確的版本。 – 2009-09-17 10:51:50

+0

你是什麼意思「修復符號腳本?」我被困在這個沒有非ASCII字符的地方。儀器*使用*爲我工作,直到我的雪豹「升級」。 – n8gray 2009-09-22 00:01:31

1

你在調試模式下進行編譯,使符號文件可用?

+0

請問下載者請發表評論。謝謝。 – 2009-05-22 10:33:25

8

我看到了這種情況,但在不同的配置。在Snow Leopard 10.6.1,Xcode 3.2,Instruments 2.0中,在模擬器中運行iPhone OS 3.0時,我沒有在泄漏中獲得任何符號。在Apple的iPhone開發人員論壇中搜索發現,這是iPhone 3.0 SDK(正在開發)中的一個已知問題,將活動SDK切換到3.1是一種解決方法。果然,它爲我工作!

1

如果您的構建目標目錄以「。」開頭。 (例如,我正在使用「.xcode-build」),則不會找到.dsym文件。在我的情況下,將build目錄更改爲「xcode-build」可以解決問題,現在我的應用程序的所有符號都顯示在堆棧跟蹤中!

1

我有同樣的問題。原來我已經將build目錄設置爲/ tmp/xcode。將其更改回默認值可解決問題。這是Xcode 3.2.3。

13

對於iOS 4.0或更高版本,修復符號,把那些無用的內存地址轉換成美麗的文件名,函數名和行號的方法如下:

  1. 在Xcode中,轉到運行 - >運行使用Performance Tool並選擇您的樂器
  2. 儀器加載後,點擊停止按鈕停止錄製。轉到文件 - >重新符號文檔。
  3. 在新窗口中,單擊路徑並單擊加號(+)按鈕添加新路徑。導航到包含項目文件的文件夾,然後單擊打開。點擊Symbolicate。
  4. 利潤!

在我終於找到解決方案之前,我一直在尋找這個好的月份。我希望這可以幫助你們中的一些人!

2

項目>編輯項目設置

選擇調試目標

點擊構建標籤

確保地帶鏈接的產品沒有被選中

0

我有雪豹與Xcode 4.5.2 - 儀器4.5 一旦我已設置默認調試位置爲遺產它開始顯示

轉到文件---->項目設置---->高級---選擇傳統

Debug Location ---Legacy Settings