[lldb-dev] Can't debug with a -g compiled binary as a non-root user on OS X 10.11 El Capitan

Todd Fiala via lldb-dev lldb-dev at lists.llvm.org
Fri Oct 2 17:58:32 PDT 2015


Hi Tony,

This is the right list.

Are you using an LLDB that you built locally?  If so, can you move aside
the debugserver that you find somewhere under in your LLDB.framework bundle
directory, and make a symlink to the debugserver that comes out of your
/Applications/Xcode.app bundle?  Your official Xcode.app one should be in a
location like:
/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver

The other thing it could be is that I think your lldb_codesign cert may
need to be recreated on a new OS.  I seem to recall the instructions there
indicate the code signing cert does not survive OS updates but I might be
mistaken.

I suspect the symlink will resolve your issue, though.  With tighter
security, it is likely that a home-built debugserver is no longer going to
work without being Apple signed.  We may need to adjust the Xcode build to
create a symlink to the official one if that's the case.

-Todd

On Fri, Oct 2, 2015 at 2:35 PM, Tony Perrie via lldb-dev <
lldb-dev at lists.llvm.org> wrote:

> I can only seem to debug our binary as the root user om 10.11.  I rebooted
> at one point, and lldb did work briefly with a system user but then after
> the machine ran for a bit, it proceeded to not work again.  Rebooted again,
> and again, lldb failes with this error...
>
> lldb /opt/aspera/bin/ascp
> (lldb) target create "/opt/aspera/bin/ascp"
> 2015-10-02 14:24:17.091 lldb[1721:12884] Metadata.framework [Error]:
> couldn't get the client port
> Current executable set to '/opt/aspera/bin/ascp' (x86_64).
> (lldb) r -i ~/.ssh/id_rsa /tmp/mp_source/* localhost:/tmp/mp_dest/
> error: process exited with status -1 (unable to attach)
>
> As root, I can reproduce the error:
>
> root# lldb /opt/aspera/bin/ascp
> (lldb) target create "/opt/aspera/bin/ascp"
> 2015-10-02 14:30:40.515 lldb[1864:14630] Metadata.framework [Error]:
> couldn't get the client port
> Current executable set to '/opt/aspera/bin/ascp' (x86_64).
> (lldb) r -i /var/root/.ssh/id_rsa /tmp/mp_source/* localhost:/tmp/mp_dest/
> Process 1866 launched: '/opt/aspera/bin/ascp' (x86_64)
>
> Session Stop  (Error: Session initiation failed, Server process failed to
> start: permissions?)
> Process 1866 exited with status = 1 (0x00000001)
>
> I have another machine running OS X 10.9 and lldb where everything works
> flawlessly.
>
> The problem with out binary seems to be that OS X is prohibiting our
> binary from starting another process (even as root).  Not sure if this is
> the right list for that question though.  Assume it's something to do with
> 10.11's security model.
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>


-- 
-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151002/8c1d7197/attachment.html>


More information about the lldb-dev mailing list