Date: Wed, 16 Sep 1998 09:05:06 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: John Polstra <jdp@freebsd.org> Cc: cvs-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/libexec/rtld-elf rtld.c Message-ID: <Pine.BSF.4.01.9809160903170.392-100000@herring.nlsystems.com> In-Reply-To: <199809160254.TAA12359@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 15 Sep 1998, John Polstra wrote: > jdp 1998/09/15 19:54:10 PDT > > Modified files: > libexec/rtld-elf rtld.c > Log: > Fix a bug that showed up when debugging dynamically linked programs. > References from GDB to "printf" and various other functions would > find the versions in the dynamic linker itself, rather than the > versions in the program's libc. This fix moves the GDB link map > entry for the dynamic linker to the end of the search list, where > its symbols will be found only if they are not found anywhere else. > It was suggested by Doug Rabson, though I implemented it a little > differently. > > I personally would prefer to leave the dynamic linker's entry out > of the GDB search list altogether. But Doug argues that it is > handy there for such things as setting breakpoints on dlopen(). > So it stays for now, at least. > > Note, if we ever integrate the dynamic linker with libc (which has > several important benefits to recommend it), this whole problem > goes away. I have been able to debug the whole rtld startup from _rtld() onwards, including relocatiing rtld itself and loading the main program's libraries. Having gdb able to see rtld's symbols is invaluable when working on this code. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891 Fax: +44 181 381 1039
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.01.9809160903170.392-100000>