2012-08-16 9 views
8

Osadzam MonoTouch w projekcie Xcode i chcę zatrzymać debugger LLDB od obsługi sygnałów SIGBUS, ponieważ są one używane przez środowisko wykonawcze mono. Jak mogę to zrobić?Jak odróżnić debugger LLDB od obsługi SIGBUS?

+1

Zgodnie z http://stackoverflow.com/questions/10431579/permanently-configuring-lldb-in-xcode-4-3-2-not-to-stop-on-signals, "uchwyt procesu SIGBUS -n true -p true -s false "powinno wystarczyć. –

Odpowiedz

18

Możesz kontrolować, w jaki sposób Lldb przechwytuje/przekazuje sygnały za pomocą polecenia "process handle". W Twoim przypadku, to chcesz zrobić

(lldb) pro hand -p true -s false SIGBUS 
NAME  PASS STOP NOTIFY 
========== ===== ===== ====== 
SIGBUS  true false true 

teraz sygnały zostaną przekazane do procesu bez lldb uzyskanie w drodze. Pole "NOTIFY" wskazuje, czy lldb powinien wydrukować, że sygnał został odebrany - domyślnie jest to drukowane w konsoli debuggera, ale nie wydaje się, że dzieje się to teraz. Ale sygnał jest poprawnie przekazywany, co jest ważnym bitem.

+3

Czy jest jakiś sposób ustawić to w XCode? – ed22

+1

Dodaj punkt przerwania, np. w akcji głównej(), a następnie w jej działaniu punktu przerwania dodaj polecenie LLDB z tym wierszem, a następnie zaznacz pole wyboru "kontynuuj po punkcie przerwania". – uliwitness

+1

Aby zrobić to automatycznie w Xcode, dodaj polecenie do '~/.lldbinit-Xcode'. Jeśli chcesz, aby to było stosowane nawet przy użyciu 'lldb' z wiersza poleceń, dodaj to samo do' ~/.lldbinit' – Buzzy

Powiązane problemy