2017-04-19 152 views
0

我在這裏得到錯誤:設置malloc_error_break斷點調試

[self.points addObject:@{@"latt": 
[NSNumber numberWithFloat:(latitudeString.floatValue)],@"long": [NSNumber numberWithFloat:(longitudeString.floatValue]}]; 

像這樣:malloc的:*錯誤對象0x7f8480743a00:被釋放的指針沒有被分配 *設置malloc_error_break到斷點調試

後在斷點導航符號斷點添加malloc_error_break得到同樣的錯誤

回答

0

您可以設置一個單一的「所有異常breakp oint「就像你可以在這裏看到Exception Breakpoint in Xcode找到異常來自哪裏。

+0

再次使用異常斷點此錯誤的malloc後:***錯誤對象0x7ff02c3af000:雙自由 ***設置malloc_error_break斷點 – Naresh

+0

是否使用ARP調試 (LLDB)? –

+0

不使用ARP,我不知道什麼是ARP – Naresh

1

對於這種內存錯誤,ASAN(地址清理器)通常是一個有用的工具。它測試你的代碼,以便它可以在發生的地方捕獲不正確的malloc的使用,而不是稍後它們炸燬的時候。它記錄給定地址的免費事件分配的歷史記錄,例如,如果您有雙倍免費的話,它會向您顯示兩個空閒點。

您可以通過編輯Xcode中的運行方案,打開Diagnostics選項卡並打開Address Sanitizer打開此項。這將需要重新構建,並且測試後的二進制文件將運行得稍慢一些,但通常不會太慢,以至於無法使程序進入失敗點。

相關問題