2016-06-09 5 views
3

Попытка отладки плагина NPAPI путем присоединения к процессу плагина не работает в 10.11.Как вы можете отлаживать плагины Safari NPAPI в OSX 10.11?

Прикрепление с lldb показывает:

sudo lldb -p 39337 
(lldb) process attach --pid 39337 
error: attach failed: unable to attach 

Это, кажется, затрагивает как WebKit «наследство», используемый для встраиваемых Webkit (с плагином хосту с именем WebKitPluginHost) и «современной» WebKit используется в сафари (с плагином хосту с именем com.apple.WebKit.Plugin.64)

Я отключил «Отладочные ограничения» с помощью csrutil в режиме восстановления, но в этом случае это не помогает.

+0

У меня такая же проблема, пытаясь отладить расширения Perl. Запуск системы 'perl' под' lldb' возвращает 'error: процесс завершился со статусом -1 (не удалось подключиться)' даже после отключения ограничений отладки. – nwellnhof

+0

Обходной путь для perl состоит в том, чтобы скопировать двоичный файл perl из/usr/bin с использованием этого. Многие приложения могут быть прикреплены таким образом (просто не мое, потому что браузер сразу запускает его). – harningt

ответ

0

Я не пробовал его именно в 10.11, но я считаю, самый простой способ добавить раздел блокировки ждать ваш плагин для отладки в код запуска:

#if WAIT_FOR_DEBUGGER 
static bool beingDebugged() { 
    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()}; size_t mib_size = 4; 
    struct kinfo_proc kp; size_t kp_size = sizeof(kp); 
    int result = sysctl(mib, mib_size, &kp, &kp_size, NULL, 0); 
    return (0 == result) ? (P_TRACED & kp.kp_proc.p_flag) : false; 
} 
#endif 

затем в код запуска где:

#if WAIT_FOR_DEBUGGER 
    #warning "WILL BLOCK ON P_TRACED" 
    while (!beingDebugged()) 
     sleep(1); 
#endif 

Если у вас возникли проблемы с поиском правильного процесса подключения к вам может иметь это также выход ПИД-регулятора в файл, так что вы можете прочитать и найти его.

+0

Это полезный элемент, однако защита от отладки в системе не препятствует подключению к определенным процессам плагина. – harningt

+0

Интересно; это должно быть новым. Я не пробовал это недавно в Safari, так как все мои плагины до сих пор работают правильно =] – taxilian

Смежные вопросы