[發明專利]基于GCC和Chromium的代碼跟蹤方法及系統有效
| 申請號: | 201410608619.0 | 申請日: | 2014-11-03 |
| 公開(公告)號: | CN105630471B | 公開(公告)日: | 2019-02-15 |
| 發明(設計)人: | 林作健 | 申請(專利權)人: | 廣州市動景計算機科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京展翼知識產權代理事務所(特殊普通合伙) 11452 | 代理人: | 屠長存 |
| 地址: | 510627 廣東省廣州市天河區*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 gcc chromium 代碼 跟蹤 方法 系統 | ||
本申請實施例公開了一種基于GCC和Chromium的代碼跟蹤方法及系統。通過使用GCC編譯待跟蹤的程序,修改編譯過程中各個函數的GIMPLE中間表示形式,在函數的GIMPLE中間表示形式中插入跟蹤代碼,使用跟蹤代碼在程序運行時記錄各個函數的執行過程,生成跟蹤記錄文件,實現在程序中自動加入跟蹤代碼,以及程序運行時自動跟蹤函數,生成的跟蹤記錄文件導入Chromium跟蹤可視化工具,通過Chromium跟蹤可視化工具形象地展示函數的跟蹤數據,從而實現代碼跟蹤的可視化。
技術領域
本發明涉及軟件技術領域,尤其涉及一種基于GCC(GNU Compiler Collection,GNU編譯器套裝)和Chromium的代碼跟蹤方法及系統。
背景技術
熟悉和研究程序,最直接的方式是花時間閱讀程序的源代碼,可以查看到所有的函數調用過程,但是如果函數指針非常復雜,或者源代碼太長且晦澀難懂,這個過程就可能很困難。為了更方便地理解程序的內部行為,以及獲得有關程序優化方面的信息,例如,哪些經常調用的函數可以進行優化以獲得更好的程序性能,通常會在程序中插入跟蹤代碼用以跟蹤程序中函數的調用,這個過程也稱為代碼跟蹤。
具體來說,代碼跟蹤是收集函數調用的蹤跡,例如函數的調用關系和調用次數,以及函數自身執行時間和子函數的調用時間等。原始的代碼跟蹤是通過分別在函數的入口處和退出處插入一個惟一的符號來手工檢測每個函數,這個過程非常繁瑣,而且很容易出錯,需要對源代碼進行大量修改。為簡化代碼跟蹤過程,目前常用的代碼跟蹤是通過Gprof(GNUprofiler)工具自動檢測程序中的各個函數,在程序中插入用于跟蹤的代碼片斷,在執行程序時,通過Gprof的分析函數收集相關的分析數據。
但是通常的Gprof代碼跟蹤,具有如下缺陷:會產生大量的跟蹤數據,需要花時間分析,可視化程度低;對一些宏生成的函數難以添加跟蹤代碼,不能支持常見的C語言源文件,也不能使用C兼容的方式;而且只能得到函數的CPU使用時間,不能得到函數的CPU流逝時間,也不能跟蹤函數的開始時間和結束時間。
發明內容
為克服相關技術中代碼跟蹤可視化程度低的問題,本申請提供一種基于GCC和Chromium的代碼跟蹤方法及系統。
根據本申請實施例的第一方面,提供一種基于GCC和Chromium的代碼跟蹤方法,包括:
使用GNU編譯器套裝GCC編譯待跟蹤程序;
在編譯過程中修改所述待跟蹤程序中各個函數的GIMPLE中間表示形式,插入跟蹤代碼;
編譯結束后,運行所述待跟蹤程序;
所述跟蹤代碼記錄各個函數執行的過程,生成跟蹤記錄文件;
將所述跟蹤記錄文件導入Chromium跟蹤可視化工具并展示。
可選的,所述的基于GCC和Chromium的代碼跟蹤方法中,所述插入跟蹤代碼為在待跟蹤程序中各個函數的入口點和退出點分別插入第一分析函數和對應的第二分析函數,所述第一分析函數和第二分析函數用于記錄對應的被跟蹤的函數的執行過程,所述第一分析函數在每次執行對應的被跟蹤的函數時調用,所述第二分析函數在每次退出對應的被跟蹤的函數時調用。
可選的,所述的基于GCC和Chromium的代碼跟蹤方法,在待跟蹤程序中各個函數的異常安全推出點插入第二分析函數。
可選的,所述的基于GCC和Chromium的代碼跟蹤方法,將被跟蹤的函數包含于第一try語句中,將所述第一分析函數插入于所述第一try語句之前,將所述第二分析函數包含于對應于所述第一try語句的第一final語句中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州市動景計算機科技有限公司,未經廣州市動景計算機科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410608619.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:應用程序的切換方法及切換裝置
- 下一篇:一種將PPT轉換為HTML頁面的方法





