On Tuesday 09 January 2007 12:50, John Baldwin wrote: > jhb 2007-01-09 17:50:05 UTC > > FreeBSD src repository > > Modified files: > libexec/rtld-elf rtld.c > usr.bin/kdump kdump.c > Log: > Add various utrace's for use with ktrace to the ELF runtime linker. To > activate the traces, set the LD_UTRACE (or LD_32_UTRACE) environment > variable. This also includes code in kdump(8) to parse the traces. > > Reviewed by: kan, jdp > MFC after: 2 weeks
Some sample output: -bash-2.05b$ cat foo.c #include <dlfcn.h> #include <err.h> int main(int ac, char **av) { void *p; p = dlopen("libpcap.so.4", RTLD_NOW); if (p == 0) errx(1, "dlopen: %s", dlerror()); dlclose(p); } -bash-2.05b$ env LD_UTRACE=yes LD_PRELOAD=libm.so.2 ktrace ./foo -bash-2.05b$ kdump -t u 17266 foo USER RTLD: loaded 0x800529200 @ 0x800633000 - 0x800754fff (/usr/lib/compat/libm.so.2) 17266 foo USER RTLD: LD_PRELOAD finished 17266 foo USER RTLD: loaded 0x800529400 @ 0x800755000 - 0x80096cfff (/lib/libc.so.6) 17266 foo USER RTLD: init 0x8006362c0 for 0x800529200 (/usr/lib/compat/libm.so.2) 17266 foo USER RTLD: init 0x80077e568 for 0x800529400 (/lib/libc.so.6) 17266 foo USER dlopen(libpcap.so.4, RTLD_NOW) 17266 foo USER RTLD: loaded 0x800529600 @ 0x80096d000 - 0x800a96fff (/lib/libpcap.so.4) 17266 foo USER 0x800529600 = dlopen(libpcap.so.4) ref 1 17266 foo USER RTLD: init 0x800971b70 for 0x800529600 (/lib/libpcap.so.4) 17266 foo USER dlclose(0x800529600) (/lib/libpcap.so.4, 1) 17266 foo USER RTLD: fini 0x8009840b4 for 0x800529600 (/lib/libpcap.so.4) 17266 foo USER RTLD: unloaded 0x800529600 @ 0x80096d000 - 0x800a96fff (/lib/libpcap.so.4) 17266 foo USER dlclose(0x800529600) finished 17266 foo USER RTLD: fini 0x80082cdf4 for 0x800529400 (/lib/libc.so.6) 17266 foo USER RTLD: fini 0x80064a1a4 for 0x800529200 (/usr/lib/compat/libm.so.2) -- John Baldwin _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"