主题:Data Abort

  共有23300人关注过本帖    
JJ
1楼


Data Abort  发帖心情 Post By:2010-5-9 20:47:00   [只看该作者]

程序突然间出现这个问题:
step2_serial.exe
coredll.dll
The thread 0xC1B81A06 has exited with code 0 (0x0).
Data Abort: Thread=81b7b400 Proc=80d57420 <|>step2_serial.exe<|>
AKY=00000101 PC=03fc23dc(coredll.dll+0x000523dc) RA=00000073(???+0x00000073) BVA=feff0100 FSR=00000005

麻烦帮忙下,谢谢

  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2010-5-10 8:45:00   [只看该作者]

是稳定规律的出这个问题,还是偶尔?对代码是否有修改?

  单帖管理 | 引用 | 回复 回到顶部
JJ
3楼


  发帖心情 Post By:2010-5-12 18:06:00   [只看该作者]

问题已解决是,是sprintf的参数问题。
又碰到另外一个问题。
step2_serial.exe
coredll.dll
The thread 0x81B7EA06 has exited with code 0 (0x0).
The thread 0x41B7BDA6 has exited with code 0 (0x0).
The thread 0x81BC2FDA has exited with code -2147483645 (0x80000003).
The program <|>C:\Documents and Settings\Administrator\桌面\jj\ARMV4IDbg\step2_serial.exe<|> has exited with code -2147483645 (0x80000003).

好像又是sprintf的问题,但不清楚那里有问题。
i2 = sprintf(Printf,"[COM5_%d]%s\r\n", ceSer5.m_lDatLen, tmp);

其中:char Printf[150], char temp[150]

麻烦看下,谢谢

  单帖管理 | 引用 | 回复 回到顶部
x10
4楼


  发帖心情 Post By:2010-5-12 18:28:00   [只看该作者]

检查tmp的串长度。C的串必须以<|>\0<|>作为结束标志。

  单帖管理 | 引用 | 回复 回到顶部
JJ
5楼


  发帖心情 Post By:2010-5-12 20:48:00   [只看该作者]

有时候会出现错误,有时候又不会。
这是为什么

  单帖管理 | 引用 | 回复 回到顶部
x10
6楼


  发帖心情 Post By:2010-5-13 8:40:00   [只看该作者]

说明tmp字串有越界的问题。建议复习一下C语言的背景知识。

  单帖管理 | 引用 | 回复 回到顶部
JJ
7楼


  发帖心情 Post By:2010-5-13 14:41:00   [只看该作者]

tmp中只保存了长度为13的字符串,也会越界?
谢谢

  单帖管理 | 引用 | 回复 回到顶部
JJ
8楼


  发帖心情 Post By:2010-5-13 14:47:00   [只看该作者]

字符串应该是以<|>\0<|>结尾的吧

  单帖管理 | 引用 | 回复 回到顶部
x10
9楼


  发帖心情 Post By:2010-5-13 21:36:00   [只看该作者]

是的,可用strlen检查,如果大于sizeof(tmp),肯定就有问题了。

  单帖管理 | 引用 | 回复 回到顶部
雯雯
10楼


  发帖心情 Post By:2010-11-11 17:49:00   [只看该作者]

我的手机开机就出现data,abort 是怎么回事、该怎么解决

  单帖管理 | 引用 | 回复 回到顶部
x10
11楼


  发帖心情 Post By:2010-11-11 22:02:00   [只看该作者]

抱歉,我们这是针对英创嵌入式主板应用开发的技术论坛,:-)

  单帖管理 | 引用 | 回复 回到顶部

返回首页

Data Abort

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: