On Sat, 05 Jun 2010 16:01:01 EDT der Mouse <mo...@rodents-montreal.org> wrote: > > I have to make a decision about the protocol that will be used for > > remote kernel debugging. > > > My question is: Should I go with a custom protocol (+ a daemon that > > proxies to TCP), or should I go with TCP directly? > > My opinion, which is probably worth approximately what you paid for it: > custom protocol built directly atop Ethernet (ie, not IP-based).
At a previous company (about 13 years back) this is what we did. The details are hazy now but we didn't change the gdb remote protocol; we just emulated a serial link that sent/recvd these packets. We used an ethernet multicast address so you could debug a kernel from any local machine -- this was in a test lab network so security was not an issue but containment was. The key consideration for us was that debugging must be possible even when most things in kernel could be broken. Such a low level interface meant only one ethernet driver, its interrupt routine and a bit of glue code had to be working. TCP would require far too many things to work (or a separate stack with its own set of problems). Emulating a console meant we could switch between kdb and gdb as well.