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

Andre Vergison via lldb-dev lldb-dev at lists.llvm.org
Tue Dec 29 10:46:16 PST 2015


Thanks Todd for your hints.

I did’t compile stuff myself, all tools came from Apple’s Command_Line_Tools_OS_X_10.11_for_Xcode_7.2.dmg which I installed on a “fresh” El Capitan VM.  I have requested more info about where this image came from, but the guys are on holiday.
Here’s a bit of the install history:
sudo installer -store -pkg  "Command Line Tools (OS X 10.11).pkg"  -target /

Installer output:

installer: Note: running installer as an admin user (instead of root) gives bett

er Mac App Store fidelity

installer: Warning: Command Line Tools (OS X 10.11).pkg was signed with a certif

icate that is not valid for store submission.

installer: Installation Check: Passed

installer: Volume Check: Passed

installer: Bundle com.apple.LLDB.framework will be installed to /Library/Develop

er/CommandLineTools/Library/PrivateFrameworks/LLDB.framework

installer: Bundle com.MyCompany.InstallerPlugin.TestPackage will be installed to

 /System/Library/Frameworks/Python.framework/Examples/PyObjC/2.5.1/InstallerPlug

inSample/InstallerPluginsTestPackage.pkg

installer: Starting install

installer: Install 0.0% complete

installer: Install 5.1% complete

installer: Install 11.0% complete

installer: Install 15.1% complete

installer: Install 21.0% complete

installer: Install 25.1% complete

installer: Install 30.4% complete

installer: Install 35.1% complete

installer: Install 42.2% complete

installer: Install 86.9% complete

installer: Install 95.2% complete

installer: Install 100.0% complete

installer: Finished install


Is this complete?

I rebooted the VM instance since my previous post and I modified file a.c modified as follows…

#include "stdio.h"

int main ()
{
    printf("hello world\n");
}

…and this nicely outputs “hello world”. Then…


tst$ file a.out
a.out: Mach-O 64-bit executable x86_64
tst$

tst$ lldb a.out
(lldb) target create "a.out"
Current executable set to 'a.out' (x86_64).
(lldb) run
error: process exited with status -1 (unable to attach)
(lldb) run
error: process exited with status -1 (unable to attach)
 (lldb) run
error: process exited with status -1 (unable to attach)
 (lldb)

Running ps –ef from another session:

tst2$ ps -ef|grep lldb
  502  3015   908   0 10:24AM ttys000    0:00.22 /Library/Developer/CommandLineT
ools/usr/bin/lldb a.out

tst2$ ps -ef|grep 3015
  502  3015   908   0 10:24AM ttys000    0:00.22 /Library/Developer/CommandLineT
ools/usr/bin/lldb a.out
  502  3165  3015   0 10:25AM ttys000    0:00.00 /Users/tst/a.out
  502  3705  3015   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
  502  3724  3015   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
tst2$

tst2$ ps -ef|grep debugserver
tst2$

There doesn’t seem to be a debugserver. Am I missing that?

Exiting lldb:

(lldb) exit
tst$

New processes snapshot:

tst2$ ps -ef|grep 3015
tst2$

tst2$ ps -ef|grep a.out
  502  3165     1   0 10:25AM ttys000    0:00.00 /Users/tst/a.out
  502  3705     1   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
  502  3724     1   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
tst2$

Sudo kill -9 has no effect:

tst2$ sudo kill -9 2173
Password:
tst2$
tst2$ ps -ef|grep a.out
  502  3165     1   0 10:25AM ttys000    0:00.00 /Users/tst/a.out
  502  3705     1   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
  502  3724     1   0 10:27AM ttys000    0:00.00 /Users/tst/a.out
tst2$


> To have lldb use the official Xcode version of lldb's debugserver (assuming you have Xcode installed and aren't trying to use just the command line tools), you should be able to build with a command line like this:

xcodebuild -scheme desktop -configuration Debug DEBUGSERVER_USE_FROM_SYSTEM=1 <

tst$ xcodebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer dire
ctory '/Library/Developer/CommandLineTools' is a command line tools instance
tst $

tst$ xcodebuild -scheme desktop -configuration Debug DEBUGSER
VER_USE_FROM_SYSTEM=1
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer dire
ctory '/Library/Developer/CommandLineTools' is a command line tools instance
tst$

> Or from within Xcode itself, locally adjust your Xcode project to set the "DEBUGSERVER_USE_FROM_SYSTEM" user variable to 1. <

Not sure what “from within Xcode itself” means (GUI?) but I tried this:

tst$ export DEBUGSERVER_USE_FROM_SYSTEM=1
tst$ set|grep DEBUG
DEBUGSERVER_USE_FROM_SYSTEM=1

This doesn’t seem to help.

> I'm not sure if you already did this, but you may need to turn on your dev tools security via:
sudo DevToolSecurity –enable <

tst$ sudo find / -name DevToolSecurity
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
find: /Volumes/VMware Shared Folders: Input/output error
tst$

I have a feeling that my install is not complete. What can I do from within the ssh session? As I’m remote (ssh only) I’d have to ask the local admin to tweak settings using the Xcode gui, if needed. What would you suggest?

Thanks,
Andre

________________________________
From: Todd Fiala [mailto:todd.fiala at gmail.com]
Sent: maandag 28 december 2015 19:19
To: Andre Vergison
Cc: lldb-dev at lists.llvm.org
Subject: Re: [lldb-dev] lldb 340.4.119 unable to attach (El Capitan)

Hi Andre,

On Sat, Dec 26, 2015 at 3:53 AM, Andre Vergison via lldb-dev <lldb-dev at lists.llvm.org<mailto:lldb-dev at lists.llvm.org>> wrote:
Hi,
I tried Jason Molenda’s test code on El Capitan, lldb-340.4.119 (Jason Molenda via lldb-dev | 3 Oct 02:59 2015).
I’m connected to a remote VM using ssh.

tst$ echo 'int main () { }' > /tmp/a.c
tst$ xcrun clang /tmp/a.c -o /tmp/a.out
tst$ xcrun lldb /tmp/a.out
(lldb) target create "/tmp/a.out"
Current executable set to '/tmp/a.out' (x86_64).
(lldb) r
error: process exited with status -1 (unable to attach)
(lldb) run
error: process exited with status -1 (unable to attach)
(lldb) quit
tst$ ps -ef|grep a.out
  502 33174     1   0 12:20PM ttys000    0:00.00 /tmp/a.out
  502 33187     1   0 12:20PM ttys000    0:00.00 /tmp/a.out

Just shooting in the dark, but perhaps the a.out is either not in a state where it can be touched (yet), could be zombified or something.  Have you tried 'sudo kill -9' on them?  Also, if you look for a debugserver or lldb in the process list (either of which could be a parent of it), are they hanging around?  If so, killing them might allow the a.out processes to die.

Are you using an lldb that you built?  If so, the underlying attach problem could be due to some kind signing/permissions with debugserver.  To have lldb use the official Xcode version of lldb's debugserver (assuming you have Xcode installed and aren't trying to use just the command line tools), you should be able to build with a command line like this:

xcodebuild -scheme desktop -configuration Debug DEBUGSERVER_USE_FROM_SYSTEM=1

Or from within Xcode itself, locally adjust your Xcode project to set the "DEBUGSERVER_USE_FROM_SYSTEM" user variable to 1.

I'm not sure if you already did this, but you may need to turn on your dev tools security via:
sudo DevToolSecurity --enable

Let us know if that gets you any further.

Thanks!

-Todd


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151229/e9116b9e/attachment-0001.html>


More information about the lldb-dev mailing list