进击的Bug---那些年我遇到的大坑3


功能要求:程序正常运行,点击Debugview按钮调试界面

  • Bug:测试过程中发现,点击视图调试按钮后,界面报错,无法显示视图层级结构 如下图

  • 打印结果:
Error:    Unable to capture view hierarchy.
Details:  Log Title: Data source expression execution failure.
Log Details: error evaluating expression “(id)[[(Class)objc_getClass("DBGTargetHub") sharedHub] performRequestWithRequestInBase64:@"YnBsaXN0MDDUAQIDBAUGPD1YJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QEwcIFxgZGhscKCkqKywvNTY3OjtVJG51bGzTCQoLDBEWV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OkDQ4PEIACgAOABIAFpBITFBWABoAHgBGAEoAQXxAXREJHSGllcmFyY2h5UmVxdWVzdFR5cGVfEBxEQkdIaWVyYXJjaHlSZXF1ZXN0UHJlZGljYXRlXxAdREJHSGllcmFyY2h5UmVxdWVzdElkZW50aWZpZXJfEBdEQkdIaWVyYXJjaHlSZXF1ZXN0TmFtZRAB0wkKCx0iFqQeHyAhgAiACYAKgAukIyQlI4AMgA6AD4AMgBBfEBNlbnVtUHJvdmlkZXJDbGFzc2VzXxARaW5jbHVkZUxhenlWYWx1ZXNfEBNzdHJpY3Rlc3RWaXNpYmlsaXR5XxAWb3B0aW9uc1Byb3ZpZGVyQ2xhc3Nlc9IKCy0uoIAN0jAxMjNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0FycmF5ojI0WE5TT2JqZWN0CBAD0jAxODlcTlNEaWN0aW9uYXJ5ojg0XxAkOUYxMUI2RUEtRTQzNS00QkM4LThDQjYtNUU5OTJGRDNFOTA2XxAPSW5pdGlhbCByZXF1ZXN0XxAPTlNLZXllZEFyY2hpdmVy0T4/VHJvb3SAAQAIABEAGgAjAC0AMgA3AE0AUwBaAGIAbQB0AHkAewB9AH8AgQCGAIgAigCMAI4AkACqAMkA6QEDAQUBDAERARMBFQEXARkBHgEgASIBJAEmASgBPgFSAWgBgQGGAYcBiQGOAZkBogGqAa0BtgG3AbkBvgHLAc4B9QIHAhkCHAIhAAAAAAAAAgEAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAiM="]”: error: Execution was interrupted.
The process has been returned to the state before expression evaluation.


Log Method: -[DBGDataSourceConnectionLibViewDebugger _executeLLDBExpression:forRequest:onPotentialThread:iteration:]_block_invoke_2
Method:   -[DBGViewDebugger _initiateInitialRequestWithDataSourceVersion:]_block_invoke
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
2018-04-01 13:40:42.908796+0800 xxx[2105:648229] Error: DBGTargetHub - Failed to unarchive request data with error: Error Domain=NSCocoaErrorDomain Code=4864 "*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: incomprehensible archive (0x7b, 0xa, 0x20, 0x20, 0x22, 0x44, 0x42, 0x47)" UserInfo={NSDebugDescription=*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: incomprehensible archive (0x7b, 0xa, 0x20, 0x20, 0x22, 0x44, 0x42, 0x47)}
复制代码
  • 按照控制台的打印信息,是NSKeyedUnarchiver在解压中出错导致的.对实际调试没有什么帮助.

  • 在app中先注释掉多余的代码,不启动无关的控制器,最后发现只要不加载某个自定义的view,就可以正常调试了.

  • 仔细查看该view文件中的内容,注释掉.m文件中initWithFrame:内部的所有方法,仍然无法正常显示调试界面.

  • 进一步注释掉.h文件的中属性,尝试加载,成功了!!!看来问题在.h文件中.

  • 查看.h中的内容,逐条注释掉,察看反应,最后定位到一个属性上,一个名为text的int型属性!!!!,当给这个text设置为0时正常,设置为1时就不能正常调试了:

竟然是这样的一个错误导致的,猜想一下:自定义的view内部在显示Debug view的时候,默认读取这个text值后会按照NSString类型来解压处理,所以导致NSKeyedUnarchiver出错.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值