svn commit: r353700 - in head: share/man/man4 sys/amd64/conf sys/conf sys/gdb sys/i386/conf sys/kern sys/net sys/sys

Cy Schubert Cy.Schubert at cschubert.com
Fri Oct 18 14:24:20 UTC 2019


In message <20191018160935.7dda61c4 at hermann.fritz.box>, "Hartmann, O." 
writes:
> --Sig_/QDD9BZgeMM6.TJkOIciNb32
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: quoted-printable
>
> On Fri, 18 Oct 2019 14:00:45 +0200
> Gary Jennejohn <gljennjohn at gmail.com> wrote:
>
> > On Fri, 18 Oct 2019 12:21:04 +0200
> > "Hartmann, O." <ohartmann at walstatt.org> wrote:
> >=20
> > > On Thu, 17 Oct 2019 21:33:01 +0000 (UTC)
> > > Conrad Meyer <cem at FreeBSD.org> wrote:
> > >  =20
> > > > Author: cem
> > > > Date: Thu Oct 17 21:33:01 2019
> > > > New Revision: 353700
> > > > URL: https://svnweb.freebsd.org/changeset/base/353700
> > > >=20
> > > > Log:
> > > >   Implement NetGDB(4)
> > > >  =20
> > > >   NetGDB(4) is a component of a system using a panic-time network
> > > > stack to remotely debug crashed FreeBSD kernels over the network,
> > > > instead of traditional serial interfaces.
> > > >  =20
> > > >   There are three pieces in the complete NetGDB system.
> > > >  =20
> > > >   First, a dedicated proxy server must be running to accept
> > > > connections from both NetGDB and gdb(1), and pass bidirectional
> > > > traffic between the two protocols.
> > > >  =20
> > > >   Second, the NetGDB client is activated much like ordinary 'gdb'
> > > > and similarly to 'netdump' in ddb(4) after a panic.  Like other
> > > > debugnet(4) clients (netdump(4)), the network interface on the
> > > > route to the proxy server must be online and support debugnet(4).
> > > >  =20
> > > >   Finally, the remote (k)gdb(1) uses 'target remote
> > > > <proxy>:<port>' (like any other TCP remote) to connect to the
> > > > proxy server.=20
> > > >   The NetGDB v1 protocol speaks the literal GDB remote serial
> > > > protocol, and uses a 1:1 relationship between GDB packets and
> > > > sequences of debugnet packets (fragmented by MTU).  There is no
> > > > encryption utilized to keep debugging sessions private, so this is
> > > > only appropriate for local segments or trusted networks.
> > > >  =20
> > > >   Submitted by:	John Reimer <john.reimer AT emc.com>
> > > > (earlier version) Discussed some with:	emaste, markj
> > > >   Relnotes:	sure
> > > >   Differential Revision:	https://reviews.freebsd.org/D21568
> > > >=20
> > > > Added:
> > > >   head/share/man/man4/netgdb.4   (contents, props changed)
> > > >   head/sys/gdb/netgdb.c   (contents, props changed)
> > > >   head/sys/gdb/netgdb.h   (contents, props changed)
> > > > Modified:
> > > >   head/share/man/man4/Makefile
> > > >   head/share/man/man4/ddb.4
> > > >   head/sys/amd64/conf/GENERIC
> > > >   head/sys/conf/NOTES
> > > >   head/sys/conf/files
> > > >   head/sys/conf/options
> > > >   head/sys/gdb/gdb.h
> > > >   head/sys/gdb/gdb_int.h
> > > >   head/sys/gdb/gdb_main.c
> > > >   head/sys/gdb/gdb_packet.c
> > > >   head/sys/i386/conf/GENERIC
> > > >   head/sys/kern/subr_kdb.c
> > > >   head/sys/net/debugnet.c
> > > >   head/sys/net/debugnet.h
> > > >   head/sys/net/debugnet_inet.c
> > > >   head/sys/net/debugnet_int.h
> > > >   head/sys/sys/kdb.h
> > > >   head/sys/sys/param.h
> > > >=20
> > > > Modified: head/share/man/man4/Makefile
> > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D
> > > > --- head/share/man/man4/Makefile	Thu Oct 17 21:25:50
> > > > 2019	(r353699) +++ head/share/man/man4/Makefile	Thu
> > > > Oct 17 21:33:01 2019	(r353700) @@ -307,6 +307,7 @@ MAN=3D
> > > > aac.4 \ net80211.4 \
> > > >  	netdump.4 \
> > > >  	netfpga10g_nf10bmac.4 \
> > > > +	netgdb.4 \
> > > >  	netgraph.4 \
> > > >  	netintro.4 \
> > > >  	netmap.4 \
> > > >    =20
> > > [...]
> > >=20
> > >=20
> > > Having "nooptions       NETGDB          # netgdb(4) client support"
> > > defined in my kernel config file, buildkernel fails with the error
> > > shown below.
> > >=20
> > > [...]
> > > --- debugnet.o ---
> > > /usr/src/sys/net/debugnet.c:662:4: error: implicit declaration of
> > > function 'db_printf' is invalid in C99
> > > [-Werror,-Wimplicit-function-declaration] db_printf("%s: Could not
> > > get route for that server.\n", ^ /usr/src/sys/net/debugnet.c:662:4:
> > > note: did you mean 'if_printf'? /usr/src/sys/net/if_var.h:679:5:
> > > note: 'if_printf' declared here int     if_printf(struct ifnet *,
> > > const char *, ...) __printflike(2, 3); ^
> > > 1 error generated. =20
> >=20
> > And I also had to add "nooptions NETDUMP" to get the kernel to compile
> > and link.
> >=20
>
> I already had "nooptions NETDUMP" defined.


This will fix it.

Index: sys/net/debugnet.c
===================================================================
--- sys/net/debugnet.c	(revision 353717)
+++ sys/net/debugnet.c	(working copy)
@@ -659,8 +659,10 @@
 		CURVNET_RESTORE();
 
 		if (dest_rt == NULL) {
+#ifdef DDB
 			db_printf("%s: Could not get route for that server.\n",
 			    __func__);
+#endif
 			error = ENOENT;
 			goto cleanup;
 		}



-- 
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.




More information about the svn-src-head mailing list