以下是出错时,串口输出的 LOG:
...... Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=00054828, BVA=00001003 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(core lw.illo0t0o06r7(4 SW=I0E54EeS,OBVE=E0T01 03 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=00053ba8, BVA=00001003 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=00053568, BVA=00001003 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=00052f28, BVA=00001003 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=000528e8, BVA=00001003 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=000522a8, BVA=00001003 Exception 'User Stack Overflow' (0xfffffffd): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=400666a4(coredll.dll+0x000566a4) RA=4002ed34(coredll.dll+0x0001ed34) SP=00051d3c, BVA=00051d1c Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=000516fc, BVA=00000004 Exception 'Data Abort' (0x4): Thread-Id=05fe00b2(pth=c0869000), Proc-Id=053f00be(pprc=c087ba2c) 'MyTest.exe', VM-active=053f00be(pprc=c087ba2c) 'MyTest.exe' PC=4007a930(coredll.dll+0x0006a930) RA=4007a794(coredll.dll+0x0006a794) SP=000510bc, BVA=00001003 !!! Committed last page of the stack (0x00001003) or invalid stack pointer (0x000510bc), SEH bypassed, thread terminated !!!
其中关键信息:
(1) Exception 'User Stack Overflow' (0xfffffffd)
(2) !!! Committed last page of the stack (0x00001003) or invalid stack pointer (0x000510bc), SEH bypassed, thread terminated !!!
由于是偶尔出现的问题,目前还没有找到引起上述异常信息的原因。
修改了工程的属性中:
配置属性->链接器->系统 下的:
(1) 堆栈保留大小 65536 修改为 131072
(2) 堆栈提交大小 4096 修改为 8192
都扩大了2倍。
以下修改是否有效,还需要进一步测试与验证。