【问题标题】:How to identify the source file which causes the Segmentation fault: 11如何识别导致分段错误的源文件:11
【发布时间】:2018-01-15 11:29:57
【问题描述】:

尝试在 Xcode 8.3.3 上编译 Swift 3.1 时遇到问题 Xcode 说:

:0: 错误:无法执行命令:分段错误:11 :0: 错误:编译命令因信号而失败(使用 -v 来 见调用)

但我无法找出导致分段错误的 swift 文件。

日志详情:

CompileSwift 普通 x86_64 cd /Users/hainguyen/Workspace/Flo/FloUniversal/Flo /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -filelist /var/folders/cb/n_ccw95n7zs11l87f9w98s7h0000gn/T/sources-ca5acd -target x86_64-apple-ios8.3 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3.sdk -I /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator -F /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator -F /Users/hainguyen/Workspace/Flo/FloUniversal/Flo/Flo/Platforms/ios/Frameworks -enable-testing -g -module-cache-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/ModuleCache -D 调试 -serialize-debugging-options -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-generated-files.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-own-target-headers.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-project-headers.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/DerivedSources/x86_64 -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/hainguyen/Workspace/Flo/FloUniversal/Flo -emit-module-doc-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build /Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/Flo.swiftdoc -serialize-diagnostics-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/AppDelegate.dia -import-objc-header /Users/hainguyen/Workspace/Flo/FloUniversal/Flo/Flo/Platforms/ios/Application/Flo-Bridging-Header.h -O -​​module-name Flo -emit-module-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/ x86_64/Flo.swiftmodule -emit-objc-header-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/Flo-Swift 。H -emit-dependencies-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/AppDelegate.d -num-threads 4 -output-filelist /var/folders/cb/n_ccw95n7zs11l87f9w98s7h0000gn/T/outputs-11dbac

0 迅速 0x000000010412b4f7 PrintStackTraceSignalHandler(void*) + 39 1 swift
0x000000010412a9a6 SignalHandler(int) + 646 2 libsystem_platform.dylib 0x00007fff9a5b5b3a _sigtramp + 26 3 libsystem_platform.dylib 0x00007fff5ed2a0c8 _sigtramp + 3296150952 4 迅速0x0000000101b80ba2 swift::Lowering::TypeConverter::getFunctionInterfaceTypeWithCaptures(swift::CanTypeWrapper, swift::AnyFunctionRef) + 242 5 swift
0x0000000101b30f1d swift::Lowering::TypeConverter::getConstantInfo(swift::SILDeclRef) + 157 6 迅速0x0000000101b52af0 swift::SILModule::getOrCreateFunction(swift::SILLocation, swift::SILDeclRef, swift::ForDefinition_t) + 96 7 swift
0x00000001017284c0 swift::Lowering::SILGenModule::getFunction(swift::SILDeclRef, swift::ForDefinition_t) + 304 8 swift
0x00000001017ed93c swift::Lowering::SILGenModule::emitVTableMethod(swift::SILDeclRef, swift::SILDeclRef, swift::SILLinkage&) + 60 9 swift
0x00000001017efc6c(匿名 命名空间)::SILGenVTable::addEntry(swift::SILDeclRef) + 876 10 swift
0x00000001017ef5fa swift::ASTVisitor::visit(swift::Decl*) + 778 11 swift
0x00000001017eeca3(匿名命名空间)::SILGenType::emitType() + 371 12 迅速 0x00000001017eeacd swift::Lowering::SILGenModule::visitNominalTypeDecl(swift::NominalTypeDecl*) + 29 13 swift 0x0000000101736ecb swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, 无符号整数)+ 1483 14 swift 0x0000000101738af2 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional, bool, bool) + 1666 15 迅速0x0000000100f49561 swift::performFrontend(llvm::ArrayRef, char const*, void*, swift::FrontendObserver*) + 42353 16 swift
0x0000000100ef8d6c 主要 + 9052 17 libdyld.dylib
0x00007fff9a3a6235 开始 + 1 18 libdyld.dylib
0x0000000000000046 开始 + 1707449874 堆栈转储: 0.程序参数:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -filelist /var/folders/cb/n_ccw95n7zs11l87f9w98s7h0000gn/T/sources-ca5acd -target x86_64-apple-ios8.3 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3.sdk -I /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator -F /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator -F /Users/hainguyen/Workspace/Flo/FloUniversal/Flo/Flo/Platforms/ios/Frameworks -enable-testing -g -module-cache-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/ModuleCache -D 调试 -serialize-debugging-options -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-generated-files.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-own-target-headers.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Flo-project-headers.hmap -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/DerivedSources/x86_64 -Xcc -I/Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/hainguyen/Workspace/Flo/FloUniversal/Flo -emit-module-doc-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build /Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/Flo.swiftdoc -serialize-diagnostics-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/AppDelegate.dia -import-objc-header /Users/hainguyen/Workspace/Flo/FloUniversal/Flo/Flo/Platforms/ios/Application/Flo-Bridging-Header.h -O -​​module-name Flo -emit-module-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/ x86_64/Flo.swiftmodule -emit-objc-header-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/Flo-Swift 。H -emit-dependencies-path /Users/hainguyen/Library/Developer/Xcode/DerivedData/Flo-dvhxokbnekzqxkdydjtabfyrwxeb/Build/Intermediates/Flo.build/Debug-iphonesimulator/Flo.build/Objects-normal/x86_64/AppDelegate.d -num-threads 4 -output-filelist /var/folders/cb/n_ccw95n7zs11l87f9w98s7h0000gn/T/outputs-11dbac

【问题讨论】:

    标签: ios swift xcode


    【解决方案1】:

    尝试禁用 Swift Compiler Optimization for Release 更具体地说:在您的目标中 > 构建设置 > 优化级别 > 发布 > 无优化

    【讨论】:

      【解决方案2】:

      无法从错误日志中识别分段错误 swift 文件。

      我尝试删除源代码中的一些 swift 文件并重新导入它们,然后现在分段错误错误现在消失了。

      我不知道为什么但解决了。

      感谢 Sohil R. Memon 抽出宝贵时间。

      【讨论】:

        【解决方案3】:

        Segmentation fault: 11 的原因是您在.swift 文件中编写的复杂表达式或函数。您可以通过检查错误中提到的行号来调试问题,例如:

        swift::Lowering::TypeConverter::getFunctionInterfaceTypeWithCaptures(swift::CanTypeWrapper, swift::AnyFunctionRef) + 242 5 快速

        如果您仍然无法调试问题,请将演示代码或上述文件放到网上,我会帮助您。

        【讨论】:

        • 我已经添加了完整的 Xcode 错误日志,你能帮帮我吗?谢谢 Sohil R. Memon!
        • @haithngn 我想看看编码。它对我没有任何帮助。
        • 源代码太大,文件太多:(可以分析错误日志吗?
        • @haithngn 抱歉,我不能,因为我需要查看编码来识别问题。为了减少它,你能把你写复杂转换或类似大逻辑的那部分发给我吗
        • 我想把我的编码发给你!能给我你的电子邮件地址 Sohil R. Memon 吗?或者您可以发送消息到 haithngn@gmail.com
        猜你喜欢
        • 2020-11-07
        • 2022-01-02
        • 2013-05-10
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        • 2021-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多