Greg,<br><br>I looked at Host, and I'm not sure it's the best place for these changes. There's quite a few methods there which will simply call into the already extant implementations for whatever host you're on. Of the functions that would need to behave differently when debugging yourself, take Backtrace for example, the logic of how to traverse the stack should be shared while the logic of how to read memory will differ.<br>
<div><br></div><div>I think the model whereby lldb treats itself as just another process for most purposes makes sense, and using a NativeProcessProtocol implementation that inspects local memory etc. seems to make sense to me.</div>
<div><br></div><div>Also, I'd made some responses to your other comments in my previous email. What do you think?</div><div><br></div><div>Thanks,</div><div>Russ Harmon</div><br><div class="gmail_quote">On Mon Jul 14 2014 at 10:21:57 AM, Russell Harmon <<a href="mailto:eatnumber1@google.com">eatnumber1@google.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Mon Jul 14 2014 at 10:20:13 AM, Russell Harmon <<a href="mailto:eatnumber1@google.com" target="_blank">eatnumber1@google.com</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Fri Jul 11 2014 at 11:17:55 AM, Greg Clayton <<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>> wrote:</div>
</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
><br>
> After talking with Todd Fiala, he suggested writing an implementation of NativeProcessProtocol and NativeThreadProtocol that inspects the local process. This would allow same-process debugging without the expensive IPC that Ruminate has.<br>

<br>
What is the IPC needed for? Getting the backtraces? What exactly are you looking to eliminate?<br></blockquote><div><br></div><div>Well, for the ptrace() IPC, I have lldb stop the debugee for getting array members, function argument types, enum members and enumerating the members of an sbtype (struct members).</div>
</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote><div><br></div><div>Oh, and backtraces too.</div></blockquote></div>