调试本地绑定库

3
我已经从这个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个回答

2

您可以将Xcode连接到任何正在运行的进程中:

  • 在模拟器中点击应用程序以启动它(我不建议从Xamarin Studio调试开始,因为托管调试器会显著增加您的本地调试复杂性)。
  • 打开 Xcode。
  • 打开菜单 调试 -> 附加到进程 -> 从列表中选择您的应用程序。
  • 使您的应用程序崩溃。现在它应该停止在 Xcode 中,您可以按照自己的意愿进行调试。

奇怪的是,这对我不起作用。当我去“附加到进程”时,我只看到一个灰色的“按进程标识符(PID)或名称...”。那里没有实际的条目。 - Matt Burland
如果您首先打开一个项目(任何项目)呢? - Rolf Bjarne Kvinge
我已经在XCode中打开了我正在尝试调试的静态库,但仍然没有进展。 - Matt Burland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接