<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">There is a standard for reverse stepping where the GDB remote protocol was extended to do the reverse stepping. See:<div class=""><br class=""></div><div class=""><a href="https://sourceware.org/gdb/onlinedocs/gdb/Packets.html" class="">https://sourceware.org/gdb/onlinedocs/gdb/Packets.html</a></div><div class=""><br class=""></div><div class="">Look for "reverse" in the text. They added "bc" for reverse continue and "bs" for reverse step. We should be using these if possible.</div><div class=""><br class=""><div><blockquote type="cite" class=""></blockquote></div></div><div style=""><br class=""><blockquote type="cite" class=""><div class="">On Aug 23, 2017, at 10:00 AM, Ted Woodward <<a href="mailto:ted.woodward@codeaurora.org" class="">ted.woodward@codeaurora.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Menlo-Regular; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">Perhaps a manual packet that tells your remote server that the next “s” packet is a reverse step, then run the lldb command “si”.<o:p class=""></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">It would be simpler, from a packet log analysis standpoint, if you weren’t stopped at a breakpoint location when you did this.<o:p class=""></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></span></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">--<o:p class=""></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">Qualcomm Innovation Center, Inc.<o:p class=""></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<o:p class=""></o:p></span></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></span></div><div style="border-style: none none none solid; border-left-width: 1.5pt; border-left-color: blue; padding: 0in 0in 0in 4pt;" class=""><div class=""><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;" class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><b class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class="">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="Apple-converted-space"> </span>lldb-dev [<a href="mailto:lldb-dev-bounces@lists.llvm.org" class="">mailto:lldb-dev-bounces@lists.llvm.org</a>]<span class="Apple-converted-space"> </span><b class="">On Behalf Of<span class="Apple-converted-space"> </span></b>Greg Clayton via lldb-dev<br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Tuesday, August 22, 2017 6:20 PM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>Vadim Chugunov <<a href="mailto:vadimcn@gmail.com" class="">vadimcn@gmail.com</a>><br class=""><b class="">Cc:</b><span class="Apple-converted-space"> </span>LLDB <<a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [lldb-dev] Forcing lldb to refresh process state<o:p class=""></o:p></span></div></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">You need to send some sort of continue through the GDB remote interface. The only way to get a $T packet back is in response to a "?" packet or to a "vCont" or other continue or step packet.<o:p class=""></o:p></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p class=""> </o:p></div><div class=""><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class="" type="cite"><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">On Aug 22, 2017, at 2:30 PM, Vadim Chugunov <<a href="mailto:vadimcn@gmail.com" style="color: purple; text-decoration: underline;" class="">vadimcn@gmail.com</a>> wrote:<o:p class=""></o:p></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p class=""> </o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">It does send '$T05...' in response, but it looks like lldb does not analyze responses to manually sent packets.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p class=""> </o:p></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class="">On Mon, Aug 21, 2017 at 1:02 PM, Greg Clayton <<a href="mailto:clayborg@gmail.com" target="_blank" style="color: purple; text-decoration: underline;" class="">clayborg@gmail.com</a>> wrote:<o:p class=""></o:p></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0in 0in 0in 6pt; margin-left: 4.8pt; margin-right: 0in;" class="" type="cite"><p class="MsoNormal" style="margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New Roman', serif;">If you do a reverse step it actually should send a process resumed and a process stopped event.<br class=""><br class="">> On Aug 18, 2017, at 7:19 PM, Vadim via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" style="color: purple; text-decoration: underline;" class="">lldb-dev@lists.llvm.org</a>> wrote:<br class="">><br class="">> I'm trying to reverse-step.  So I think I'd need to refresh all thread states?<br class="">><br class="">>> On Aug 18, 2017, at 4:50 PM, Jim Ingham <<a href="mailto:jingham@apple.com" style="color: purple; text-decoration: underline;" class="">jingham@apple.com</a>> wrote:<br class="">>><br class="">>> No, there hasn't been a need for this.<br class="">>><br class="">>> What commands are you planning to send?  Or equivalently, how much state are you expecting to change?<br class="">>><br class="">>> Jim<br class="">>><br class="">>>> On Aug 18, 2017, at 4:36 PM, Vadim Chugunov via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" style="color: purple; text-decoration: underline;" class="">lldb-dev@lists.llvm.org</a>> wrote:<br class="">>>><br class="">>>> Hi,<br class="">>>> Is there any way to force lldb to refresh it's internal record of debuggee process state (as if it had just received a stop event)?  I want to send a custom command to remote gdb process stub (via `process plugin packet send`).  This works, but if the command alters debuggee state, lldb won't know about it.<br class="">>>> _______________________________________________<br class="">>>> lldb-dev mailing list<br class="">>>><span class="Apple-converted-space"> </span><a href="mailto:lldb-dev@lists.llvm.org" style="color: purple; text-decoration: underline;" class="">lldb-dev@lists.llvm.org</a><br class="">>>><span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" target="_blank" style="color: purple; text-decoration: underline;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br class="">>><br class="">> _______________________________________________<br class="">> lldb-dev mailing list<br class="">><span class="Apple-converted-space"> </span><a href="mailto:lldb-dev@lists.llvm.org" style="color: purple; text-decoration: underline;" class="">lldb-dev@lists.llvm.org</a><br class="">><span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" target="_blank" style="color: purple; text-decoration: underline;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a></p></blockquote></div></div></div></blockquote></div></div></div></div></div></blockquote></div><br class=""></body></html>