clayborg added a comment. In D93895#2480578 <https://reviews.llvm.org/D93895#2480578>, @augusto2112 wrote:
> I think I get your point. If we pass the extra options in the packet, the > validation on older lldb-server versions will reject the message. > >> Another option would be to have lldb-server check for environment variables >> for default values for --waitfor-interval and --waitfor-duration. If they >> are set, they become the new default values. Of course a user can launch the >> lldb-server manually with the options set a different way and then attach >> with "process connect ..." if required. But this would provide an alternate >> way for users to control the polling and timeout. > > I'll defer to you guys, since you're a lot more knowledgeable on lldb than I > am :) > > I do have another possible solution we could consider: can we create a new > message, similar to `qVAttachOrWaitSupported`, that queries if these extra > options are supported or not. Something like > `qVAttachWaitExtraOptionsSupported`. We might even consider returning > something akin to a "version number", so if we support more options in the > future we can bump up the number. > > Let me know what you think (again, I'm fine doing it either way). Yeah, I was thinking it might be nice to have a better attach + wait packet. We have added new JSON packets in the past that are more flexible and allows us to specify arguments using a JSON dictionary. Currently the vAttachWait or vAttachOrWait packets have a hard coded single process name argument that is appended as hex ASCII so for "a.out": vAttachWait:612E6F7574 vAttachOrWait:612E6F7574 But we could make a new "jAttachWait" that could be something like: jAttachWait:{"executable":"a.out", "waitfor-interval-usec": 1000, "waitfor-duration-sec": 20} Then the question becomes where the values for "waitfor-interval-usec" and "waitfor-duration-sec" come from. Since "process attach" has to work for any process plug-in (there are many in "lldb/source/Plugins/Process"), if we add any options to "process attach", each of the plug-ins in "lldb/source/Plugins/Process" would need to handle those options. It might be better to add new settings for the GDB remote plug-in (AKA: ProcessGDBRemote). There are global settings already for this plug-in: (lldb) settings show ... plugin.process.gdb-remote.packet-timeout (unsigned) = 5 plugin.process.gdb-remote.target-definition-file (file) = plugin.process.gdb-remote.use-g-packet-for-reading (boolean) = false plugin.process.gdb-remote.use-libraries-svr4 (boolean) = true We would easily add new settings to lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td: plugin.process.gdb-remote.waitfor-interval-usec (unsigned) = 1000 plugin.process.gdb-remote.waitfor-duration-sec (unsigned) = 20 And then use these in the new JSON packet as arguments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93895/new/ https://reviews.llvm.org/D93895 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits