<div dir="ltr">Thanks guys, will give empty target a try.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 1, 2016 at 12:10 PM, Jim Ingham <span dir="ltr"><<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Often when attaching, you know the executable you are planning to attach to.  So the "normal" workflow is to create a target, then attach to the process with that target's executable.  This is particularly useful for remote debugging, since having a local copy of the binary will mean less data lldb has to ship over the remote connection.  It also means you can prep the target with breakpoints & settings prior to attach.<br>
<br>
The case where you don't know the binary before you attach is a degenerate case of this, and so the sensible thing is to create an empty target, and use that to attach.  Then attaching will fill in this empty target.<br>
<br>
That makes more sense to me than having the debugger - which is the only thing above the target - support "Attach to anonymous app" but the target do "attach to known app".<br>
<br>
BTW, the most straightforward way to create an empty target is to call SBDebugger.CreateTarget("").  I added a note to this effect in the SBDebugger help preamble.<br>
<span class="HOEnZb"><font color="#888888"><br>
Jim<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On Feb 1, 2016, at 2:02 AM, Pavel Labath via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> it's a bit un-intuitive, but you should be able to create a target<br>
> with a null pointer for the executable, and use that to attach (see<br>
> CommandObjectProcessAttach::DoExecute).<br>
><br>
> BTW, if you find the existing API documentation too vague, we'd be<br>
> happy to accept any improvements.<br>
><br>
> cheers,<br>
> pl<br>
><br>
><br>
> On 30 January 2016 at 05:42, Jeffrey Tan via lldb-dev<br>
> <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br>
>> Hi,<br>
>><br>
>> Normally if you want to attach to a process you only have the pid/name of<br>
>> the process. How do you get SBTarget? Am I supposed to call<br>
>> SBDebugger.CreateTargetWithFileAndArch() against a dummy executable? Why do<br>
>> we require a dummy SBTarget before attaching? This seems to be a wrong<br>
>> design to me... Thanks.<br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> lldb-dev mailing list<br>
>> <a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
>><br>
> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
<br>
</div></div></blockquote></div><br></div>