<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace"><span style="font-family:arial">On Wed, May 22, 2013 at 7:51 PM, Robert O'Callahan </span><span dir="ltr" style="font-family:arial"><<a href="mailto:robert@ocallahan.org" target="_blank">robert@ocallahan.org</a>></span><span style="font-family:arial"> wrote:</span><br>
</div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>I'm pretty sure ptrace stepi will update the instructions-retired counter correctly. We'll see... </div>
</div></div></div></blockquote><div><br></div><div><div style="font-family:'courier new',monospace" class="gmail_default">I'm uneasy about several interactions, but I share your "pretty sure" sentiment ;).</div>
</div><div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Handling the case where a signal needs to be delivered at that instruction sounds tricky.<br>
</div></div></div></div></blockquote><div><br></div><div><div style="font-family:'courier new',monospace" class="gmail_default">AFAICT this is the same problem as knowing to context-switch at insn i while stepping.</div>
</div><div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>No idea what to do for breakpoints. Theoretically, inserting int3 breakpoints could cause divergence. Probably doesn't matter. Same is true for debug registers I suppose, but matters even less. I guess just using int3s is simple and gives you unlimited breakpoints --- and we don't have to worry about threads racing.<br>
</div></div></blockquote><div><br></div><div><div style="font-family:'courier new',monospace" class="gmail_default">Yeah, I lean toward SW-only breakpoints too. I haven't thought of anything problematic yet, but I also haven't thought very hard yet.</div>
</div><div style="font-family:'courier new',monospace" class="gmail_default"></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">In my mind I would like gdb support to be good enough to be useful, but rather than making it really great it might be better to invest in stuff like checkpointing and then Chronicle/Chronomancer style recording/debugging of segments of the trace. My ultimate goal is to have something a lot better than anything gdb (even with reverse execution) can provide :-).<br>
</div></blockquote><div><br></div><div><div style="font-family:'courier new',monospace" class="gmail_default">Yep, agreed again. Before we can really do reverse-* anything, gdb or chronicle/chronomancer, we're going to need some fancy new technology like checkpointing. So we can't really think of those things before the new tech. Down the road though, I could see gdb reverse-continue playing really well with something like chronicle/chronomancer, to quickly zoom in on the segment you want to hyper-record. (Need a better name than that ;).)</div>
<div style="font-family:'courier new',monospace" class="gmail_default"><br></div><div style="font-family:'courier new',monospace" class="gmail_default">Cheers,</div><div style="font-family:'courier new',monospace" class="gmail_default">
Chris</div><br></div><div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
<div><div><div><div><div><div class="gmail_extra"><br clear="all">Rob<span class="HOEnZb"><font color="#888888"><br>-- <br><span><span>qqIqfq qyqoquq qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qyqoquq,q qwqhqaqtq qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq qsqiqnqnqeqrqsq qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qtqhqeqmq.q</span></span> q<span><span>Aqnqdq qiqfq qyqoquq qdqoq qgqoqoqdq qtqoq qtqhqoqsqeq qwqhqoq qaqrqeq qgqoqoqdq qtqoq qyqoquq,q qwqhqaqtq qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq qsqiqnqnqeqrqsq qdqoq qtqhqaqtq.q"</span></span>
</font></span></div></div></div></div></div></div></div>
</blockquote></div><br></div></div>