Ошибка сегментации 11 при переносе существующего проекта в Xcode 10 GM seed - PullRequest
0 голосов
/ 14 сентября 2018

Новое начальное число Xcode GM (а также предыдущая бета-версия 6) не может быть создано с множественными ошибками сегментации 11 ошибок (с использованием swift 4.2). Ошибка не исчезнет, ​​даже если я удалю, переименую или закомментирую рассматриваемый класс (ы).

Проект без проблем собирается на Swift 4.1 с Xcode 9.

Пример класса, в котором появляется ошибка:

import Foundation

/// Possible sides for a corner.
public enum CornerSide {
    /// Corner on the left side.
    case left,
    /// Corner on the right side.
    right
}

или

import Foundation

extension Int {
    var toString: String { return "\(self)" }
}

или

import Foundation

public class DemoStatistics: Statistics { }

Класс статистики - это обычный класс с функциями и расширениями (ничего особенного).

Трассировка стека:

0  swift                    0x000000011199264a PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x0000000111991dfe SignalHandler(int) + 302
2  libsystem_platform.dylib 0x00007fff7e337f5a _sigtramp + 26
3  libsystem_platform.dylib 0x00007fd691b0bcd8 _sigtramp + 326974872
4  swift                    0x000000010f17e126 swift::ProtocolConformanceRef::subst(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const + 550
5  swift                    0x000000010f18a7f9 swift::SubstitutionMap::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const + 761
6  swift                    0x000000010f17e4fd swift::ProtocolConformance::subst(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const + 749
7  swift                    0x000000010f17e7bb swift::ProtocolConformance::subst(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const + 1451
8  swift                    0x000000010eda6e59 swift::ConformanceChecker::ensureRequirementsAreSatisfied(bool)::GatherConformancesListener::satisfiedConformance(swift::Type, swift::Type, swift::ProtocolConformanceRef) + 201
9  swift                    0x000000010ed7cc2f swift::TypeChecker::checkGenericArguments(swift::DeclContext*, swift::SourceLoc, swift::SourceLoc, swift::Type, swift::ArrayRefView<swift::Type, swift::GenericTypeParamType*, swift::GenericTypeParamType* swift::staticCastHelper<swift::GenericTypeParamType>(swift::Type const&), true>, llvm::ArrayRef<swift::Requirement>, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, llvm::function_ref<bool (swift::TypeCheckRequest)>*, swift::OptionSet<swift::ConformanceCheckFlags, unsigned int>, swift::GenericRequirementsCheckListener*, swift::SubstOptions) + 1103
10 swift                    0x000000010eda6bcd swift::ConformanceChecker::ensureRequirementsAreSatisfied(bool) + 1325
11 swift                    0x000000010edc24ba swift::ConformanceChecker::resolveTypeWitnesses() + 378
12 swift                    0x000000010ed92973 swift::MultiConformanceChecker::checkIndividualConformance(swift::NormalProtocolConformance*, bool) + 11347
13 swift                    0x000000010ed8f8c2 swift::MultiConformanceChecker::checkAllConformances() + 162
14 swift                    0x000000010eda8ac7 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) + 4279
15 swift                    0x000000010edf2f94 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 2388
16 swift                    0x000000010ea2d865 swift::CompilerInstance::performSema() + 4949
17 swift                    0x000000010dc1a59b performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 731
18 swift                    0x000000010dc16dc5 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 7717
19 swift                    0x000000010dbbca35 main + 1349
20 libdyld.dylib            0x00007fff7e029015 start + 1
21 libdyld.dylib            0x00000000000000ac start + 2180870296

Все классы, в которых возникает ошибка, находятся в среде, которую я создаю и использую в образце приложения iOS. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 17 сентября 2018

удалось решить это сам. Проблема была в одном универсальном классе, который наследовал от одного и того же протокола дважды (один раз напрямую и один раз через другой протокол).

Как ни странно, swift 4.1 и Xcode 9 были в порядке с этим, и локация ошибки сегментации 11 не имела никакого отношения к тому, где была фактическая ошибка.

...