servfox 我仔细查了一下,其是基于v4l架构的,我使用的linux内核是3.4.4,版本已经不支持该架构了。
luvcview 我利用strace跟踪了一下,输出如下:
write(1, "Buffer mapped at address 0xb6f6a"..., 37) = 37
ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0x9b0c4) = 0
write(1, "length: 53333 offset: 172032\n", 29) = 29
mmap2(NULL, 53333, PROT_READ, MAP_SHARED, 3, 0x2a) = 0xb6f5c000
write(1, "Buffer mapped at address 0xb6f5c"..., 37) = 37
ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0x9b0c4) = 0
ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0x9b0c4) = 0
ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0x9b0c4) = 0
ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0x9b0c4) = 0
mmap2(NULL, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f36000
mmap2(NULL, 159744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f0f000
open("/dev/fb0", O_RDWR) = 4
ioctl(4, FBIOGET_FSCREENINFO or FBIOPUT_CONTRAST, 0x92c18) = 0
ioctl(4, FBIOGET_VSCREENINFO, 0x92c5c) = 0
mmap2(NULL, 614400, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb6e79000
ioctl(4, 0x401446d1, 0xbe958ce4) = -1 ENOTTY (Inappropriate ioctl for device)
write(1, "Some problem with the ioctl SET_"..., 43) = 43
ioctl(3, VIDIOC_STREAMON, 0xbe958cfc) = 0
ioctl(3, VIDIOC_DQBUF, 0x9b0c4) = 0
write(1, "bytes in used 2278 \n", 20) = 20
ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0x9b0c4) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV +++
问题应该在红色那句?? 请问下如何具体定位到位置???