程序动态执行路径剖析方法研究

基本信息
批准号:61303052
项目类别:青年科学基金项目
资助金额:25.00
负责人:李建军
学科分类:
依托单位:中国科学院计算技术研究所
批准年份:2013
结题年份:2016
起止时间:2014-01-01 - 2016-12-31
项目状态: 已结题
项目参与者:武成岗,王凯,王文文,杨东艳,王喆,刘学宝
关键词:
执行路径剖析上下文敏感路径编码动态优化
结项摘要

Path profiling is critical for understanding dynamic behaviors of large programs. It plays an important role in a wide range of software development processes and large applications such as testing, debugging and error reporting, and program analysis. However, there are still many critical issues in current path profiling methods.. In our work, we will research on the following three issues: 1)dynamic path profiling method without static program analysis techniques; 2)adpative path encoding method with dynamic profiles; 3)inter-threads path profiling mehtod for multi-threaded programs. . We will base on our research experience in program analysis and dynamic optimization, study dynamic path encoding method, adaptive encoding method, and inter-threads path encoding method. In our work, we will propose a dynamic and adaptive path encoding method, and implement a path profiling prototype system.

动态执行路径信息对深入理解程序执行行为能够起到非常重要的作用。但是如何高效地获取程序执行路径剖析,至今仍是一个开放的问题。 . 本项目针对目前执行路径剖析研究中存在的挑战性问题,在以下三点寻求突破:1)研究不依赖于静态分析技术的执行路径动态编码方法;2)利用动态剖析反馈信息,研究自适应的路径编码方法,以降低获取动态执行路径剖析带来的时间和空间开销;3)针对多线程程序的特点,研究获取多线程程序线程间执行路径剖析的方法。. 本项目的特点在于充分结合申请人在程序分析和动态优化方面的研究基础,针对执行路径剖析方法在实际应用中存在的关键性问题,对执行路径动态编码方法、自适应路径编码方法和线程间执行路径编码方法等三项内容进行创新研究,提出并实现一个可以应用于多线程程序的、低开销的执行路径动态自适应编码方法,并将本项目的研究成果集成到一个原型系统中,为以后的相关研究工作提供一个基础平台。

项目摘要

函数调用栈(即函数调用路径),是用户栈上的活跃函数集合。它可以有效地反映程序中的过程间执行路径,从而可以帮助程序开发或分析人员更好的理解程序结构和程序动态执行行为。现在,函数调用路径信息已被广泛应用在了很多领域,比如程序动态执行信息分析、程序调试和错误报告、软件测试、安全保证、事件记录等。例如,在程序调试过程中,程序员会通过遍历栈方法获取中断点的函数调用栈,来辅助程序调试。 . 本项目中,我们在已有方法的基础上提出了一种动态自适应 的函数调用路径编码方法(Dynamic and Adaptive Calling Context Encoding,缩写为DACCE)。它可以有效地获取多线程程序的函数调用路径,而且适用于大多数编程语言生成的应用程序。DACCE使用了二进制插桩的方式,在编码时不需要知道完整的函数调用图,并会在程序执行过程中根据收集的信息调整编码。与已有方法相比,DACCE不需要使用训练执行来获取程序静态剖析信息,而且不会对编译优化产生影响。另外,DACCE是以共享库的形式实现的,因此它可以非常方便的应用在其它工具中。另外,DACCE不仅可以获取单线程程序的函数调用路径信息,还可以有效的获取Pthread等多线程程序的完整函数调用路径信息。. 本项目的主要贡献和成果有: . • 提出了一种动态函数调用路径编码方法,该方法可以有效的处理程序中的间接调用。与已有方法相比,本项目中提出的方法不需要通过指针分析或训练执行来获取间接调用所有的目标地址。. • 提出了一种根据程序动态执行行为调整函数调用路径编码的自适应编码方法,该方法能够有效地减小所需编码空间和降低运行时开销。与此对应,本项目中也提出了针对自适应编码方法的解码算法。. • 对多线程程序的特点进行了分析,提出了一种有效地获取多线程程序函数调用路径的方法。. • 基于SPEC CPU2006,Parsec 2.1和Cilk程序的 实验数据表明,DACCE不仅可以准确地获取所有测试用例的运行时函数调用路径信息,而且它的运行时开销也非常小(2.4%左右)。. • 共发表A类期刊/会议论文4篇,B类期刊/会议论文3篇,国内期刊论文1篇,并提交专利申请3项

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

涡度相关技术及其在陆地生态系统通量研究中的应用

涡度相关技术及其在陆地生态系统通量研究中的应用

DOI:10.17521/cjpe.2019.0351
发表时间:2020
2

内点最大化与冗余点控制的小型无人机遥感图像配准

内点最大化与冗余点控制的小型无人机遥感图像配准

DOI:10.11834/jrs.20209060
发表时间:2020
3

面向云工作流安全的任务调度方法

面向云工作流安全的任务调度方法

DOI:10.7544/issn1000-1239.2018.20170425
发表时间:2018
4

敏感性水利工程社会稳定风险演化SD模型

敏感性水利工程社会稳定风险演化SD模型

DOI:10.16265/j.cnki.issn1003-3033.2021.04.003
发表时间:2021
5

一种改进的多目标正余弦优化算法

一种改进的多目标正余弦优化算法

DOI:
发表时间:2019

李建军的其他基金

批准号:11872380
批准年份:2018
资助金额:65.00
项目类别:面上项目
批准号:31671747
批准年份:2016
资助金额:62.00
项目类别:面上项目
批准号:61704066
批准年份:2017
资助金额:25.00
项目类别:青年科学基金项目
批准号:31170765
批准年份:2011
资助金额:55.00
项目类别:面上项目
批准号:81672856
批准年份:2016
资助金额:53.00
项目类别:面上项目
批准号:81272164
批准年份:2012
资助金额:70.00
项目类别:面上项目
批准号:21301040
批准年份:2013
资助金额:25.00
项目类别:青年科学基金项目
批准号:61404021
批准年份:2014
资助金额:26.00
项目类别:青年科学基金项目
批准号:11402203
批准年份:2014
资助金额:26.00
项目类别:青年科学基金项目
批准号:81172114
批准年份:2011
资助金额:55.00
项目类别:面上项目
批准号:31570627
批准年份:2015
资助金额:64.00
项目类别:面上项目
批准号:81870979
批准年份:2018
资助金额:61.00
项目类别:面上项目
批准号:71173246
批准年份:2011
资助金额:42.00
项目类别:面上项目
批准号:50975108
批准年份:2009
资助金额:36.00
项目类别:面上项目
批准号:41405122
批准年份:2014
资助金额:24.00
项目类别:青年科学基金项目
批准号:81260218
批准年份:2012
资助金额:48.00
项目类别:地区科学基金项目
批准号:31270169
批准年份:2012
资助金额:70.00
项目类别:面上项目
批准号:51435007
批准年份:2014
资助金额:350.00
项目类别:重点项目
批准号:70303015
批准年份:2003
资助金额:5.00
项目类别:青年科学基金项目
批准号:30670861
批准年份:2006
资助金额:8.00
项目类别:面上项目
批准号:91543116
批准年份:2015
资助金额:80.00
项目类别:重大研究计划
批准号:51378325
批准年份:2013
资助金额:80.00
项目类别:面上项目
批准号:59605013
批准年份:1996
资助金额:12.00
项目类别:青年科学基金项目
批准号:30871055
批准年份:2008
资助金额:31.00
项目类别:面上项目
批准号:81070171
批准年份:2010
资助金额:32.00
项目类别:面上项目
批准号:31901197
批准年份:2019
资助金额:25.00
项目类别:青年科学基金项目
批准号:29305037
批准年份:1993
资助金额:5.80
项目类别:青年科学基金项目
批准号:31370799
批准年份:2013
资助金额:80.00
项目类别:面上项目
批准号:40872005
批准年份:2008
资助金额:48.00
项目类别:面上项目
批准号:81001585
批准年份:2010
资助金额:10.00
项目类别:青年科学基金项目
批准号:61871170
批准年份:2018
资助金额:66.00
项目类别:面上项目
批准号:81460272
批准年份:2014
资助金额:47.00
项目类别:地区科学基金项目
批准号:81241121
批准年份:2012
资助金额:10.00
项目类别:专项基金项目
批准号:30772216
批准年份:2007
资助金额:31.00
项目类别:面上项目
批准号:31070568
批准年份:2010
资助金额:31.00
项目类别:面上项目

相似国自然基金

1

并发程序路径剖析技术研究

批准号:61402103
批准年份:2014
负责人:王璐璐
学科分类:F0203
资助金额:26.00
项目类别:青年科学基金项目
2

基于动态符号执行的MSVL程序模型检测

批准号:61572386
批准年份:2015
负责人:张南
学科分类:F0203
资助金额:65.00
项目类别:面上项目
3

面向二进制程序的静态结构化符号执行与动态组合方法研究

批准号:61502536
批准年份:2015
负责人:马金鑫
学科分类:F0206
资助金额:20.00
项目类别:青年科学基金项目
4

基于程序综合的符号执行环境建模方法研究

批准号:61402454
批准年份:2014
负责人:王立泽
学科分类:F0203
资助金额:25.00
项目类别:青年科学基金项目