сбой clang во время компиляции .cpp в Xcode в режиме Release, но нормально в отладке - PullRequest
0 голосов
/ 18 января 2019

У меня есть проект, в котором у меня есть .h, .cpp и мостовой заголовок, поэтому я в основном пытаюсь вызвать некоторый код c ++ из swift. Когда я собирал и работал в режиме отладки, все выглядело нормально.

Если я переключаюсь в режим релиза, его не удается собрать, и происходит сбой во время компиляции из clang. Вот сообщение:

clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: aarch64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to http://developer.apple.com/bugreporter/ and include the crash backtrace, preprocessed source, and associated run script.
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/r5/bs8mgc751_bbl3gcths89jc00000gp/T/CBaseMath-8e4bd0.cpp
clang: note: diagnostic msg: /var/folders/r5/bs8mgc751_bbl3gcths89jc00000gp/T/CBaseMath-8e4bd0.sh
clang: note: diagnostic msg: Crash backtrace is located in
clang: note: diagnostic msg: /Users/kelvinchan/Library/Logs/DiagnosticReports/clang_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang: note: diagnostic msg: 

Любая идея, если я должен что-то посмотреть, прежде чем пытаться подать отчет об ошибке для Apple в соответствии с инструкциями? Я пытался взглянуть на файл .crash, но я недостаточно технический, чтобы понять это. Он не ссылается ни на какой код C ++, который у меня есть.

1 Ответ

0 голосов
/ 18 января 2019

В вашем компиляторе происходит сбой, что раздражает. Лучший способ зарегистрировать ошибку - максимально уменьшить ее.

Лучший способ сделать это с помощью программы Creduce . Это программа, которая требует файл и скрипт. Файл - ваша стартовая ситуация. Сценарий должен доказать, что ваша ошибка все еще существует.

В этом случае ваш сценарий может существовать для двух команд компиляции и проверки кода возврата. Файл просто ваш .CPP

При всем этом программа будет выбрасывать код ... и максимально уменьшать размер файла. Я видел, как 100 000 строк были сокращены до 5.

Трюки: предварительно обработанные файлы имеют больший размер, хотя и являются автономными, поэтому их проще уменьшить.

Наконец, вам нужно много времени. Вы запускаете его, и он работает, пока не уменьшится

Если он выполняется менее чем за пять минут, ваш скрипт неисправен, и у вас обычно получается пустой .CPP Ожидаемое время находится в диапазоне часов.

...