如何在LLDB下排查message sent to deallocated instance问题

转载 2015年07月09日 19:23:54

如何在LLDB下排查message sent to deallocated instance问题

热度 2已有 5742 次阅读 2013-5-16 11:33 |系统分类:移动互联网

在XCode的以前版本中,如果遇到了

[代码]c#/cpp/oc代码:

1 message sent to deallocated instance 0x6d564f0
我们可以使用info malloc-history 0x6d564f0来查看调用堆栈来查看崩溃发生的地方,这种方法这里不作阐述,大家自行百度。

在新的XCode里,调试器默认使用LLDB,我就讲一下如何在LLDB状态下定位到由于内存操作不当引起的Crash
首先我有一段会发生崩溃的代码:

[代码]c#/cpp/oc代码:

1 NSString *themePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:themePathTmp];
2 if(themePath)
3   self.backgroundIV.image = [UIImage imageWithContentsOfFile:[themePath stringByAppendingPathComponent:@"mask_1.png"]];
4    
5 [themePath release];
学过内存管理的人都应该知道在这里themePath并没有被retain,所以如果写了release,那么必然会发生崩溃情况。首先我们需要对开发的环境变量进行设置

运行代码,出现下面的崩溃现象

下面我们打开“活动监视器”,找到我们对应的PID,我们的Target为HPThemeManager,只要找到HPThemeManager对应的PID就可以(HPThemeManager是在论坛里下载的,本来正在看代码,就直接拿他来作试验了)

现在,我们得到了两个主要的信息:
进程ID:50127
崩溃地址:0x6d564f0

我们打开终端,输入以下命令:

[代码]c#/cpp/oc代码:

1 sudo malloc_history 50127 0x6d564f0
结果显示为:

这样我们用能定位到这行代码

[代码]c#/cpp/oc代码:

1 NSString *themePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:themePathTmp];

对themePath进行排查,就找到了崩溃的罪魁祸首

[代码]c#/cpp/oc代码:

1 [themePath release];

举报

相关文章推荐

如何在LLDB下排查message sent to deallocated instance问题

非常好的文章,转载自:http://www.devdiv.com/lldb_message_sent_to_deallocated_instance_-blog-50901-50856.html 在...

如何在LLDB下排查message sent to deallocated instance问题

如何在LLDB下排查message sent to deallocated instance问题 热度 2已有 5742 次阅读 2013-5-16 11:33 |系统分类:移动互联网 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

如何在LLDB下排查message sent to deallocated instance问题

在XCode的以前版本中,如果遇到了 [代码]c#/cpp/oc代码: 1 message sent to deallocated instance ...

message sent to deallocated instance

转自http://www.cnblogs.com/qingjoin/p/3515902.html 在XCode的以前版本中,如果遇到了 [代码]c#/cpp/oc代码: ...

message sent to deallocated instance

在XCode的以前版本中,如果遇到了 [代码]c#/cpp/oc代码: 1 message sent to deallocated instance ...

message sent to deallocated instance

[代码]c#/cpp/oc代码: 1 message sent to deallocated instance 0x6d564f0 ...

message sent to deallocated instance 除錯

原文地址:http://kenobiluh.blogspot.com/2011/04/message-sent-to-deallocated-instance.html 常常程式一長,哪邊就...
  • mqlsq
  • mqlsq
  • 2012-05-16 17:34
  • 723

message sent to deallocated instance 除錯

常常程式一長,哪邊就不小心多release了一次 這時候編譯器就只會告訴你:BAD_ACCESS,然後程式就死了 剛開始會google到去Argument加個NSZombieEnabled YES...

[CALayer release]: message sent to deallocated instance iOS内存过度释放问题

[CALayer release]: message sent to deallocated instance iOS内存过度释放问题 解决方式: 1:先找到过度释放的 内存指针  ...

iOS开发 message sent to deallocated instance问题解决

问题直接看截图吧 解决方法1. 活动监视器查看APP 进程号PID2. terminal里查看问题使用命令 malloc_history PID address |grep address PID...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)