2012-12-20 20 views
7

Tôi gặp lỗi SIGPIPE trong Dự án Xcode của mình. Lỗi này đã được bắt đầu hiển thị từ một tuần trước đó. Nếu tôi nhận xét phương thức này, hãy gọi: [self configureBump]; mọi thứ hoạt động tốt. Tôi đã tích hợp BUMP API vào dự án của mình. API này đang hoạt động cho đến một tuần trước mà không gặp bất kỳ sự cố nào. Tôi không chắc chắn về nguyên nhân của lỗi này. Bất cứ ai có thể vui lòng giúp tôi giải quyết lỗi này? Một số bạn bè của tôi cũng đã báo cáo lỗi này.SIGPIPE ngoại lệ trong Dự án iOS Với BUMP API được tích hợp

Xcode Version: 4.5 iOS Version: iOS 6.0/iOS 5.0

Xin xem dưới đây Stack Trace:

* thread #1: tid = 0x1c03, 0x95a887d2 libsystem_kernel.dylib`mach_msg_trap + 10, stop reason = signal SIGPIPE 
    frame #0: 0x95a887d2 libsystem_kernel.dylib`mach_msg_trap + 10 
    frame #1: 0x95a87cb0 libsystem_kernel.dylib`mach_msg + 68 
    frame #2: 0x029ef13a CoreFoundation`__CFRunLoopServiceMachPort + 186 
    frame #3: 0x02952580 CoreFoundation`__CFRunLoopRun + 1312 
    frame #4: 0x02951db4 CoreFoundation`CFRunLoopRunSpecific + 212 
    frame #5: 0x02951ccb CoreFoundation`CFRunLoopRunInMode + 123 
    frame #6: 0x03093879 GraphicsServices`GSEventRunModal + 207 
    frame #7: 0x0309393e GraphicsServices`GSEventRun + 114 
    frame #8: 0x017a0a9b UIKit`UIApplicationMain + 1175 
    frame #9: 0x00002dd7 iCard`main + 199 at main.m:17 
    frame #10: 0x00002185 iCard`start + 53 
+1

Một API lỗi khác ... Bây giờ hãy xem điều này: các nhà phát triển Dropbox không có một đầu mối về các hàm variadic và làm hỏng ngăn xếp của bạn, có tốt hơn không? –

+0

'[self configureBump]' có vẻ như nó xuất phát trực tiếp từ ứng dụng mẫu của họ. có thể đào sâu hơn một chút bằng cách thiết lập các điểm ngắt trong trình gỡ lỗi Xcode, hoặc bằng cách thiết lập các cuộc gọi 'NSLog' trong phương thức configureBump để xác định chính xác hơn các cuộc gọi đang gây ra SIGPIPE. –

Trả lời

7

Có một khả năng rằng SIGPIPE bị ném vào thời gian chờ ổ cắm hay không/kết nối bị mất bên trong lib đó. Có thể có một số lỗi máy chủ trên mặt của họ hoặc một cái gì đó.

Bạn có thể khắc phục bằng cách bỏ qua SIGPIPE với:

signal(SIGPIPE, SIG_IGN); 

hoặc

signal(SIGPIPE, SO_NOSIGPIPE); 

Kiểm tra this link để biết chi tiết.

Mặt khác, bạn có thể gỡ lỗi hơn nữa bằng cách thiết lập chức năng xử lý của bạn với

signal(SIGPIPE, yourHandlerFunc);

và kiểm tra tình trạng của ổ cắm/ivars/etc trong đó.

Các vấn đề liên quan