나는 소프트웨어를 제어하는 응용 프로그램을 만들고 있습니다. 때때로 EXC_BAD_ACCESS 오류가 발생합니다. 프로젝트가 ARC를 사용할 수있는 경우에도 MIDINetworkConnection과 관련 있다고 생각합니다. 연결 번호에 액세스하려하지만 잘못된 메모리 주소로 이동하려고 시도하는 것 같습니다. 누구든지 문제를 발견 할 수 있습니까?MIDINetworkConnection EXC_BAD_ACCESS 오류
- (NSString*) describeConnections {
NSMutableArray* connections = [NSMutableArray arrayWithCapacity:[[[MIDINetworkSession defaultSession] connections] count]];
for (MIDINetworkConnection* connection in [[MIDINetworkSession defaultSession] connections]) {
[connections addObject:[[connection host] name]];
}
if ([connections count] > 0) {
return [connections componentsJoinedByString:@", "];
}
else{
return @"(Not connected)";
}
}
중단 점 오류 메시지와 함께
NSMutableArray* connections = [NSMutableArray arrayWithCapacity:[[[MIDINetworkSession defaultSession] connections] count]];
에 중지 : 스레드 1 : EXC_BAD_ACCESS (코드 = 1, 주소 = 0x2033b00c)
내가 연결을보고 있어요 디버거 =에서 (NSMutableArray *) 위의 오류와 일치하지 않는 0x839ab1e0. 이것이 문제의 원인이 될 수 있습니까?
이 스레드 스택 트레이스 :* thread #1: tid = 0x9f2b0, 0x01da9e15 libobjc.A.dylib`objc_retain + 21, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x5302f2fb)
frame #0: 0x01da9e15 libobjc.A.dylib`objc_retain + 21
* frame #1: 0x0000d14b Fader`-[MIDIController describeConnections](self=0x7c3c35b0, _cmd=0x00083ee3) + 683 at MIDIController.m:149
frame #2: 0x00049073 Fader`-[MainViewController internalReloadConnections:](self=0x7d0f6000, _cmd=0x000849f0, sender=0x7d0f6000) + 115 at MainViewController.m:1087
frame #3: 0x000494e0 Fader`-[MainViewController updateDisplay](self=0x7d0f6000, _cmd=0x000847c9) + 272 at MainViewController.m:1143
frame #4: 0x014e2119 Foundation`__NSFireTimer + 97
frame #5: 0x020bf8d6 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
frame #6: 0x020bf25d CoreFoundation`__CFRunLoopDoTimer + 1309
frame #7: 0x0207e6ba CoreFoundation`__CFRunLoopRun + 2090
frame #8: 0x0207dbcb CoreFoundation`CFRunLoopRunSpecific + 443
frame #9: 0x0207d9fb CoreFoundation`CFRunLoopRunInMode + 123
frame #10: 0x038d324f GraphicsServices`GSEventRunModal + 192
frame #11: 0x038d308c GraphicsServices`GSEventRun + 104
frame #12: 0x002b58b6 UIKit`UIApplicationMain + 1526
frame #13: 0x0000b06c Fader`main(argc=1, argv=0xbfff63f0) + 76 at main.m:14
frame #14: 0x02a6bac9 libdyld.dylib`start + 1
디버그 콘솔의 모든 메시지가 중단 점 때 열거하는 것이 좋습니다? (또는 중단 점을 해제 한 경우) –
콘솔에 메시지가 없습니다 (lldb). – Youngin
(lldb) 프롬프트에서 'bt'를 입력하면 스택 추적을 얻을 수 있습니다. 단서가있을 수 있습니다. –