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
    +关注

    关注

    4

    文章

    3694

    浏览量

    93213
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36947
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯中科助力2025教育信息技术应用创新大赛成功举办

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-21 16:23 591次阅读

    诚迈科技信电脑助力2025第二届教育信息技术应用创新大赛圆满收官

    11月15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-17 17:58 330次阅读
    诚迈科技信<b class='flag-5'>创</b>电脑助力2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛圆满收官

    宝马南京信息技术有限公司开业

    今日,宝马(南京)信息技术有限公司在南京正式“挂牌运行”。这家华晨宝马全资子公司由领悦数字信息技术有限公司南京分公司“迭代”而来,代表着一次里程碑式的“进化”。这次升级不仅加速了宝马在华数字化转型进程,更通过深化本土创新,为“未
    的头像 发表于 10-29 15:17 401次阅读

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节能高效蓝光的超级智能存储解决方案”凭借显著的
    的头像 发表于 08-07 15:35 1244次阅读

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 723次阅读

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 722次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安
    的头像 发表于 06-13 10:06 6284次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    龙芯中科荣获2024年度信息技术应用创新工作委员会卓越贡献成员单位

    光南,工业和信息化部信息技术发展司系统创新应用处处长孟洪涛,中国电子工业标准化技术协会执行秘书长朵晶,信工委会秘书长赵成志等出席。会上,龙
    的头像 发表于 01-23 10:50 981次阅读

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 927次阅读

    云酷蓝牙人员定位系统的优势

    通过在工作区域内部署云酷蓝牙人员定位信标,结合员工佩戴的智能定位标签,系统能够实时获取员工的位置信息,并将其传输到后台管理
    的头像 发表于 12-27 09:54 579次阅读
    云酷蓝牙人员<b class='flag-5'>定位</b><b class='flag-5'>系统</b>的优势

    人员定位管理系统用到技术都有哪些?

    带)、GPS、北斗等为例,为大家介绍一下人员定位技术有哪些?   人员定位管理系统是什么?                                               
    的头像 发表于 12-26 14:15 985次阅读

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

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

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

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

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 818次阅读

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

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