فشل تطبيق دائرة الرقابة الداخلية لأرشفة للتوزيع

StackOverflow https://stackoverflow.com//questions/9701325

  •  13-12-2019
  •  | 
  •  

سؤال

طلبي يبني ، يدير ، يحاكي الخ.الخ.بخير!كل شيء يعمل بنسبة 100 ٪ على كل من أجهزة المحاكاة والأجهزة المادية.لا توجد أخطاء أو تحذيرات أثناء البناء.

الآن ، عندما أحاول أرشفة مشروعي ، أحصل على الخطأ التالي:

0  clang             0x000000010bdb3472 _ZL15PrintStackTracePv + 34
1  clang             0x000000010bdb38f9 _ZL13SignalHandleri + 553
2  libsystem_c.dylib 0x00007fff8bd8ccfa _sigtramp + 26
3  libsystem_c.dylib 0x0000000000000001 _sigtramp + 18446603338169922337
4  clang             0x000000010bc7fbbf (anonymous namespace)::ObjCARCOpt::runOnFunction(llvm::Function&) + 7407
5  clang             0x000000010b0502b2 llvm::FPPassManager::runOnFunction(llvm::Function&) + 322
6  clang             0x000000010b052baf (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) + 1039
7  clang             0x000000010b050bc1 llvm::MPPassManager::runOnModule(llvm::Module&) + 289
8  clang             0x000000010b0505c5 llvm::PassManagerImpl::run(llvm::Module&) + 277
9  clang             0x000000010b0504ad llvm::PassManager::run(llvm::Module&) + 13
10 clang             0x000000010b02f0e8 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) + 4424
11 clang             0x000000010b02c941 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 513
12 clang             0x000000010aef83f6 clang::ParseAST(clang::Sema&, bool) + 406
13 clang             0x000000010aef6ed7 clang::CodeGenAction::ExecuteAction() + 855
14 clang             0x000000010aec943f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 879
15 clang             0x000000010aec80cb clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2683
16 clang             0x000000010aeba8ce cc1_main(char const**, char const**, char const*, void*) + 5086
17 clang             0x000000010ae950d8 main + 648
18 clang             0x000000010ae94e44 start + 52
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal 2 (use -v to see invocation)
clang: note: diagnostic msg: Please submit a bug report to http://developer.apple.com/bugreporter/ and include command line arguments and all diagnostic information.
clang: note: diagnostic msg: Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/yn/jhqtwmzx2l31sytjj7ltz_qc0000gn/T/Image-u5GlrW.mii
clang: note: diagnostic msg: /var/folders/yn/jhqtwmzx2l31sytjj7ltz_qc0000gn/T/Image-u5GlrW.sh
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254

وليس لدي أي فكرة عن السبب.أنا الآن المشكلة تأتي من Image.mm التي أستخدمها من simple-iphone-image-processing مشروع.وأعتقد أن له علاقة مع قوس.هل يمكن لأي شخص إلقاء المزيد من الضوء على هذا?

شكرا


تحديث

حسنا ، لذلك أنا فقط حاولت ذلك حفنة من المرات وعملت.لذا فإن المشكلة متقطعة.سأترك هذا السؤال هنا إذا كان لدى أي شخص آخر ما يقوله.

هل كانت مفيدة؟

المحلول

الوظيفة التي تنكسر هي ObjCARCOpt::runOnFunction(llvm::Function&).فقط للضحك ، نشرت لي رمز رونونفونكتيون () أدناه.الغرض من هذه الوظيفة هو تحسين رمز الكائن المرتبط بالقوس في llvm::Function الكائن الذي يتم تمريره في.هذا جيد ، ولكن يبدو أن هناك خطأ في المترجم يتعلق بمعالجة الهدف-ج frankly ، والذي بصراحة لا يفاجئني.

وقد تم بالفعل تقديم تقارير الشوائب لشركة آبل (هنا, هنا, ، ربما أماكن أخرى).يجب عليك الإبلاغ عن ذلك أيضا.

حتى ذلك الحين ، هناك بعض الأشياء التي قد أقترحها.

1) منذ المشكلة متقطعة ، مجرد الحصول على مع المشروع الخاص بك.هذا يمكن أن ينجح بالنسبة لك ، أو ربما لا.بعد كل شيء ، من المفترض أن يكون المجمعون حتميين...

2) في محاولة لإيقاف قوس لكائن-ج stuff الاشياء.ربما هذا هو أبسط طريقة.

3) إيقاف التحسينات قوس.القيام بذلك عن طريق حذف -enable-objc-arc-opts من البناء الخاص بك.يتم ترك كيفية القيام بذلك باستخدام إعدادات بناء كسكودي كتمرين للقارئ.على أي حال أعتقد أن أفضل رهان هو 2).

رمز من llvm-3.0.src/lib/Transforms/Scalar/ObjCARC.cpp أدناه.أفضل رهان هو الخروج في if (!Run) return false;. Run سيكون خطأ إذا تم تعطيل القوس في الوحدة التي يتم تحليلها.حظا سعيدا ، لا تنسى أن يقدم هذا التقرير علة!

bool ObjCARCOpt::runOnFunction(Function &F) {
  if (!EnableARCOpts)
    return false;

  // If nothing in the Module uses ARC, don't do anything.
  if (!Run)
    return false;

  Changed = false;

  PA.setAA(&getAnalysis<AliasAnalysis>());

  // This pass performs several distinct transformations. As a compile-time aid
  // when compiling code that isn't ObjC, skip these if the relevant ObjC
  // library functions aren't declared.

  // Preliminary optimizations. This also computs UsedInThisFunction.
  OptimizeIndividualCalls(F);

  // Optimizations for weak pointers.
  if (UsedInThisFunction & ((1 << IC_LoadWeak) |
                            (1 << IC_LoadWeakRetained) |
                            (1 << IC_StoreWeak) |
                            (1 << IC_InitWeak) |
                            (1 << IC_CopyWeak) |
                            (1 << IC_MoveWeak) |
                            (1 << IC_DestroyWeak)))
    OptimizeWeakCalls(F);

  // Optimizations for retain+release pairs.
  if (UsedInThisFunction & ((1 << IC_Retain) |
                            (1 << IC_RetainRV) |
                            (1 << IC_RetainBlock)))
    if (UsedInThisFunction & (1 << IC_Release))
      // Run OptimizeSequences until it either stops making changes or
      // no retain+release pair nesting is detected.
      while (OptimizeSequences(F)) {}

  // Optimizations if objc_autorelease is used.
  if (UsedInThisFunction &
      ((1 << IC_Autorelease) | (1 << IC_AutoreleaseRV)))
    OptimizeReturns(F);

  return Changed;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top