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 16:26:58 UTC 2019


On October 18, 2019 8:54:06 AM PDT, "Hartmann, O." <ohartmann at walstatt.org> wrote:
>On Fri, 18 Oct 2019 07:24:12 -0700
>Cy Schubert <Cy.Schubert at cschubert.com> wrote:
>
>> 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;
>>  		}
>> 
>> 
>> 
>
>Doesn't work, either.
>The kernel config in question doesn't have any debugging features
>enabled, so nooptions DDB is alos part of the configuration.
>buildkernel still fails.

Hmm. Fixed my firewall build. My non-test firewall kernel config has the same nooption.

What other options/nooptions and patches are applied to your tree?


-- 
Pardon the typos and autocorrect, small keyboard in use. 
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX: <cy at FreeBSD.org> Web: https://www.FreeBSD.org

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

Sent from my Android device with K-9 Mail. Please excuse my brevity.


More information about the svn-src-head mailing list