【发布时间】:2019-05-21 05:06:18
【问题描述】:
当发生崩溃时,我目前面临一些 Swift 源文件的问题。事实上,在 Crashlytics 上,我有一个关于线路和崩溃原因的奇怪信息。它告诉我源在 line 0 处崩溃了,它给了我一个 SIGTRAP 错误。我读到当线程遇到断点时会发生此错误。但问题是这个错误发生在我不调试时(来自TestFlight的应用程序测试)。
这是一个示例,当 Crashlytics 告诉我在第 0 行存在 SIGTRAP 错误:
// Method that crashs
private func extractSubDataFrom(writeBuffer: inout Data, chunkSize: Int) -> Data? {
guard chunkSize > 0 else { // Prevent from having a 0 division
return nil
}
// Get nb of chunks to write (then the number of bytes from it)
let nbOfChunksToWrite: Int = Int(floor(Double(writeBuffer.count) / Double(chunkSize)))
let dataCountToWrite = max(0, nbOfChunksToWrite * chunkSize)
guard dataCountToWrite > 0 else {
return nil // Not enough data to write for now
}
// Extract data
let subData = writeBuffer.extractSubDataWith(range: 0..<dataCountToWrite)
return subData
}
另一个 Swift 文件解释了“writeBuffer.extractSubDataWith(range: 0..
public extension Data {
//MARK: - Public
public mutating func extractSubDataWith(range: Range) -> Data? {
guard range.lowerBound >= 0 && range.upperBound <= self.count else {
return nil
}
// Get a copy of data and remove them from self
let subData = self.subdata(in: range)
self.removeSubrange(range)
return subData
}
}
你能告诉我我做错了什么吗?或者这个奇怪的 SIGTRAP 错误会发生什么?
谢谢
【问题讨论】:
标签: ios swift crash crashlytics