2009-01-12 111 views
4

我是使用Xcode進行開發的新手,並且在使用內置泄漏工具時遇到問題。Mac OSX - Xcode /泄漏問題

我已啓用後衛malloc並將MallocStackLogging YES & MallocStackLoggingNoCompact YES在可執行文件的環境變量中。然後通過點擊

運行 - >啓動與性能運行過程中工具 - >泄漏

但只有對象分配顯示在用戶界面,在泄漏幀中所有它說是「分析的過程」(我已經離開它超過20分鐘像這樣沒有變化)

我deliberatly建立在main()

void * leak = malloc(100); 
    leak=NULL; 

,但沒有改變

如果我運行F A泄漏黑山控制檯

~$ leaks ProcessName 

它正確地報告

Process 1014: 223344 nodes malloced for 9017 KB 
Process 1014: 1 leak for 112 total leaked bytes. 
Leak: 0x100100020 size=112 string '' 
    Call stack: [thread 0x7fff70767720]: | start | main | malloc | malloc_zone_malloc 

但沒有人知道爲什麼UI將不會顯示同樣的事情?

謝謝

回答

2

該問題似乎是應用程序編譯爲64位。一個簡單的測試Xcode項目

#include <iostream> 

void leaks(){ 

    char * newleak = (char*) malloc(2000); 

    return; 
} 

int main (int argc, char * const argv[]) { 

    void * leak = malloc(100); 
    leak = NULL; 


    while(1){ 
     leaks(); 
     sleep(10); 
    } 

} 

泄漏將正確顯示如果架構是I386但是如果我編譯爲x86_64的(64所需的位運算),將掛在「分析過程」。有什麼我在這裏做錯了嗎?我正在使用Intel Core 2 Duo Macbook pro