我终于能够编译 libssh2,但现在我一直看到EXC_BAD_ACCESS
错误。
这是关于 libssh2 如何工作的基本背景(至少是 GUI)是这样的......
- 输入命令
- 输入主机 IP
- 输入用户名/密码
- 按下按钮发送 SSH 命令
现在,像这样的简单命令可以echo Hello World
正常工作,但是作为一个项目的整个想法是能够远程重新启动我的 mac。最初,使用该命令shutdown -r
不会在远程机器上发生任何事情,并导致应用程序崩溃。然后我有了一个想法,我可以通过使用该命令简单地打开一个重新启动 mac 的 applescript 应用程序,该open /path/to/restart.app
命令运行良好。机器重新启动,yippee!
除了,应用程序崩溃并出现以下错误:
Thread 1: EXC_BAD_ACCESS (code=1, address=_____)
我对objective-c真的很陌生,我不知道如何解决这个问题。在google上查找,我发现它是由以下原因引起的:
- 内存问题
- 消息被发送到一个已经被释放的对象(我不确定这是什么意思,有什么帮助吗?)
所以,我猜一旦命令通过 SSH 发送,它就会断开连接,然后疲劳显示结果,但对象已经消失了。
我会为此发布源代码,但它有很多不同的文件,所以我将发布 github 链接:
https://github.com/x2on/libssh2-for-iOS
我没有修改任何代码,所以如果有人想复制我的问题,我使用的代码与那里的代码相同。
崩溃日志:
Process: libssh2-for-iOS [38153]
Path: /Users/USER/Library/Application Support/iPhone Simulator/*/libssh2-for-iOS.app/libssh2-for-iOS
Identifier: libssh2-for-iOS
Version: ???
Code Type: X86 (Native)
Parent Process: ??? [1]
User ID: 501
Date/Time: 2012-04-18 18:32:03.883 -0400
OS Version: Mac OS X 10.8 (12A154q)
Report Version: 10
Crashed Thread: 0
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
External Modification Warnings:
Debugger attached to process.
VM Regions Near 0:
--> __PAGEZERO 0000000000000000-0000000000001000 [ 4K] ---/--- SM=NUL /Users/USER/Library/Application Support/iPhone Simulator/*/libssh2-for-iOS.app/libssh2-for-iOS
__TEXT 0000000000001000-0000000000002000 [ 4K] r-x/rwx SM=COW /Users/USER/Library/Application Support/iPhone Simulator/*/libssh2-for-iOS.app/libssh2-for-iOS
Application Specific Information:
iPhone Simulator 272, iPhone OS 5.0 (iPhone/9A334)
Thread 0 Crashed:
0 ??? 0000000000 0 + 0
1 libssh2-for-iOS 0x00003f39 _libssh2_channel_open + 281
2 libssh2-for-iOS 0x00004837 libssh2_channel_open_ex + 151
3 libssh2-for-iOS 0x00003714 -[SSHWrapper executeCommand:] + 212
4 libssh2-for-iOS 0x00002b22 -[libssh2_for_iOSAppDelegate executeCommand:] + 338
5 CoreFoundation 0x01603ec9 -[NSObject performSelector:withObject:withObject:] + 73
6 UIKit 0x0049e5c2 -[UIApplication sendAction:to:from:forEvent:] + 96
7 UIKit 0x0049e55a -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
8 UIKit 0x00543b76 -[UIControl sendAction:to:forEvent:] + 66
9 UIKit 0x0054403f -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 503
10 UIKit 0x00542e22 -[UIControl touchesBegan:withEvent:] + 264
11 UIKit 0x004c393f -[UIWindow _sendTouchesForEvent:] + 272
12 UIKit 0x004c3c56 -[UIWindow sendEvent:] + 273
13 UIKit 0x004aa384 -[UIApplication sendEvent:] + 464
14 UIKit 0x0049daa9 _UIApplicationHandleEvent + 8196
15 GraphicsServices 0x01cf8fa9 PurpleEventCallback + 1274
16 CoreFoundation 0x015d61c5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
17 CoreFoundation 0x0153b022 __CFRunLoopDoSource1 + 146
18 CoreFoundation 0x0153990a __CFRunLoopRun + 2218
19 CoreFoundation 0x01538db4 CFRunLoopRunSpecific + 212
20 CoreFoundation 0x01538ccb CFRunLoopRunInMode + 123
21 GraphicsServices 0x01cf7879 GSEventRunModal + 207
22 GraphicsServices 0x01cf793e GSEventRun + 114
23 UIKit 0x0049ba9b UIApplicationMain + 1175
24 libssh2-for-iOS 0x00003266 main + 134
25 libssh2-for-iOS 0x00002955 start + 53
Thread 1:
0 libsystem_kernel.dylib 0x921059be kevent + 10
1 libdispatch.dylib 0x01c9e398 _dispatch_mgr_invoke + 918
2 libdispatch.dylib 0x01c9cc9d _dispatch_mgr_thread + 53
Thread 2:: WebThread
0 libsystem_kernel.dylib 0x921027e2 mach_msg_trap + 10
1 libsystem_kernel.dylib 0x92101cc0 mach_msg + 68
2 CoreFoundation 0x015d613a __CFRunLoopServiceMachPort + 186
3 CoreFoundation 0x01539605 __CFRunLoopRun + 1445
4 CoreFoundation 0x01538db4 CFRunLoopRunSpecific + 212
5 CoreFoundation 0x01538ccb CFRunLoopRunInMode + 123
6 WebCore 0x03583220 RunWebThread(void*) + 560
7 libsystem_c.dylib 0x9445dd03 _pthread_start + 344
8 libsystem_c.dylib 0x944486ae thread_start + 34
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x00000007 ecx: 0x07439400 edx: 0x00000000
edi: 0x00040000 esi: 0x00008000 ebp: 0xbfffbbc8 esp: 0xbfffbb2c
ss: 0x00000023 efl: 0x00010286 eip: 0x00000000 cs: 0x0000001b
ds: 0x00000023 es: 0x00000023 fs: 0x00000000 gs: 0x0000000f
cr2: 0x00000000
Logical CPU: 1
(Binary images removed, too many characters)
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 1
thread_create: 0
thread_set_state: 32
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 14309
thread_create: 0
thread_set_state: 550
VM Region Summary:
ReadOnly portion of Libraries: Total=155.0M resident=50.0M(32%) swapped_out_or_unallocated=105.0M(68%)
Writable regions: Total=36.7M written=2264K(6%) resident=9020K(24%) swapped_out=108K(0%) unallocated=27.9M(76%)
REGION TYPE VIRTUAL
=========== =======
CG image 16K
CoreAnimation 532K
MALLOC 21.8M
MALLOC guard page 32K
Memory tag=35 10.8M
SQLite page cache 288K
Stack 65.3M
VM_ALLOCATE 136K
__DATA 9660K
__LINKEDIT 55.9M
__PAGEZERO 4K
__TEXT 99.1M
__UNICODE 544K
mapped file 237.8M
shared memory 12K
=========== =======
TOTAL 501.6M