Powered by SmartDoc

4.4 ktrace してみる

% ktrace ./a.out 
CTL_KERN/KERN_VERSION="FreeBSD 15.0-CURRENT #0 n265729-9b03a5de73d4-dirty: Tue Oct 10 18:39:54 JST 2023
    root@msrvkx:/usr/obj/usr/src/amd64.amd64/sys/XIJ
"
% kdump 
 11095 ktrace   RET   ktrace 0
 11095 ktrace   CALL  execve(0x2a67290be69f,0x2a67290be2f8,0x2a67290be308)
 11095 ktrace   NAMI  "./a.out"
 11095 ktrace   NAMI  "/libexec/ld-elf.so.1"
 11095 a.out    RET   execve JUSTRETURN
 11095 a.out    CALL  mmap(0,0x21000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,0xffffffff,0)
 11095 a.out    RET   mmap 22003767574528/0x140326c00000
 11095 a.out    CALL  mprotect(0x2a4f85cb0000,0x1000,0x1<PROT_READ>)
 11095 a.out    RET   mprotect 0
 11095 a.out    CALL  issetugid
 11095 a.out    RET   issetugid 0
 11095 a.out    CALL  sigfastblock(0x1,0x2a4f85cb2bf0)
 11095 a.out    RET   sigfastblock 0
 11095 a.out    CALL  open(0x2a4f85c95b41,0x100000<O_RDONLY|O_CLOEXEC>)
 11095 a.out    NAMI  "/etc/libmap.conf"
 11095 a.out    RET   open 3
 11095 a.out    CALL  fstat(0x3,0x8211aa3a8)
 11095 a.out    STRU  struct stat {dev=2185217644151246432, ino=27273, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=1697674849.062291000, mtime=1697674849.064054000, ctime=1697674849.064119000, birthtime=1697674849.062291000, size=35, blksize=4096, blocks=9, flags=0x0 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  read(0x3,0x140326c04008,0x23)
 11095 a.out    GIO   fd 3 read 35 bytes
       "includedir /usr/local/etc/libmap.d
       "
 11095 a.out    RET   read 35/0x23
 11095 a.out    CALL  close(0x3)
 11095 a.out    RET   close 0
 11095 a.out    CALL  open(0x8211a9f4b,0x120004<O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC>)
 11095 a.out    NAMI  "/usr/local/etc/libmap.d"
 11095 a.out    RET   open 3
 11095 a.out    CALL  fcntl(0x3,F_ISUNIONSTACK,0x0)
 11095 a.out    RET   fcntl 0
 11095 a.out    CALL  getdirentries(0x3,0x140326c05008,0x1000,0x140326c01030)
 11095 a.out    RET   getdirentries 144/0x90
 11095 a.out    CALL  open(0x8211a9b40,0x100000<O_RDONLY|O_CLOEXEC>)
 11095 a.out    NAMI  "/usr/local/etc/libmap.d/nvidia.conf"
 11095 a.out    RET   open 4
 11095 a.out    CALL  fstat(0x4,0x8211a9628)
 11095 a.out    STRU  struct stat {dev=2185217644151246432, ino=167920, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=0, mtime=1697106165, ctime=1698042148.296071000, birthtime=1697106165, size=40, blksize=4096, blocks=9, flags=0x800 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  read(0x4,0x140326c040c8,0x28)
 11095 a.out    GIO   fd 4 read 40 bytes
       "libGLX_indirect.so.0 libGLX_nvidia.so.0
       "
 11095 a.out    RET   read 40/0x28
 11095 a.out    CALL  close(0x4)
 11095 a.out    RET   close 0
 11095 a.out    CALL  open(0x8211a9b40,0x100000<O_RDONLY|O_CLOEXEC>)
 11095 a.out    NAMI  "/usr/local/etc/libmap.d/mesa.conf"
 11095 a.out    RET   open 4
 11095 a.out    CALL  fstat(0x4,0x8211a9628)
 11095 a.out    STRU  struct stat {dev=2185217644151246432, ino=167336, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=0, mtime=1697105271, ctime=1698042144.069821000, birthtime=1697105271, size=38, blksize=4096, blocks=9, flags=0x800 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  read(0x4,0x140326c040c8,0x26)
 11095 a.out    GIO   fd 4 read 38 bytes
       "libGLX_indirect.so.0 libGLX_mesa.so.0
       "
 11095 a.out    RET   read 38/0x26
 11095 a.out    CALL  close(0x4)
 11095 a.out    RET   close 0
 11095 a.out    CALL  getdirentries(0x3,0x140326c05008,0x1000,0x140326c01030)
 11095 a.out    RET   getdirentries 0
 11095 a.out    CALL  close(0x3)
 11095 a.out    RET   close 0
 11095 a.out    CALL  open(0x2a4f85c955de,0x100000<O_RDONLY|O_CLOEXEC>)
 11095 a.out    NAMI  "/var/run/ld-elf.so.hints"
 11095 a.out    RET   open 3
 11095 a.out    CALL  read(0x3,0x2a4f85cb2a78,0x80)
 11095 a.out    GIO   fd 3 read 128 bytes
       0x0000 4568 6e74 0100 0000 8000 0000 0301 0000 0000 0000 0201  |Ehnt..................|
       0x0016 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000  |......................|
       0x002c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000  |......................|
       0x0042 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000  |......................|
       0x0058 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000  |......................|
       0x006e 0000 0000 0000 0000 0000 0000 0000 0000 0000            |..................|

 11095 a.out    RET   read 128/0x80
 11095 a.out    CALL  fstat(0x3,0x8211a9460)
 11095 a.out    STRU  struct stat {dev=2185217644151246432, ino=1982657, mode=0100444, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=1701849162.837125000, mtime=1701849162.837324000, ctime=1701849162.837422000, birthtime=1701849162.837125000, size=387, blksize=4096, blocks=9, flags=0x800 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  pread(0x3,0x140326c08008,0x103,0x80)
 11095 a.out    GIO   fd 3 read 259 bytes
       "/lib:/usr/lib:/usr/lib/compat:/usr/local/lib:/usr/local/lib/compat/pkg:/usr/local/lib/R/li\
        b:/usr/local/lib/alsa-lib:/usr/local/lib/gcc12:/usr/local/lib/perl5/5.38/mach/CORE:/usr/lo\
        cal/lib/qt5:/usr/local/lib/qt6:/usr/local/llvm15/lib:/usr/local/share/chromium\0"
 11095 a.out    RET   pread 259/0x103
 11095 a.out    CALL  close(0x3)
 11095 a.out    RET   close 0
 11095 a.out    CALL  open(0x140326c09008,0x300000<O_RDONLY|O_CLOEXEC|O_VERIFY>)
 11095 a.out    NAMI  "/lib/libc.so.7"
 11095 a.out    RET   open 3
 11095 a.out    CALL  fstat(0x3,0x8211a9a60)
 11095 a.out    STRU  struct stat {dev=687931179, ino=603, mode=0100444, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=1697674904.525702000, mtime=1697674904.531818000, ctime=1697674904.534353000, birthtime=1697674904.525702000, size=1981400, blksize=131072, blocks=4113, flags=0x20800 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  mmap(0,0x1000,0x1<PROT_READ>,0x40002<MAP_PRIVATE|MAP_PREFAULT_READ>,0x3,0)
 11095 a.out    RET   mmap 34932498432/0x82223a000
 11095 a.out    CALL  mmap(0,0x40c000,0<PROT_NONE>,0x2000<MAP_GUARD>,0xffffffff,0)
 11095 a.out    RET   mmap 34945101824/0x822e3f000
 11095 a.out    CALL  mmap(0x822e3f000,0x8a000,0x1<PROT_READ>,0x60012<MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ>,0x3,0)
 11095 a.out    RET   mmap 34945101824/0x822e3f000
 11095 a.out    CALL  mmap(0x822ec9000,0x14c000,0x5<PROT_READ|PROT_EXEC>,0x60012<MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ>,0x3,0x89000)
 11095 a.out    RET   mmap 34945667072/0x822ec9000
 11095 a.out    CALL  mmap(0x823015000,0xa000,0x3<PROT_READ|PROT_WRITE>,0x40012<MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ>,0x3,0x1d4000)
 11095 a.out    RET   mmap 34947026944/0x823015000
 11095 a.out    CALL  mmap(0x82301f000,0x6000,0x3<PROT_READ|PROT_WRITE>,0x40012<MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ>,0x3,0x1dd000)
 11095 a.out    RET   mmap 34947067904/0x82301f000
 11095 a.out    CALL  mmap(0x823025000,0x226000,0x3<PROT_READ|PROT_WRITE>,0x1012<MAP_PRIVATE|MAP_FIXED|MAP_ANON>,0xffffffff,0)
 11095 a.out    RET   mmap 34947092480/0x823025000
 11095 a.out    CALL  munmap(0x82223a000,0x1000)
 11095 a.out    RET   munmap 0
 11095 a.out    CALL  close(0x3)
 11095 a.out    RET   close 0
 11095 a.out    CALL  mprotect(0x823015000,0x9000,0x1<PROT_READ>)
 11095 a.out    RET   mprotect 0
 11095 a.out    CALL  mprotect(0x823015000,0x9000,0x3<PROT_READ|PROT_WRITE>)
 11095 a.out    RET   mprotect 0
 11095 a.out    CALL  mprotect(0x823015000,0x9000,0x1<PROT_READ>)
 11095 a.out    RET   mprotect 0
 11095 a.out    CALL  readlink(0x822e8ad24,0x8211a9bc0,0x400)
 11095 a.out    NAMI  "/etc/malloc.conf"
 11095 a.out    RET   readlink -1 errno 2 No such file or directory
 11095 a.out    CALL  issetugid
 11095 a.out    RET   issetugid 0
 11095 a.out    CALL  mmap(0,0x200000,0x3<PROT_READ|PROT_WRITE>,0x15001002<MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(21)>,0xffffffff,0)
 11095 a.out    RET   mmap 22003769671680/0x140326e00000
 11095 a.out    CALL  mmap(0,0x200000,0x3<PROT_READ|PROT_WRITE>,0xc001002<MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12)>,0xffffffff,0)
 11095 a.out    RET   mmap 22003771768832/0x140327000000
 11095 a.out    CALL  mmap(0,0x400000,0x3<PROT_READ|PROT_WRITE>,0x15001002<MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(21)>,0xffffffff,0)
 11095 a.out    RET   mmap 22003773865984/0x140327200000
 11095 a.out    CALL  mprotect(0x202000,0x1000,0x1<PROT_READ>)
 11095 a.out    RET   mprotect 0
 11095 a.out    CALL  __sysctl(0x8211aafe8,0x2,0x8211aabe0,0x8211aafe0,0,0)
 11095 a.out    SCTL  "kern.version"
 11095 a.out    RET   __sysctl 0
 11095 a.out    CALL  fstat(0x1,0x8211aa5d0)
 11095 a.out    STRU  struct stat {dev=1895890739, ino=266, mode=020620, nlink=1, uid=4098, gid=4, rdev=266, atime=1702518265, mtime=1702518265, ctime=1702518265, birthtime=-1, size=0, blksize=4096, blocks=0, flags=0x0 }
 11095 a.out    RET   fstat 0
 11095 a.out    CALL  ioctl(0x1,TIOCGETA,0x8211aa580)
 11095 a.out    RET   ioctl 0
 11095 a.out    CALL  write(0x1,0x140327009000,0x68)
 11095 a.out    GIO   fd 1 wrote 104 bytes
       "CTL_KERN/KERN_VERSION="FreeBSD 15.0-CURRENT #0 n265729-9b03a5de73d4-dirty: Tue Oct 10 18:3\
        9:54 JST 2023
       "
 11095 a.out    RET   write 104/0x68
 11095 a.out    CALL  write(0x1,0x140327009000,0x35)
 11095 a.out    GIO   fd 1 wrote 53 bytes
       "    root@msrvkx:/usr/obj/usr/src/amd64.amd64/sys/XIJ
       "
 11095 a.out    RET   write 53/0x35
 11095 a.out    CALL  write(0x1,0x140327009000,0x2)
 11095 a.out    GIO   fd 1 wrote 2 bytes
       ""
       "
 11095 a.out    RET   write 2
 11095 a.out    CALL  exit(0)
%