If you've used Linux, you probably know about 'strace' to see all of the kernel system calls a function does. Well, there's a software package for Linux now that will trace the _C_library_ function calls. Obviously, this is much handier. For instance, here's the start of the CircleMUD bootup: __libc_start_main(0x080497ac, 3, 0xbffffb64, 0x080491cc, 0x08091774 <unfinished ...> fdopen(2, 0x080917c0, 0x4013c03c, 0xbffffb64, 3) = 0x080c72d8 time(0, 1, 0xbffffb18, 0xbffffb18, 0x08049866) = 0x36d4c3d4 localtime(0xbffffaf8, 0, 1, 0x36d4c3d4, 0xbffffb18) = 0x4013f9a0 asctime(0x4013f9a0, 0xbffffaf8, 0, 1, 0x36d4c3d4) = 0x4013daa0 fprintf(0x080c72d8, 0x080b3deb, 0x4013daa4, 0x4013f9a0, 0xbffffaf8) = 19 vfprintf(0x080c72d8, 0x080a4e20, 0xbffffb08, 0x080c72d8, 0x080b3deb) = 42 fprintf(0x080c72d8, 0x080b3df8, 1, 0x36d4c3d4, 0xbffffb18) = 1 fflush(0x080c72d8, 0x080c72d8, 0x080b3df8, 1, 0x36d4c3d4Feb 24 22:30:28 :: CircleMUD, version 3.00 beta patchlevel 14 ) = 0 chdir(0xbffffc88, 0x4013c03c, 0xbffffb64, 3, 4000) = 0 time(0, 3, 0x400f6be0, 0xbffffb18, 0x080499ef) = 0x36d4c3d4 localtime(0xbffffaf4, 0, 3, 0x36d4c3d4, 0xbffffb18) = 0x4013f9a0 asctime(0x4013f9a0, 0xbffffaf4, 0, 3, 0x36d4c3d4) = 0x4013daa0 fprintf(0x080c72d8, 0x080b3deb, 0x4013daa4, 0x4013f9a0, 0xbffffaf4) = 19 vfprintf(0x080c72d8, 0x08091a2f, 0xbffffb04, 0x080c72d8, 0x080b3deb) = 54 fprintf(0x080c72d8, 0x080b3df8, 3, 0x36d4c3d4, 0xbffffb18) = 1 fflush(0x080c72d8, 0x080c72d8, 0x080b3df8, 3, 0x36d4c3d4Feb 24 22:30:28 :: Using /home/g/mud/circle30bpl14/lib as data directory. [...] fprintf(0x080c72d8, 0x080b3df8, 4000, 0x36d4c3d4, 0xbffffaf4) = 1 fflush(0x080c72d8, 0x080c72d8, 0x080b3df8, 4000, 0x36d4c3d4Feb 24 22:30:28 :: Opening mother connection. ) = 0 socket(2, 1, 0, 4000, 0xbffffc88) = 3 setsockopt(3, 1, 2, 0xbffffabc, 4) = 0 setsockopt(3, 1, 7, 0xbffffa9c, 4) = 0 setsockopt(3, 1, 13, 0xbffffab4, 8) = 0 __bzero(0xbffffac0, 16, 4000, 0xbffffc88, 0) = 0 __bzero(0x080b6ae0, 4, 0xbffffac0, 0xbffffad0, 0x08049bc4) = 0 etc. Important info: "4. Where does it work --------------------- At the time of writting, it works only with ELF32 executables. It only works in Linux, and it only works on i386, m68k, and ARM processors." For more information, see: ftp://ftp.debian.org/debian/dists/unstable/main/source/utils/ltrace_* -- George Greer greerga@circlemud.org http://www.van.m-l.org/CircleMUD/ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST