衡阳派盒市场营销有限公司

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

    文章

    3570

    瀏覽量

    89313
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35622
收藏 人收藏

    評論

    相關推薦

    龍芯中科榮獲2024年度信息技術應用創新工作委員會卓越貢獻成員單位

    光南,工業和信息化部信息技術發展司系統創新應用處處長孟洪濤,中國電子工業標準化技術協會執行秘書長朵晶,信工委會秘書長趙成志等出席。會上,龍
    的頭像 發表于 01-23 10:50 ?166次閱讀

    芯盛智能榮獲2024年信息技術應用創新工作委員會卓越貢獻成員單位

    日前,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱 “信工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對在信工作中作出突出貢獻的成員單位予以表彰。江蘇
    的頭像 發表于 01-20 09:56 ?160次閱讀

    人員定位管理系統用到技術都有哪些?

    帶)、GPS、北斗等為例,為大家介紹一下人員定位技術有哪些? ? 人員定位管理系統是什么? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
    的頭像 發表于 12-26 14:15 ?229次閱讀

    飛騰助力首屆教育信息技術應用創新大賽圓滿落幕

    近日,由中國教育技術協會主辦,教育部教育管理信息中心教育信實驗室、公安部第三研究所、中國電子工業標準化技術協會信工委會支持,北京航空航天
    的頭像 發表于 12-24 09:57 ?208次閱讀

    有方科技參編的信息技術團體標準發布

    近日,有方科技參編的《信息技術產品供應鏈成熟度 共性指標 第1部分:企業背景評價》《信息技術產品供應鏈成熟度 共性指標 第2部分:技術掌控評價》《信息技術產品供應鏈成熟度 共性指標 第
    的頭像 發表于 12-23 10:44 ?231次閱讀

    中科達榮獲2024年軟件和信息技術服務優秀企業

    及前百家企業”名單。中科達憑借非凡的技術實力與持續的創新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業”以及“2024年軟件和信息技術服務優秀企業”。
    的頭像 發表于 10-30 11:44 ?557次閱讀

    信息集成系統:打造智慧化的數字化平臺

    。 ? 什么是信息集成系統?它是一種集成多個軟硬件系統的綜合平臺,旨在提高企業的管理效率和業務能力。通過將不同
    的頭像 發表于 09-10 16:47 ?359次閱讀

    梯度科技入選2023年信息技術應用創新解決方案名單

    日前,工業和信息化部網絡安全產業發展中心(工業和信息化部信息中心)在天津舉辦2024信息技術應用創新發展大會暨解決方案應用推廣大會。會上正式公布了2023年
    的頭像 發表于 09-09 16:29 ?494次閱讀

    人員定位系統的原理和工作流程

    。 人員定位系統是一種利用先進的技術手段來實現對人員位置信息追蹤的系統。其原理是通過給每個人員佩
    的頭像 發表于 09-03 10:42 ?745次閱讀
    人員<b class='flag-5'>定位</b><b class='flag-5'>系統</b>的原理和工作流程

    智慧工廠藍牙人員定位系統功能

    可實時掌握全廠人員位置、作業等信息通過智能分析和電子圍欄等技術有效預防安全風險,同時還可聯動視頻監控查看現場實際情況,提升安全管理效率。 智慧工廠藍牙人員
    的頭像 發表于 07-30 16:17 ?358次閱讀
    智慧工廠藍牙人員<b class='flag-5'>定位</b><b class='flag-5'>系統</b>功能

    UWB人員定位系統定位原理

    uwb人員定位系統基于什么原理? UWB人員定位系統基于超寬帶(Ultra WideBand)技術進行
    的頭像 發表于 06-18 11:37 ?1448次閱讀
    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 ?625次閱讀
    翼輝<b class='flag-5'>信息</b>入選2023年<b class='flag-5'>信息技術</b>應用創新解決方案名單

    基于物聯網、大數據、云計算等現代信息技術高速公路智慧消防平臺解決方案

    安科瑞 程瑜 系統簡介 1、概述 智慧消防云平臺基于物聯網、大數據、云計算等現代信息技術,將分散的火災自動報警設備、電氣火災監控設備、智慧煙感探測器、智慧消防用水等設備連接形成網絡,并對這些設備
    的頭像 發表于 03-15 14:20 ?494次閱讀
    基于物聯網、大數據、云計算等現代<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>
    百家乐官网六亿财富| 皇冠网络刷qb软件| 环球百家乐娱乐城| 百家乐赢赌场百家乐| 澳门百家乐真人娱乐城| 百家乐智能软件| 百家乐真人荷官网| 网上百家乐公式| 百家乐赢的秘籍在哪| 广东百家乐主论坛| 百家乐博百家乐的玩法技巧和规则| 百家乐冼牌机| 大发888娱乐场出纳| 足球波胆| 百家乐官网破解辅助| 新河县| 百家乐官网连赢的策略| 云鼎百家乐官网程序开发有限公司 | 机率游戏| 新葡京娱乐城官网| 获嘉县| 赌场百家乐官网规则| 百家乐官网游戏免费试| 凯时百家乐技巧| 百家乐公开| 棋牌休闲游戏| 金冠百家乐官网娱乐城| 尊龙百家乐官网赌场娱乐网规则| 阴宅24山吉凶| 利都百家乐国际赌场娱乐网规则| 大发888送钱58元| 和静县| 百家乐官网赌博娱乐城| 百家乐如何投注技巧| 威尼斯人娱乐骰宝| 金冠娱乐城网站| 百家乐官网三跳| 百家乐公式球打法| 大发888客服端下载| 百家乐官网如何视频| 微信百家乐官网群资源|