[lldb-dev] lldb 340.4.119 unable to attach (El Capitan)

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Tue Jan 5 10:17:39 PST 2016


> On Jan 5, 2016, at 1:11 AM, Andre Vergison <Andre.Vergison at software.dell.com> wrote:
> 
> Greg, I owe you a Bud (or fruit juice if you prefer) !!
> 
> That's all I had to do... Now it works like a charm!
> 
> tst$ sudo /usr/sbin/DevToolsSecurity --enable
> Developer mode is now enabled.
> tst$ lldb testabc
> (lldb) target create "testabc"
> Current executable set to 'testabc' (x86_64).
> (lldb) run
> Process 34322 launched: '/Users/tst/testabc' (x86_64)
> TESTING on  2016/01/05 09:53:25
> ...
> 
> And all lldb commands work nicely.
> Now disabling for a test:
> 
> tst$ sudo /usr/sbin/DevToolsSecurity --disable
> Developer mode is now disabled.
> tst$ lldb testabc
> (lldb) target create "testabc"
> Current executable set to 'testabc' (x86_64).
> (lldb) run
> error: process exited with status -1 (unable to attach)
> (lldb) quit
> 
> So that was definitely the (only) reason.

Great!

> 
> Perhaps this 'developer mode' is something natural in the eyes of Mac developers. I do porting on multiple systems, I'm becoming more and more familiar with Mac every day, and I was not fully aware of the switch, the more that lldb ran 'almost' normally.

It is for security reasons that is has been added. 

> Wouldn't it be an idea to add to lldb a warning against missing developer mode rather than exhibiting its odd 'unable to attach' and zombie creation behavior? Even as 'developer' I still was not able to kill the zombie I created per the above 'developer disabled' lldb session.
> So how about:
> 
> (lldb) run
> error: developer mode not enabled

We should be able to do this. The main issue is detecting that the user is in a remote scenario where they don't have access to the UI. A dialog box will be popped up if the user is on the system, but when remotely connected we would need to detect this and return a correct error. This is a little harder as well because "debugserver", our GDB remote protocol debug stub, is what is requesting the debugging privelege. This is a program that is spawned by LLDB as a child process. But is should be able to be done somehow.

Greg


More information about the lldb-dev mailing list