[發明專利]基于VxWorks操作系統的函數調用棧分析方法及裝置有效
| 申請號: | 201310506592.X | 申請日: | 2013-10-24 |
| 公開(公告)號: | CN103559123A | 公開(公告)日: | 2014-02-05 |
| 發明(設計)人: | 曾顏 | 申請(專利權)人: | 烽火通信科技股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F11/34 |
| 代理公司: | 北京捷誠信通專利事務所(普通合伙) 11221 | 代理人: | 魏殿紳;龐炳良 |
| 地址: | 430074 湖北省武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 vxworks 操作系統 函數 調用 分析 方法 裝置 | ||
1.一種基于VxWorks操作系統的函數調用棧分析方法,其特征在于,包括以下步驟:
S1、在主機上輸入目標機當前運行的VxWorks映像的可執行鏈接格式ELF文件,同時在主機上生成映像文件的符號表文件;
S2、假定需要進行函數調用棧分析的任務為t1,主機向目標機下發請求命令:暫停任務t1,目標機執行該命令;
S3、主機向目標機請求任務t1的任務控制塊TCB信息,目標機返回任務t1的TCB信息,包括通用寄存器信息、棧底以及棧大小;
S4、主機從返回的TCB信息中獲取到棧指針SP值、程序計數器PC值、返回地址RA值,無內部互鎖流水級的微處理器MIPS棧空間采用的是向下增長的方式,棧底在高地址,運行時SP值就是當前函數的棧指針,它指向的是棧頂的位置,每個棧幀中所存放的內容和存放順序由目標體系架構的調用約定來定義;當前SP值是程序運行到當前狀態的SP值,函數入口點的SP值則是進入該函數還未執行函數第一條指令時的SP值;
S5、主機依據SP值以及棧底信息向目標機請求棧空間的信息,所請求的棧信息為SP值所指向的棧頂至棧底之間的內存空間信息,目標機返回相應的棧信息;
S6、主機根據目標機的TCB信息,棧空間的信息以及反匯編文件,進行函數調用棧分析;
S7、主機向目標機下發請求命令:恢復需要進行函數調用棧分析的任務t1,目標機執行該命令。
2.如權利要求1所述的基于VxWorks操作系統的函數調用棧分析方法,其特征在于:步驟S6中的函數調用棧分析是一個遞歸的過程,進行頂層函數調用棧分析時,PC值和SP值分別為目標機返回的TCB信息中的PC值和SP值,后續遞歸過程中每一層的分析則依賴于上一層所生成的新的PC值和SP值,直至SP值到達棧底。
3.如權利要求2所述的基于VxWorks操作系統的函數調用棧分析方法,其特征在于:步驟S6中的函數調用棧分析過程如下:
步驟601、判斷SP值是否到達棧底,如果是,則轉到步驟602;如果否,則轉到步驟603;
步驟602、串接每一層PC值所屬的函數func形成函數調用鏈,結束;
步驟603、根據PC值查找所屬的函數地址以及函數名稱,具體查找過程為:在符號表文件中查找地址不超過并且最接近PC值函數地址以及函數名稱,將該函數記為func;轉到步驟604;
步驟604、利用現有工具獲取函數func的匯編指令,轉到步驟605;
步驟605、獲取函數func入口點的SP值以及函數func的返回地址,并計算新的PC值和SP值,其中新的PC值為函數func的返回地址RA值經過計算后的值,函數func的返回地址即函數func的調用者地址,新的SP值為函數func入口點的SP值;返回步驟601。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于烽火通信科技股份有限公司,未經烽火通信科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310506592.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種自動卸料裝置
- 下一篇:一種耐久性能好的沖壓模具





