2013-09-26 50 views
2

我已经从this Janrain源代码构建了一个静态库,然后用Xamarin创建了一个绑定库。 Janrain库的早期版本工作得很好(最终),但我需要获得支持iOS 7的最新版本,但通过重复(基本上)与之前相同的步骤,我无法使本机库正常工作。绑定库构建并正确链接,因为我可以看到本机库中的DLog语句出现在调试控制台中,但本机库崩溃了模拟器,我正在努力诊断问题。调试原生绑定库

有没有办法将XCode调试器附加到模拟器,并找到它崩溃的地步,也许有更多的信息?

目前,所有我从Xamarin获得是这样的:

Native stacktrace: 


mono-rt: 0 JanrainTestApp      0x0034a11d mono_handle_native_sigsegv + 349 

mono-rt: 1 JanrainTestApp      0x00376f5c mono_sigsegv_signal_handler + 188 

mono-rt: 2 libsystem_c.dylib     0x032ec94b _sigtramp + 43 

mono-rt: 3 ???         0xffffffff 0x0 + 4294967295 

mono-rt: 4 libdispatch.dylib     0x02fd6b4e dispatch_sync_f + 92 

mono-rt: 5 libdispatch.dylib     0x02fd9345 _dispatch_sync_f_recurse + 90 

mono-rt: 6 libdispatch.dylib     0x02fd6b3c dispatch_sync_f + 74 

mono-rt: 7 libdispatch.dylib     0x02fd7953 dispatch_sync + 37 

mono-rt: 8 libsystem_network.dylib    0x03162dea net_helper_send + 195 

mono-rt: 9 libsystem_network.dylib    0x031632a5 net_helper_connect_report + 496 

mono-rt: 10 libsystem_network.dylib    0x031596c6 tcp_connection_connect_complete + 974 

mono-rt: 11 libsystem_network.dylib    0x0315a64e tcp_connection_handle_destination_complete + 72 

mono-rt: 12 libsystem_network.dylib    0x03170fa3 __tcp_connection_destination_setup_socket_events_block_invoke_2 + 1847 

mono-rt: 13 libdispatch.dylib     0x02fea4b0 _dispatch_client_callout + 14 

mono-rt: 14 libdispatch.dylib     0x02fe0e6b _dispatch_source_latch_and_call + 150 

mono-rt: 15 libdispatch.dylib     0x02fdb443 _dispatch_source_invoke + 411 

mono-rt: 16 libdispatch.dylib     0x02fd8018 _dispatch_queue_drain + 338 

mono-rt: 17 libdispatch.dylib     0x02fd7e85 _dispatch_queue_invoke + 126 

mono-rt: 18 libdispatch.dylib     0x02fd8e25 _dispatch_root_queue_drain + 83 

mono-rt: 19 libdispatch.dylib     0x02fd913d _dispatch_worker_thread2 + 39 

mono-rt: 20 libsystem_c.dylib     0x03302e72 _pthread_wqthread + 441 

mono-rt: 21 libsystem_c.dylib     0x032eadaa start_wqthread + 30 

mono-rt: 

回答

1

您可以将Xcode中所有正在运行的进程:

  • 轻按在模拟器中的应用程序来启动它(我不建议通过从Xamarin Studio进行调试来启动它,因为托管调试器会使您的本地调试显着复杂化)。
  • 打开Xcode。
  • 打开菜单调试 - >附加到进程 - >从列表中选择您的应用程序。
  • 让你的应用崩溃。它现在应该停止在Xcode中,并且可以根据需要进行调试。
+0

奇怪的是,这并不适合我。当我进入“附加到进程”时,我看到的是“通过标识符(PID)或名称...”变灰。那里没有实际的条目。 –

+0

如果你首先打开一个项目(任何项目)? –

+0

我有静态库我试图调试在XCode打开,仍然没有骰子。 –