[lldb-dev] Better error message for attaching to a process already being debugged
Jeffrey Tan via lldb-dev
lldb-dev at lists.llvm.org
Wed Mar 9 18:19:12 PST 2016
Thanks for the info Jim. That answers my questions. I will file a bug for
lldb error message.
On Wed, Mar 9, 2016 at 5:57 PM, Jim Ingham <jingham at apple.com> wrote:
> > On Mar 9, 2016, at 3:04 PM, Jeffrey Tan via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
> > Hi,
> > My colleague is trying to use our lldb IDE attaching to app run/build
> from Xcode which failed. I can reproduce this with lldb console:
> > jeffreytan-mbp:$ ps aux | grep iOSApp
> > jeffreytan 61816 0.0 0.0 2432772 676 s002 S+ 3:00PM
> 0:00.00 grep iOSApp
> > jeffreytan 61806 0.0 0.2 2721120 38600 ?? SXs 3:00PM
> > jeffreytan-mbp:$ lldb -p 61806
> > (lldb) process attach --pid 61806
> > error: attach failed: attach failed: unable to attach
> > My theory is:
> > 1. Xcode does not have the concept of run without debugger and run under
> debugger, so it always run app with debugger enabled.(Is this true?)
> That is not true. In the Run Scheme, uncheck the "Debug Executable"
> checkbox. But running with the debugger is the default.
> Note, an X in the status field for ps means the app is being debugged. So
> in this case, the app you were trying to attach to WAS already being
> > 2. And you can't have two native debuggers debugging the same process on
> Mac(this is true on Windows, is it true for Mac or Linux?)
> That is true for Mac, and in general for ptrace based debugging. I don't
> know much about procfs.
> > If both are true, can we report meaningful message like "inferior is
> already being debugged" or something similar instead of the generic error
> message like "attach failed: unable to attach"?
> That should be possible, there's code to eliminate already debugged
> processes in the "Attach to process by name" functionality. So if you
> specify a PID and the attach fails, we could check after the fact and see
> if it is already being traced. Please file a bug for this, and/or take a
> whack at fixing it if you feel like it.
> > Btw: I found I can still use gdb to attach to the process(with a
> permission elevation dialog pop-up) and see the callstack. How does gdb do
> I haven't looked at the FSF gdb OS X support for years, so I can't really
> comment on it. But it is not possible to ptrace something that is already
> ptraced, so if gdb is still doing it this way, then it should also fail.
> Maybe it is only getting the mach task and exception ports and debugging
> just with them? You can have multiple readers for the task port, and you
> can steal the exception port from someone else. But if it did that, the
> other debugger should stop working.
> > Jeffrey
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lldb-dev