Subject: Re: Linux support non-functional - a ktrace!
To: Chris G. Demetriou <cgd@netbsd.org>
From: Mason Loring Bliss <mason@acheron.middleboro.ma.us>
List: current-users
Date: 11/20/1998 21:42:08
On Fri, Nov 20, 1998 at 06:21:54PM -0800, Chris G. Demetriou wrote:

> you probably either want 'exec ./quake2' in your script (i think
> that'll DTRT), or to use ktrace -i, so that the code which actually
> tries to execute the quake2 binary and the quake2 process itself is
> traced...

Okay... Done. Sorry 'bout that. Here's the new kdump.

Due to the fact that I can't successfully "make build" on my i386 at the
moment, my libraries are all about a month or so old. This could conceivably
be a problem, although I really don't know.

If there's anything more I can do to provide helpful information, just say
the word...

  4650 ktrace   RET   ktrace 0
  4650 ktrace   CALL  __sysctl(0xefbfd298,0x2,0xaa24,0xefbfd2a0,0,0)
  4650 ktrace   RET   __sysctl 0
  4650 ktrace   CALL  break(0xaa68)
  4650 ktrace   RET   break 0
  4650 ktrace   CALL  break(0xaffc)
  4650 ktrace   RET   break 0
  4650 ktrace   CALL  break(0xbffc)
  4650 ktrace   RET   break 0
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/sbin/quake2"
  4650 ktrace   RET   execve -1 errno 2 No such file or directory
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/usr/sbin/quake2"
  4650 ktrace   RET   execve -1 errno 2 No such file or directory
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/bin/quake2"
  4650 ktrace   RET   execve -1 errno 2 No such file or directory
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/usr/bin/quake2"
  4650 ktrace   RET   execve -1 errno 2 No such file or directory
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/usr/local/sbin/quake2"
  4650 ktrace   RET   execve -1 errno 2 No such file or directory
  4650 ktrace   CALL  execve(0xefbfd2fc,0xefbfd780,0xefbfd788)
  4650 ktrace   NAMI  "/usr/local/bin/quake2"
  4650 ktrace   NAMI  "/bin/sh"
  4650 sh       EMUL  "netbsd"
  4650 sh       RET   execve JUSTRETURN
  4650 sh       CALL  getpid
  4650 sh       RET   getpid 4650/0x122a
  4650 sh       CALL  geteuid
  4650 sh       RET   geteuid 2001/0x7d1
  4650 sh       CALL  __sysctl(0xefbfd690,0x2,0x49660,0xefbfd698,0,0)
  4650 sh       RET   __sysctl 0
  4650 sh       CALL  break(0x4a2d4)
  4650 sh       RET   break 0
  4650 sh       CALL  break(0x4affc)
  4650 sh       RET   break 0
  4650 sh       CALL  break(0x4bffc)
  4650 sh       RET   break 0
  4650 sh       CALL  __stat13(0x4966c,0xefbfd650)
  4650 sh       NAMI  "/var/mail/mason"
  4650 sh       RET   __stat13 0
  4650 sh       CALL  open(0xefbfd7f0,0,0xefbfd770)
  4650 sh       NAMI  "/usr/local/bin/quake2"
  4650 sh       RET   open 3
  4650 sh       CALL  fcntl(0x3,0,0xa)
  4650 sh       RET   fcntl 10/0xa
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  fcntl(0xa,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  getuid
  4650 sh       RET   getuid 2001/0x7d1
  4650 sh       CALL  geteuid
  4650 sh       RET   geteuid 2001/0x7d1
  4650 sh       CALL  getgid
  4650 sh       RET   getgid 0
  4650 sh       CALL  getegid
  4650 sh       RET   getegid 0
  4650 sh       CALL  open(0xefbfda3c,0,0)
  4650 sh       NAMI  "$HOME/.kshrc"
  4650 sh       RET   open -1 errno 2 No such file or directory
  4650 sh       CALL  read(0xa,0x49c6c,0x3ff)
  4650 sh       GIO   fd 10 read 51 bytes
       "#!/bin/sh
	cd /emul/linux/usr/games/quake2
	./quake2
       "
  4650 sh       RET   read 51/0x33
  4650 sh       CALL  __stat13(0x49700,0xefbfd590)
  4650 sh       NAMI  "/emul/linux/usr/games/quake2"
  4650 sh       RET   __stat13 0
  4650 sh       CALL  __lstat13(0x49740,0xefbfd510)
  4650 sh       NAMI  "/emul"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  chdir(0x49700)
  4650 sh       NAMI  "/emul/linux/usr/games/quake2"
  4650 sh       RET   chdir 0
  4650 sh       CALL  break(0x4cffc)
  4650 sh       RET   break 0
  4650 sh       CALL  __stat13(0x288b7,0xefbfd2a0)
  4650 sh       NAMI  "/"
  4650 sh       RET   __stat13 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "."
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0x49725)
  4650 sh       NAMI  ".."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  break(0x4dffc)
  4650 sh       RET   break 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  break(0x4fffc)
  4650 sh       RET   break 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../../../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../../../../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../../../../../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../../../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  open(0x4c000,0x4,0)
  4650 sh       NAMI  "../../../../../../.."
  4650 sh       RET   open 3
  4650 sh       CALL  __fstat13(0x3,0xefbfd1e4)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  fcntl(0x3,0x2,0x1)
  4650 sh       RET   fcntl 0
  4650 sh       CALL  fstatfs(0x3,0xefbfd0e4)
  4650 sh       RET   fstatfs 0
  4650 sh       CALL  __fstat13(0x3,0xefbfd2a0)
  4650 sh       RET   __fstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0x1)
  4650 sh       RET   lseek 0
  4650 sh       CALL  getdents(0x3,0x4e000,0x1000)
  4650 sh       RET   getdents 512/0x200
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../../../../../usr"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  lseek(0x3,0,0,0,0)
  4650 sh       RET   lseek 0
  4650 sh       CALL  close(0x3)
  4650 sh       RET   close 0
  4650 sh       CALL  __lstat13(0x4c000,0xefbfd2a0)
  4650 sh       NAMI  "../../../../../../../"
  4650 sh       RET   __lstat13 0
  4650 sh       CALL  break(0x50ffc)
  4650 sh       RET   break 0
  4650 sh       CALL  fork
  4650 sh       RET   fork 4651/0x122b
  4650 sh       CALL  getpgrp
  4650 sh       RET   getpgrp 4650/0x122a
  4650 sh       CALL  wait4(0xffffffff,0xefbfd5d4,0x2,0)
  4651 sh       RET   fork 0
  4651 sh       CALL  close(0xa)
  4651 sh       RET   close 0
  4651 sh       CALL  execve(0x49698,0x496ac,0x496b4)
  4651 sh       NAMI  "./quake2"
  4651 sh       NAMI  "/emul/linux/lib/ld-linux.so.1"
  4651 sh       NAMI  "/emul/linux"
  4651 sh       NAMI  "/emul/linux/lib/ld-linux.so.1"
  4650 sh       RET   wait4 4651/0x122b
  4650 sh       CALL  read(0xa,0x49c6c,0x3ff)
  4650 sh       GIO   fd 10 read 0 bytes
       ""
  4650 sh       RET   read 0
  4650 sh       CALL  exit(0x1)

And, for kicks:

ac9 /usr/src# file /emul/linux/usr/games/quake2/quake2
/emul/linux/usr/games/quake2/quake2: setgid ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped

-- 
Mason Loring Bliss..mason@acheron.middleboro.ma.us..acheron.dyn.ml.org/mason
"In the drowsy dark cave of the mind dreams build their nest with fragments
  dropped from day's caravan."--Rabindranath Tagore..awake ? sleep : dream;