[완료]Floating point exception 메세지 출력 후 강제종료.
환경.
MCU sc2440, glic 2.3.3, linux 2.6.13 사용 중.
프로그램 동작 중 아래와 같은 메세지를 출력한 후 죽어 버립니다.
구글링으로 찾아 봤지만, 정확한 이유를 찾을 수 없어 여기에 글을 남깁니다.
많은 분들의 조언을 부탁 드립니다.
[ 출력 메세지 ]
Floating point exception
root@----:/mnt/nfs/tpms# gettimeofday(&time, NULL);
-sh: Syntax error: "&" unexpected (expecting ")")
root@----:/mnt/nfs/tpms#
\[ iconvconfig recorder
abxtest id renice
addgroup ifconfig reset
adduser ifdown rm
ar ifrename rmdir
arm-linux-sdl-config ifup rmmod
ash inetd route
autologin init rpcgen
awk insmod run-parts
basename install samples/
bunzip2 ip sdl-config
busybox iwconfig sed
bzcat iwevent seq
cat iwgetid set_rtc_time
catchsegv iwlist set_sys_time
chgrp iwpriv setkeycodes
chmod iwspy sh
chown kill sleep
chroot killall sort
chvt klogd sprof
clcd_dev.ko last start-stop-daemon
clear ldd strings
cmp libpng-config stty
cp libpng12-config su
cpio ln sulogin
cr3100_can_dummy loadfont swapoff
cut loadkmap swapon
date logger sync
dc login sysctl
dd logname syslogd
deallocvt logread systool
delgroup losetup tail
deluser ls tar
devfsd lsmod tcpd
df madplay tee
dirname makedevs telnet
dmesg md5sum telnetd
dosfsck mesg test
du mkdir tftp
dumpkmap mkdosfs time
echo mkfifo top
egrep mknod touch
env mkswap tprs
expr mktemp tr
false mnt_signal traceroute
fbset modprobe true
fdisk more tty
fgrep mount udev
find mtrace udevcontrol
flash_erase mv udevd
flash_eraseall nanddump udevinfo
flash_info nandwrite udevsend
free nc udevstart
freetype-config netstat umount
ftp nftl_format uname
ftpget nftldump uniq
ftpput nslookup unzip
getkey od uptime
getopt openvt uudecode
getty passwd vi
gpio_dev.ko pcprofiledump vlock
grep piddata watch
gunzip ping wc
gzip ping6 wget
halt pivot_root which
head printf who
hexdump ps whoami
hostname pwd xargs
hotplug rdate yes
hwclock readlink zcat
iconv reboot
root@----:/mnt/nfs/tpms# [Jprintf("sec : %ld, usec : %ld\n", time.tv_sec, time.tv_ usec);gettimeofday(&time, NULL);
-sh: Syntax error: word unexpected (expecting ")")
root@----:/mnt/nfs/tpms# [Jprintf("sec : %ld, usec : %ld\n", time.tv_sec, time.tv_ usec);gettimeofday(&time, NULL);
-sh: Syntax error: word unexpected (expecting ")")
root@----:/mnt/nfs/tpms# [Jprintf("sec : %ld, usec : %ld\n", time.tv_sec, time.tv_ usec);[1A
root@----:/mnt/nfs/tpms# printf("sec : %ld, usec : %ld\n", time.tv_sec, time.tv_ usec);gettimeofday(&time, NULL);[J[1A
root@----:/mnt/nfs/tpms# printf("sec : %ld, usec : %ld\n", time.tv_sec, time.tv_ usec);[J
-sh: Syntax error: word unexpected (expecting ")")
많은 분들의 조언을 부탁 드립니다.
정수 0으로 나누기를 하셨을 가능성도 높습니다.
일반적인 programming을 할 때 부동형을 쓰면서 부동소수점예외를 만나기는 어렵습니다. 정수형을 정수 0으로 나누는 실수를 했을 가능성이 높지요. 나눗셈 연산자 '/'와 나머지셈 연산자 '%'를 찾아보세요. Code Complete에서 Steve McConnel은 바보스러운 오류메세지의 전형으로 이것을 이야기했었죠. 제가 처음 Linux를 쓸 때는 Division by 0 이라는 message가 나왔었는데 언제부턴가 부동소수점예외가 나오더군요. 그게 표준인지..??
winner님의 말씀이 맞았습니다.
수신 데이터가 제대로 저장이 되지 않아서 발생된 문제였습니다.
감사합니다.^^;
댓글 달기