patch to send telnet BREAK for remote-over-tcp

Michael Snyder msnyder@specifix.com
Wed Sep 3 04:36:00 GMT 2008


I think this looks right, but I'd love to get another opinion.

Daniel?  Anybody?

On Fri, 2008-08-29 at 15:52 -0700, Angela Marie Thomas wrote:
> Hoping this falls under "obvious" as I don't currently have an assigment
> on file.  Simply put, this changes the current noop behavior to using the
> telnet BREAK sequence instead.  This allows remote debugging of kgdb
> enabled BSD kernels through a TCP serial connection (e.g. Portmaster).
> Built and tested for --host=i686-pc-linux-gnu --target=mips64-linux
> 
> 2008-08-29  Angela Marie Thomas <angela@releasedominatrix.com>
> 
> 	* ser-tcp.c (ser_tcp_send_break): New function.
> 	(_initialize_ser_tcp): Use ser_tcp_send_break.
> 	* ser-tcp.h (ser_tcp_send_break): New prototype.
> 
> Index: gdb/ser-tcp.c
> ===================================================================
> RCS file: /services/cvs/cvsroot/gnusense/gdb/gdb/ser-tcp.c,v
> retrieving revision 1.1.1.4
> diff -b -t -w -u -p -r1.1.1.4 ser-tcp.c
> --- gdb/ser-tcp.c	7 Jul 2006 16:06:15 -0000	1.1.1.4
> +++ gdb/ser-tcp.c	29 Aug 2008 17:29:02 -0000
> @@ -278,7 +278,7 @@ _initialize_ser_tcp (void)
>    ops->write = ser_base_write;
>    ops->flush_output = ser_base_flush_output;
>    ops->flush_input = ser_base_flush_input;
> -  ops->send_break = ser_base_send_break;
> +  ops->send_break = ser_tcp_send_break;
>    ops->go_raw = ser_base_raw;
>    ops->get_tty_state = ser_base_get_tty_state;
>    ops->set_tty_state = ser_base_set_tty_state;
> @@ -292,4 +292,11 @@ _initialize_ser_tcp (void)
>    ops->write_prim = net_write_prim;
>    serial_add_interface (ops);
>  #endif /* USE_WIN32API */
> +}
> +
> +int
> +ser_tcp_send_break (struct serial *scb)
> +{
> +  /* Send telnet IAC and BREAK characters. */
> +  return(serial_write(scb, "\377\363", 2));
>  }
> Index: gdb/ser-tcp.h
> ===================================================================
> RCS file: /services/cvs/cvsroot/gnusense/gdb/gdb/ser-tcp.h,v
> retrieving revision 1.1.1.1
> diff -b -t -w -u -p -r1.1.1.1 ser-tcp.h
> --- gdb/ser-tcp.h	7 Jul 2006 16:05:44 -0000	1.1.1.1
> +++ gdb/ser-tcp.h	29 Aug 2008 17:29:02 -0000
> @@ -28,5 +28,6 @@ extern int net_open (struct serial *scb,
>  extern void net_close (struct serial *scb);
>  extern int net_read_prim (struct serial *scb, size_t count);
>  extern int net_write_prim (struct serial *scb, const void *buf, size_t count);
> +extern int ser_tcp_send_break (struct serial *scb);
>  
>  #endif



More information about the Gdb-patches mailing list