我创建了我的班级的一个例子:https ://github.com/ChoadPet/H.264-Decoding
当我使用配置构建我的应用程序时,DEBUG
一切正常,但是当我归档RELEASE
它时,它在这条线上崩溃:
let status = VTDecompressionSessionDecodeFrame(session,
sampleBuffer: sampleBuffer,
flags: defaultDecodeFlags,
frameRefcon: nil,
infoFlagsOut: nil)
Address Sanitizer
启用后,我收到此错误
:Thread 9: Use of deallocated memory
SUMMARY: AddressSanitizer: heap-use-after-free
(.../Frameworks/libclang_rt.asan_ios_dynamic.dylib:arm64+0x1a1f4) in wrap_memmove
...
(if you need more crash info, let me know)
没有:Thread 12: EXC_BAD_ACCESS (code=1, address=0x107dd0020)
我确实知道有一些内存被释放并通过VTDecompressionSessionDecodeFrame
方法访问,但我找不到任何十六进制地址,我不明白这如何与DEBUG
构建完美配合。
在此方法之前,session
并sampleBuffer
已成功创建(初始化)。
是否有一些我可以更改的项目设置DEBUG configuration
可能导致崩溃?或者有人可以指出我的代码问题?
谢谢!