2012-06-11 2 views
1

Это XCode 3.2.6 на снежном барсе (gcc 4.2.1). Попытка скомпилировать Hello World program и получить segfault с сообщением о сбоях, подобным приведенному ниже (это пыталось использовать первый пример в Learn C the Hard Way). Любые намеки на возможное решение были бы замечательными.Сломанный ассемблер на Snow Leopard

Кроме того, XCode сбой «+ entityForName: не удалось найти NSManagedObjectModel для имени сущности« DTExtensionPointDescription »при попытке открыть или создать проект.

Process:   as [44911] 
Path:   /usr/bin/as 
Identifier:  as 
Version:   ??? (???) 
Code Type:  X86-64 (Native) 
Parent Process: i686-apple-darwin10-gcc-4.2.1 [44909] 

Date/Time:  2012-06-11 08:47:14.521 -0400 
OS Version:  Mac OS X 10.6.8 (10K549) 
Report Version: 6 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 
Crashed Thread: 0 Dispatch queue: com.apple.main-thread 

Thread 0 Crashed: Dispatch queue: com.apple.main-thread 
0 libSystem.B.dylib    0x00007fff851cdad2 rindex + 8 
1 as        0x0000000100000775 0x100000000 + 1909 
2 as        0x00000001000006d4 0x100000000 + 1748 

Thread 0 crashed with X86 Thread State (64-bit): 
    rax: 0x0000000000000000 rbx: 0x00007fff5fbff2a0 rcx: 0x000000000000002f rdx: 0x0000000000000000 
    rdi: 0x0000000000000000 rsi: 0x000000000000002f rbp: 0x00007fff5fbfee40 rsp: 0x00007fff5fbfee40 
    r8: 0x0000000000000001 r9: 0x8080808080808080 r10: 0x00007fff8a96c169 r11: 0x00007fff851cdaca 
    r12: 0x00007fff5fbfee98 r13: 0x0000000000000000 r14: 0x00007fff5fbff708 r15: 0x0000000000000007 
    rip: 0x00007fff851cdad2 rfl: 0x0000000000010246 cr2: 0x0000000000000000 

Binary Images: 
     0x100000000 -  0x100002fff as ??? (???) <44A4A2BA-257C-914C-FA97-714D15FFDBE1> /usr/libexec/gcc/i686-apple-darwin10/4.2.1/as 
    0x7fff5fc00000 -  0x7fff5fc3be0f dyld 132.1 (???) <DD3F7F3E-8612-A7BD-F508-9EF29132C419> /usr/lib/dyld 
    0x7fff82f8a000 -  0x7fff82f8eff7 libmathCommon.A.dylib 315.0.0 (compatibility 1.0.0) <95718673-FEEE-B6ED-B127-BCDBDB60D4E5> /usr/lib/system/libmathCommon.A.dylib 
    0x7fff85191000 -  0x7fff85352fef libSystem.B.dylib 125.2.11 (compatibility 1.0.0) <9AB4F1D1-89DC-0E8A-DC8E-A4FE4D69DB69> /usr/lib/libSystem.B.dylib 
    0x7fffffe00000 -  0x7fffffe01fff libSystem.B.dylib ??? (???) <9AB4F1D1-89DC-0E8A-DC8E-A4FE4D69DB69> /usr/lib/libSystem.B.dylib 

Вот что-то interesting-- здесь все «как» двоичные файлы (и/или ссылки) на моей системе:

/Developer/usr/bin/as 
/Developer/usr/libexec/gcc/darwin/i386/as 
/Developer/usr/libexec/gcc/darwin/ppc/as 
/Developer/usr/libexec/gcc/darwin/ppc64/as 
/Developer/usr/libexec/gcc/darwin/x86_64/as 
/Developer/usr/libexec/gcc/i686-apple-darwin10/4.0.1/as 
/Developer/usr/libexec/gcc/i686-apple-darwin10/4.2.1/as 
/Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1/as 
/Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as 
/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin10/4.2.1/as 
/Developer/usr/llvm-gcc-4.2/libexec/gcc/powerpc-apple-darwin10/4.2.1/as 

Это i686 те, которые Segfault (даже тогда, когда вызывается без ввода). Есть ли способ (переменная среды), который я могу использовать, чтобы сказать GCC использовать архитектуру x86_64 (я нахожусь на i7, поэтому он должен быть соответствующим в любом случае)

+0

Я бы попробовал обновление до Льва, а затем получил новый Xcode 4 и повторил попытку. –

+1

'as' => Ассемблер имеет ошибку сегментации. У меня нет копии книги, на которую вы ссылаетесь. Не могли бы вы поделиться исходным источником C? – ArjunShankar

+0

Xcode 3.2.6 имеет более одного компилятора C - 4.2.1 только по умолчанию - попробуйте переключиться на один из других (например, LLVM или gcc 4.0) –

ответ

1

Точка Hello World program должна подтвердить, что ваша система компиляции работает, и вы знаете, как ее использовать.

Взорвать ассемблер с помощью Hello World - довольно четкое указание на то, что ваша система компиляции не работает.

+0

Я отредактировал заголовок, чтобы лучше отразить фактическую проблему –

+0

Спасибо за это. Я проголосовал за то, чтобы закрыть это как «слишком локализованное», что означает «этот вопрос вряд ли поможет любым будущим посетителям, это ... необычайно узкая ситуация, которая обычно не применима к мировой аудитории Интернета». Это проблема с установкой системы, не поддающаяся ответить на этот вопрос. – msw

+0

достаточно справедливо. Спасибо за отзыв, в любом случае –