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)
%