0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术WinCE平台下通过系统异常信息定位程序bug位置

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 11:14 次阅读

在程序开发时,时常会遇到异常报错的情况。有时因为环境因素,通过调试工具很难在调试时复现故障情况,或者很难在短时间内复现故障情况。随着工程代码量的增加,定位程序出错位置变得更加困难。

在使用基于WINCE平台的英创系列工控主板进行应用程序开发时,当程序产生异常退出,CE操作系统将通过调试串口打印类似如下错误信息。根据这些信息,结合应用程序对应的map文件,就能够快速定位程序异常的位置,本文将详细介绍这一方法。

准备工作

以一个简单的控制台程序test_exception.exe为例,模拟会产生异常的程序,代码如下。

#include 'stdafx.h'
#include 'windows.h'
#include 'commctrl.h'

void testErr(char* pbuf, int len)
{
*(pbuf+len) = len;
return;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i;
char* p = 0;
char buf[10];
for (i=0; i< 10;i++)
{
printf('i=%d\n',i);
testErr(buf, i);
Sleep(1000);
}
printf('test err\n');
Sleep(1000);
testErr(p, 10);
for (;;)
{
printf('.');
Sleep(1000);
}
return 0;
}

这段代码有个非常明显的致命错误,char* p = 0;实际上是定义的是p的地址为0,之后testErr(p, 10);函数对p地址的操作会造成指针越界,程序将产生异常结束。

设置工程属性

首先需要设置工程属性,让工程编译时产生MAP文件。

另外还可以选择添加汇编输出信息。

这样我们在重新编译程序后,就可以在编译目录里找到源文件的.map和.cod两种调试辅助文件。

记录DEBUG信息

连接英创主板的调试串口至PC主机的串口,打开串口工具(英创主板默认的调试串口参数为115200,8-N-1),以监听DEBUG口打印信息。

运行test_exception程序,记录DEBUG口打印的异常信息。

主要记录出错的exe(或者dll)名test_exception.exe,PC地址00011024,和RA地址000110bc。

查看map文件

查找PC地址00011024,和RA地址000110bc附近的信息。

对照PC地址能够知道,testErr函数的地址00011000,这个函数地址偏移00011024-00011000的地方出错了。

对照RA地址能够知道,最后一次调用该函数未出错时的位置,在wmain函数地址偏移000110bc -00011034的地方。

这样,我们不但知道了是哪个函数出的错,也知道了在哪里调用出的错。

查看cod文件

为了进一步确定范围,打开编译目录下对应的cod文件test_exception.cod。

查看testErr函数信息,可以知道,在偏移地址00011024-00011000=00024的地方的汇编,以及出错的C代码,为test_exception.cpp第10行的*(pbuf+len) = len;

查看wmain函数信息,可以知道,返回地址000110bc -00011034=00088,最后一次正常调用testErr的地方是在test_exception.cpp第22行。

定位错误

这样稍加分析,我们就可以确定出错位置了。

最后,可以在代码附近添加打印或日志log记录,来验证异常位置判断是否正确。

需要例程可以联系英创工程师。

如果产生异常提示信息的不是用户程序,而是'coredll.dll',则判定为是驱动出错,请联系英创工程师检查出错原因。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3541

    浏览量

    88639
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35304
收藏 人收藏

    评论

    相关推荐

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 36次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 64次阅读

    拓维信息参与牵头组建!长沙新一代信息技术产教联合体正式获批

    的长沙新一代信息技术产教联合体成功获批,为长沙市信息技术产业发展注入了新的活力。图/《2024年长沙市市级市域产教联合体名单》长沙新一代信息技术产教联合体将依托龙头企
    的头像 发表于 12-07 01:06 357次阅读
    拓维<b class='flag-5'>信息</b>参与牵头组建!长沙新一代<b class='flag-5'>信息技术</b>产教联合体正式获批

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 467次阅读

    信息集成系统:打造智慧化的数字化平台

    。   什么是信息集成系统?它是一种集成多个软硬件系统的综合平台,旨在提高企业的管理效率和业务能力。通过将不同
    的头像 发表于 09-10 16:47 295次阅读

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 426次阅读

    人员定位系统的原理和工作流程

    。 人员定位系统是一种利用先进的技术手段来实现对人员位置信息追踪的系统。其原理是通过给每个人员佩
    的头像 发表于 09-03 10:42 528次阅读
    人员<b class='flag-5'>定位</b><b class='flag-5'>系统</b>的原理和工作流程

    智慧工厂蓝牙人员定位系统功能

    可实时掌握全厂人员位置、作业等信息通过智能分析和电子围栏等技术有效预防安全风险,同时还可联动视频监控查看现场实际情况,提升安全管理效率。 智慧工厂蓝牙人员
    的头像 发表于 07-30 16:17 305次阅读
    智慧工厂蓝牙人员<b class='flag-5'>定位</b><b class='flag-5'>系统</b>功能

    UWB人员定位系统定位原理

    uwb人员定位系统基于什么原理? UWB人员定位系统基于超宽带(Ultra WideBand)技术进行
    的头像 发表于 06-18 11:37 1326次阅读
    UWB人员<b class='flag-5'>定位</b><b class='flag-5'>系统</b>的<b class='flag-5'>定位</b>原理

    鸿蒙原生应用元服务开发-位置服务获取设备信息开发

    ,如车载、步行导航。 . 在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务,结合场景特点,在导航启动之初,用
    发表于 06-14 14:46

    翼辉信息入选2023年信息技术应用创新解决方案名单

    近日,2023 年(第五届)信息技术应用创新解决方案公布遴选名单,历经资格初审、技术中评、区域评议、终评预审,翼辉以“面向工业领域嵌入式操作系统 SylixOS 解决方案”,成功在全国优秀方案中脱颖而出,入选典型解决方案名单。
    的头像 发表于 04-28 11:37 547次阅读
    翼辉<b class='flag-5'>信息</b>入选2023年<b class='flag-5'>信息技术</b>应用创新解决方案名单

    基于物联网、大数据、云计算等现代信息技术高速公路智慧消防平台解决方案

    安科瑞 程瑜 系统简介 1、概述 智慧消防云平台基于物联网、大数据、云计算等现代信息技术,将分散的火灾自动报警设备、电气火灾监控设备、智慧烟感探测器、智慧消防用水等设备连接形成网络,并对这些设备
    的头像 发表于 03-15 14:20 431次阅读
    基于物联网、大数据、云计算等现代<b class='flag-5'>信息技术</b>高速公路智慧消防<b class='flag-5'>平台</b>解决方案

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 923次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单

    手机定位技术之卫星定位和移动基站定位

    GPS 是一种通过卫星信号来确定接收设备位置定位技术。手机内置的 GPS 芯片可以接收来自卫星的信号,通过计算接收时间和卫星
    的头像 发表于 02-26 15:19 5357次阅读
    手机<b class='flag-5'>定位</b><b class='flag-5'>技术</b>之卫星<b class='flag-5'>定位</b>和移动基站<b class='flag-5'>定位</b>

    RX78M组 EtherCAT ETG.5003示例程序固件信息技术

    电子发烧友网站提供《RX78M组 EtherCAT ETG.5003示例程序固件信息技术.pdf》资料免费下载
    发表于 02-21 14:22 1次下载
    RX78M组  EtherCAT ETG.5003示例<b class='flag-5'>程序</b>固件<b class='flag-5'>信息技术</b>