clayborg added a comment.

In D79614#2030692 <https://reviews.llvm.org/D79614#2030692>, @jasonmolenda 
wrote:

> Thanks for the feedback.
>
> In D79614#2029157 <https://reviews.llvm.org/D79614#2029157>, @labath wrote:
>
> > I think that "piggy-backing" on the `qSupported` packet for communicating 
> > protocol fixes is a good idea. However, I agree with Greg, that it does not 
> > seem like it's needed for this case. Fixing the problem purely on the 
> > debugserver side seems preferable, as it avoids adding compatibility code 
> > to lldb. It's true that it's a one-off error reporting mechanism, but it's 
> > already there, so it seems better to just support what's already 
> > implemented then try to support two mechanisms.
> >
> > For a long-term solution, I am wondering whether we need `qLaunchSuccess` 
> > at all? It seems like the packet is completely redundant in a world where 
> > we can return textual error messages to _any_ packet. What was the reason 
> > for introducing it in the first place? Could we just switch to using error 
> > replies to the `A` packet for communicating the launch errors (with some 
> > transition plan for supporting `qLaunchSuccess` for a while)?
>
>
> It's hard to tell what we were thinking (GREG :) back when we used the A 
> packet to set the binary name / arguments /etc, and then the qLaunchSuccess 
> packet to start the process.  Reading over the current era gdb Remote Serial 
> Protocol docs, I think the vRun packet does the combination of these two 
> things in one packet, which makes sense.


There was no "just return error strings" packet that I was aware of. The 
problem is identifying a correct error packet. Typically you can get some 
canned responses to packets:

- "" (empty) response means not supported
- "EXX" where XX is a hex code only
- "OK" if the packet was successful
- open ended output

How do error strings get returned when not using the EXX format? Are they 
safely prefixed with something? Do they just start with "E" and then a string? 
If so, how would you tell the difference between the response "Everyone has a 
string" and "Einvalid path error"? Or does this only apply to a packet that 
returns an error if some setting was enabled with a previous  "Q" packet?

> I tested a patch using Greg's suggestion of using the binary escape protocol 
> for the error string and that does work, as expected, I'll land the patch 
> like that.

Much easier, thanks!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79614/new/

https://reviews.llvm.org/D79614



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to