i386 libpcap binary run in amd64 core dumped

ls cat lstopcat at gmail.com
Mon Aug 3 03:54:40 UTC 2009


I need run a sniffer/libpcap program in freebsd-7.2-amd64  which compiled
for freebsd-6.2-i386. it coredumped in pcap_setnonblock().seems 7.2-amd64's
ioctl() does not recognize the 6.2-i386 bpf ioctl() request. BIOCGDLTLIST
request failed.
maybe BIOCSRTIMEOUT cause program coredumped.


        char errstr[1024];
        pcap_t *pd1;

        pd1 = pcap_open_live("em0", 8192, 1, 1000, errstr);
        pcap_setnonblock(pd1, 1, errstr);


kdump of FreeBSD fbsd-6.2:
   975 a.out    CALL  open(0xbfbfe240,0x2,0x2809be26)
   975 a.out    NAMI  "/dev/bpf0"
   975 a.out    RET   open 3
   975 a.out    CALL  ioctl(0x3,BIOCVERSION,0xbfbfe234)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCGBLEN,0xbfbfe230)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCSBLEN,0xbfbfe230)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCSETIF,0xbfbfe760)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCGDLT,0xbfbfe230)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCGDLTLIST,0xbfbfe238)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  break(0x804d000)
   975 a.out    RET   break 0
   975 a.out    CALL  ioctl(0x3,BIOCGDLTLIST,0xbfbfe238)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCSHDRCMPLT,0xbfbfe22c)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCSRTIMEOUT,0xbfbfe220)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCPROMISC,0)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  ioctl(0x3,BIOCGBLEN,0xbfbfe230)
   975 a.out    RET   ioctl 0
   975 a.out    CALL  break(0x8055000)
   975 a.out    RET   break 0
   975 a.out    CALL  ioctl(0x3,BIOCSETF,0xbfbfe210)
   975 a.out    RET   ioctl 0



kdump of FreeBSD fbsd-7.2:
  7961 a.out    CALL  open(0xffffdbd4,O_RDWR,<unused>0x280a1cd2)
  7961 a.out    NAMI  "/dev/bpf0"
  7961 a.out    RET   open 3
  7961 a.out    CALL  ioctl(0x3,BIOCVERSION,0xffffdc08)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,BIOCGBLEN,0xffffdc00)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,BIOCSBLEN,0xffffdc00)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,BIOCSETIF,0xffffdbb4)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,BIOCGDLT,0xffffdc00)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,0xc0084279 ,0xffffdbf8)
  7961 a.out    RET   ioctl -1 errno 22 Invalid argument
  7961 a.out    CALL  ioctl(0x3,BIOCSHDRCMPLT,0xffffdc04)
  7961 a.out    RET   ioctl 0
  7961 a.out    CALL  ioctl(0x3,0x8008426d ,0xffffdbd4)
  7961 a.out    RET   ioctl -1 errno 22 Invalid argument
  7961 a.out    CALL  close(0x3)
  7961 a.out    RET   close 0
  7961 a.out    PSIG  SIGSEGV SIG_DFL
  7961 a.out    NAMI  "a.out.core"


More information about the freebsd-amd64 mailing list