Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Jan 2004 15:59:43 +0200
From:      Gilad Rom <gilad_bsd@romat.com>
To:        Antoine Jacoutot <ajacoutot@lphp.org>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: rpc.lockd segfault
Message-ID:  <400A914F.6090802@romat.com>
In-Reply-To: <200401181458.44948.ajacoutot@lphp.org>
References:  <200401171338.15670.ajacoutot@lphp.org> <200401172027.19927.ajacoutot@lphp.org> <20040117220110.GB78912@xor.obsecurity.org> <200401181458.44948.ajacoutot@lphp.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Antoine Jacoutot wrote:
> On Saturday 17 January 2004 23:01, Kris Kennaway wrote:
> 
>>Unfortunately that doesn't give any information.  You'll need to
>>recompile rpc.lockd with GDB debugging symbols (add -ggdb to CFLAGS).
>>See the developer's handbook on the website for more information about
>>debugging program failures with gdb (specifically, how to obtain a
>>useful backtrace).
> 
> 
> Well, I recompiled rpc.lockd using -ggdb and -g, but when I launch the 
> following command:
> $ gdb /usr/sbin/rpc.lockd
> ... I get:
> 
> GNU gdb 5.2.1 (FreeBSD)
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-unknown-freebsd"...(no debugging symbols 
> found)...
> 
> How come no debugging symbols are found ?
> 
> Here is how I compiled rpc.lockd
> ( CFLAGS= -g -ggdb -O -pipe ):
> $ rm -Rf /usr/obj/*
> $ cd /usr/src/usr.sbin/rpc.lockd
> $ make clean && make obj && make depend && make all install
> 
> rm -f nlm_prot_svc.c nlm_prot.h test rpc.lockd kern.o nlm_prot_svc.o lockd.o 
> lock_proc.o lockd_lock.o rpc.lockd.8.gz rpc.lockd.8.cat.gz
> /usr/obj/usr/src/usr.sbin/rpc.lockd created for /usr/src/usr.sbin/rpc.lockd
> rpcgen -L -C -m -o nlm_prot_svc.c /usr/include/rpcsvc/nlm_prot.x
> rm -f .depend
> mkdep -f .depend -a    -I. 
> -I/usr/include/rpcsvc  /usr/src/usr.sbin/rpc.lockd/kern.c 
> nlm_prot_svc.c /usr/src/usr.sbin/rpc.lockd/lockd.c /usr/src/usr.sbin/rpc.lockd/lock_proc.c /usr/src/usr.sbin/rpc.lockd/lockd_lock.c
> echo rpc.lockd: /usr/lib/libc.a /usr/lib/librpcsvc.a /usr/lib/libutil.a 
> 
>>>.depend
> 
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc  
> -c /usr/src/usr.sbin/rpc.lockd/kern.c
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc  -c 
> nlm_prot_svc.c
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc  
> -c /usr/src/usr.sbin/rpc.lockd/lockd.c
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc  
> -c /usr/src/usr.sbin/rpc.lockd/lock_proc.c
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc  
> -c /usr/src/usr.sbin/rpc.lockd/lockd_lock.c
> cc -g -ggdb -O -pipe -march=pentium3 -I. -I/usr/include/rpcsvc   -o rpc.lockd 
> kern.o nlm_prot_svc.o lockd.o lock_proc.o lockd_lock.o -lrpcsvc -lutil
> gzip -cn /usr/src/usr.sbin/rpc.lockd/rpc.lockd.8 > rpc.lockd.8.gz
> install -s -o root -g wheel -m 555   rpc.lockd /usr/sbin

install -s uses strip(1), so all your debugging symbols are erased.
the original binary left in-place  should have debugging symbols.

Gilad.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?400A914F.6090802>