- 论坛徽章:
- 0
|
本帖最后由 lixiaogang110217 于 2010-05-03 16:07 编辑
浮点数被零除后报错,按理说不应该报错的。
测试代码:- #include <stdio.h>
- int main() {
- double a, b;
- a=1.0;
- printf("BEFORE\n");
- b=0.0;
- a=a/b;
- printf("Result %5.2f\n",a);
复制代码 交叉编译复制到目标板运行后的结果:- BEFORE
- Illegal instruction
复制代码 这是怎么回事呢?
实际出错语句:- Program received signal SIGILL, Illegal instruction.
- 0x00099a30 in ejsCreateNumberType (ejs=0x1baf10) at ejsLib.c:8753
- 8753 ejs->infinityValue->value = 1.0 / zero;
- (gdb) bt
- #0 0x00099a30 in ejsCreateNumberType (ejs=0x1baf10) at ejsLib.c:8753
- #1 0x000d5990 in createTypes (ejs=0x1baf10) at ejsLib.c:30934
- #2 0x000d6050 in defineTypes (ejs=0x1baf10) at ejsLib.c:31127
- #3 0x000d56e0 in ejsCreate (ctx=0x1bac60, master=0x0,
- searchPath=0x1bad28 "/mnt/jffs2/appweb/src/lib/appweb/bin/modules",
- flags=32) at ejsLib.c:30852
- #4 0x000dd0d4 in ejsOpenWebFramework (control=0x1bab38, useMaster=1)
- at ejsLib.c:33936
- #5 0x00035978 in maEjsHandlerInit (http=0x1b8b80, path=0x0) at ejsAppweb.c:867
- #6 0x00018658 in maLoadStaticModules (http=0x1b8b80) at link.c:38
- #7 0x00010f40 in maCreateServer (http=0x1b8b80, name=0x181ff4 "default",
- root=0x181f8c ".", ipAddr=0x0, port=-1) at server.c:455
- #8 0x0000bcec in main (argc=1, argv=0xbefc7c64) at appweb.c:233
复制代码 |
|