Отладка собственной библиотеки привязки

Я создал статическую библиотеку из этого исходного кода 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: 

person Matt Burland    schedule 26.09.2013    source источник


Ответы (1)


Вы можете подключить Xcode к любому запущенному процессу:

  • Нажмите на приложение в симуляторе, чтобы запустить его (я не рекомендую запускать его путем отладки из Xamarin Studio, поскольку управляемый отладчик значительно усложнит отладку в собственном коде).
  • Откройте XCode.
  • Откройте меню Отладка -> Присоединить к процессу -> выберите свое приложение из списка.
  • Сделайте ваше приложение аварийным. Теперь он должен остановиться в Xcode, и вы можете отлаживать его по своему усмотрению.
person Rolf Bjarne Kvinge    schedule 27.09.2013
comment
Странно, у меня это не работает. Когда я перехожу к Attach to Process, все, что я вижу, это неактивное поле By Porcess Identifier (PID) или Name... Там нет фактических записей. - person Matt Burland; 27.09.2013
comment
А если сначала открыть проект (любой проект)? - person Rolf Bjarne Kvinge; 27.09.2013
comment
У меня есть статическая библиотека, которую я пытаюсь отладить, открытая в XCode, и до сих пор нет костей. - person Matt Burland; 27.09.2013