首页 > 最新文献

International Workshop on Dynamic Analysis最新文献

英文 中文
Towards an integrated approach for validating qualities of self-adaptive systems 迈向验证自适应系统质量的综合方法
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336803
Danny Weyns
Self-adaptation has been widely recognized as an effective approach to deal with the increasing complexity and dynamicity of modern software systems. One major challenge in self-adaptive systems is to provide guarantees about the required runtime qualities, such as performance and reliability. Existing research employs formal methods either to provide guarantees about the design of a self-adaptive systems, or to perform runtime analysis supporting adaptations for particular quality goals. Yet, work products of formalization are not exploited over different phases of the software life cycle. In this position paper, we argue for an integrated formally founded approach to validate the required software qualities of self-adaptive systems. This approach integrates three activities: (1) model checking of the behavior of a self-adaptive system during design, (2) model-based testing of the concrete implementation during development, and (3) runtime diagnosis after system deployment. We illustrate the approach with excerpts of an initial study and discuss for each activity research challenges ahead.
自适应已被广泛认为是处理现代软件系统日益增加的复杂性和动态性的有效方法。自适应系统的一个主要挑战是保证所需的运行时质量,比如性能和可靠性。现有的研究采用正式的方法,要么提供自适应系统设计的保证,要么执行运行时分析,支持对特定质量目标的适应。然而,形式化的工作产品不会在软件生命周期的不同阶段中被利用。在这篇立场论文中,我们主张采用一种集成的正式建立的方法来验证自适应系统所需的软件质量。该方法集成了三个活动:(1)在设计期间对自适应系统的行为进行模型检查,(2)在开发期间对具体实现进行基于模型的测试,以及(3)在系统部署后进行运行时诊断。我们用一项初步研究的摘录来说明这种方法,并讨论了每个活动研究面临的挑战。
{"title":"Towards an integrated approach for validating qualities of self-adaptive systems","authors":"Danny Weyns","doi":"10.1145/2338966.2336803","DOIUrl":"https://doi.org/10.1145/2338966.2336803","url":null,"abstract":"Self-adaptation has been widely recognized as an effective approach to deal with the increasing complexity and dynamicity of modern software systems. One major challenge in self-adaptive systems is to provide guarantees about the required runtime qualities, such as performance and reliability. Existing research employs formal methods either to provide guarantees about the design of a self-adaptive systems, or to perform runtime analysis supporting adaptations for particular quality goals. Yet, work products of formalization are not exploited over different phases of the software life cycle. In this position paper, we argue for an integrated formally founded approach to validate the required software qualities of self-adaptive systems. This approach integrates three activities: (1) model checking of the behavior of a self-adaptive system during design, (2) model-based testing of the concrete implementation during development, and (3) runtime diagnosis after system deployment. We illustrate the approach with excerpts of an initial study and discuss for each activity research challenges ahead.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134462026","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 30
Communication-aware HW/SW co-design for heterogeneous multicore platforms 面向异构多核平台的通信感知软硬件协同设计
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336806
I. Ashraf, S. A. Ostadzadeh, R. Meeuws, K. Bertels
QUAD is an open source profiling toolset, which is an integral part of the Q2 profiling framework. In this paper, we extend QUAD to introduce the concept of Unique Data Values regarding the data communication among functions. This feature is important to make a proper partitioning of the application. Mapping a well-known feature tracker application onto the multicore heterogeneous platform at hand is presented as a case study to substantiate the usefulness of the added feature. Experimental results show a speedup of 2.24x by utilizing the new QUAD toolset.
QUAD是一个开源分析工具集,它是Q2分析框架的一个组成部分。在本文中,我们扩展了QUAD,引入了关于函数间数据通信的唯一数据值的概念。这个特性对于对应用程序进行适当的分区非常重要。将一个知名的特征跟踪应用程序映射到当前的多核异构平台上,作为一个案例研究来证实添加的特性的有用性。实验结果表明,利用新的QUAD工具集可以提高2.24倍的速度。
{"title":"Communication-aware HW/SW co-design for heterogeneous multicore platforms","authors":"I. Ashraf, S. A. Ostadzadeh, R. Meeuws, K. Bertels","doi":"10.1145/2338966.2336806","DOIUrl":"https://doi.org/10.1145/2338966.2336806","url":null,"abstract":"QUAD is an open source profiling toolset, which is an integral part of the Q2 profiling framework. In this paper, we extend QUAD to introduce the concept of Unique Data Values regarding the data communication among functions. This feature is important to make a proper partitioning of the application. Mapping a well-known feature tracker application onto the multicore heterogeneous platform at hand is presented as a case study to substantiate the usefulness of the added feature. Experimental results show a speedup of 2.24x by utilizing the new QUAD toolset.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"179 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122930556","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Dynamic analysis of inefficiently-used containers 对低效使用的容器进行动态分析
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336805
Shengqian Yang, Dacong Yan, G. Xu, A. Rountev
The goal of this work is to identify suspicious usage of containers, as an indicator of potential performance inefficiencies. To analyze container-related behavior and performance, we propose a dynamic analysis that tracks and records the flow of element objects to/from container objects. The observed interactions among containers and their elements is captured by a container-element flow graph. This graph is then analyzed by three detectors of potential container inefficiencies, based on certain patterns of suspicious behavior. In a promising initial study, this approach uncovered a number of performance problems in realistic Java applications.
这项工作的目标是识别容器的可疑使用,作为潜在的性能低下的指示器。为了分析与容器相关的行为和性能,我们提出了一种动态分析,可以跟踪和记录元素对象与容器对象之间的流动。容器和它们的元素之间观察到的交互是由一个容器-元素流图捕获的。然后,根据可疑行为的某些模式,这张图由三个潜在的容器效率低下探测器进行分析。在一项有希望的初步研究中,这种方法揭示了实际Java应用程序中的许多性能问题。
{"title":"Dynamic analysis of inefficiently-used containers","authors":"Shengqian Yang, Dacong Yan, G. Xu, A. Rountev","doi":"10.1145/2338966.2336805","DOIUrl":"https://doi.org/10.1145/2338966.2336805","url":null,"abstract":"The goal of this work is to identify suspicious usage of containers, as an indicator of potential performance inefficiencies. To analyze container-related behavior and performance, we propose a dynamic analysis that tracks and records the flow of element objects to/from container objects. The observed interactions among containers and their elements is captured by a container-element flow graph. This graph is then analyzed by three detectors of potential container inefficiencies, based on certain patterns of suspicious behavior. In a promising initial study, this approach uncovered a number of performance problems in realistic Java applications.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121222986","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Extended program invariants: applications in testing and fault localization 扩展程序不变量:在测试和故障定位中的应用
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336799
Mohammad Amin Alipour, Alex Groce
Invariants are powerful tools for program analysis and reasoning.Several tools and techniques have been developed to infer invariants of a program. Given a test suite for a program, an invariant detection tool (IDT) extracts (potential) invariants from the program execution on test cases of the test suite. The resultant invariants contain relations only over variables and constants that are visible to the IDT. IDTs are usually unable to extract invariants about execution features like taken branches, since programs usually do not have state variables for such features. Thus, the IDT has no information about such features in order to infer relations between them. We speculate that invariants about execution features are useful for understanding test suites; we call these invariants, extended invariants. In this paper, we discuss potential applications of extended invariants in understanding of test suites, and fault localization. We illustrate the usefulness of extended invariants with some small examples that use basic block count as the execution feature in extended invariants. We believe extended invariants provide useful information about execution of programs that can be utilized in program analysis and testing.
不变量是程序分析和推理的强大工具。已经开发了一些工具和技术来推断程序的不变量。给定一个程序的测试套件,不变量检测工具(IDT)从测试套件的测试用例上的程序执行中提取(潜在的)不变量。所得到的不变量只包含对IDT可见的变量和常量之间的关系。idt通常无法提取关于执行特性(如采取的分支)的不变量,因为程序通常没有这些特性的状态变量。因此,IDT没有关于这些特征的信息,无法推断它们之间的关系。我们推测关于执行特性的不变量对于理解测试套件是有用的;我们称之为不变量,扩展不变量。在本文中,我们讨论了扩展不变量在理解测试套件和故障定位方面的潜在应用。我们通过一些使用基本块计数作为扩展不变量执行特性的小示例来说明扩展不变量的有用性。我们相信扩展不变量提供了关于程序执行的有用信息,可以用于程序分析和测试。
{"title":"Extended program invariants: applications in testing and fault localization","authors":"Mohammad Amin Alipour, Alex Groce","doi":"10.1145/2338966.2336799","DOIUrl":"https://doi.org/10.1145/2338966.2336799","url":null,"abstract":"Invariants are powerful tools for program analysis and reasoning.Several tools and techniques have been developed to infer invariants of a program. Given a test suite for a program, an invariant detection tool (IDT) extracts (potential) invariants from the program execution on test cases of the test suite. The resultant invariants contain relations only over variables and constants that are visible to the IDT. IDTs are usually unable to extract invariants about execution features like taken branches, since programs usually do not have state variables for such features. Thus, the IDT has no information about such features in order to infer relations between them. We speculate that invariants about execution features are useful for understanding test suites; we call these invariants, extended invariants. \u0000 In this paper, we discuss potential applications of extended invariants in understanding of test suites, and fault localization. We illustrate the usefulness of extended invariants with some small examples that use basic block count as the execution feature in extended invariants. We believe extended invariants provide useful information about execution of programs that can be utilized in program analysis and testing.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125973787","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Finding common ground: choose, assert, and assume 寻找共同点:选择、主张和假设
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336800
Alex Groce, Martin Erwig
At present, the “testing community” is on good speaking terms, but typically lacks a common language for expressing some computational ideas, even in cases where such a language would be both useful and plausible. In particular, a large body of testing systems define a testing problem in the language of the system under test, extended with operations for choosing inputs, asserting properties, and constraining the domain of executions considered. While the underlying algorithms used for “testing” include symbolic execution, explicit-state model checking, machine learning, and “old fashioned” random testing, there seems to be a common core of expressive need. We propose that the dynamic analysis community could benefit from working with some common syntactic (and to some extent semantic) mechanisms for expressing a body of testing problems. Such a shared language would have immediate practical uses and make cross-tool comparisons and research into identifying appropriate tools for different testing activities easier. We also suspect that considering the more abstract testing problem arising from this minimalist common ground could serve as a basis for thinking about the design of usable embedded domain-specific languages for testing and might help identify computational patterns that have escaped the notice of the community.
目前,“测试社区”处于良好的状态,但通常缺乏用于表达某些计算思想的通用语言,即使在这种语言既有用又合理的情况下也是如此。特别是,大量的测试系统用被测系统的语言定义了测试问题,扩展了选择输入、断言属性和约束所考虑的执行域的操作。虽然用于“测试”的底层算法包括符号执行、显式状态模型检查、机器学习和“老式”随机测试,但似乎有一个共同的表达需求核心。我们建议动态分析社区可以从使用一些通用的语法(以及某种程度上的语义)机制来表达一系列测试问题中获益。这样一种共享语言将具有直接的实际用途,并使跨工具比较和研究更容易为不同的测试活动确定适当的工具。我们还怀疑,考虑从这种极简的公共基础中产生的更抽象的测试问题,可以作为考虑设计可用的嵌入式领域特定于测试的语言的基础,并且可能有助于识别那些没有被社区注意到的计算模式。
{"title":"Finding common ground: choose, assert, and assume","authors":"Alex Groce, Martin Erwig","doi":"10.1145/2338966.2336800","DOIUrl":"https://doi.org/10.1145/2338966.2336800","url":null,"abstract":"At present, the “testing community” is on good speaking terms, but typically lacks a common language for expressing some computational ideas, even in cases where such a language would be both useful and plausible. In particular, a large body of testing systems define a testing problem in the language of the system under test, extended with operations for choosing inputs, asserting properties, and constraining the domain of executions considered. While the underlying algorithms used for “testing” include symbolic execution, explicit-state model checking, machine learning, and “old fashioned” random testing, there seems to be a common core of expressive need. We propose that the dynamic analysis community could benefit from working with some common syntactic (and to some extent semantic) mechanisms for expressing a body of testing problems. Such a shared language would have immediate practical uses and make cross-tool comparisons and research into identifying appropriate tools for different testing activities easier. We also suspect that considering the more abstract testing problem arising from this minimalist common ground could serve as a basis for thinking about the design of usable embedded domain-specific languages for testing and might help identify computational patterns that have escaped the notice of the community.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132282755","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Evaluating program analysis and testing tools with the RUGRAT random benchmark application generator 使用RUGRAT随机基准应用程序生成器评估程序分析和测试工具
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336798
Ishtiaque Hussain, Christoph Csallner, M. Grechanik, Chen Fu, Qing Xie, Sangmin Park, Kunal Taneja, B. M. Hossain
Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as bench- marks to evaluate different aspects of algorithms and tools. Unfor- tunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibil- ity of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated pro- grams. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. Our tool was also implemented by a major soft- ware company for C++ and used by a team of developers to gener- ate benchmarks that enabled them to reproduce a bug in less than four hours.
基准测试在计算机科学的不同领域被广泛用于评估算法和工具。在程序分析和测试中,开源和商业程序通常被用作基准来评估算法和工具的不同方面。不幸的是,这些程序中的许多都是由引入不同偏差的程序员编写的,更不用说很难找到可以作为具有高结果可重复性的基准的程序。我们提出了一种新的方法来生成评估程序分析和测试工具的随机基准。我们的方法使用随机解析树,其中语言语法生成规则被分配概率,指定这些规则的实例将在生成的程序中出现的频率。我们为Java实现了我们的工具,并应用它来生成基准,我们用它来评估不同的程序分析和测试工具。我们的工具也被一家主要的c++软件公司实现,并被一组开发人员用来生成基准,使他们能够在不到四个小时的时间内重现错误。
{"title":"Evaluating program analysis and testing tools with the RUGRAT random benchmark application generator","authors":"Ishtiaque Hussain, Christoph Csallner, M. Grechanik, Chen Fu, Qing Xie, Sangmin Park, Kunal Taneja, B. M. Hossain","doi":"10.1145/2338966.2336798","DOIUrl":"https://doi.org/10.1145/2338966.2336798","url":null,"abstract":"Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as bench- marks to evaluate different aspects of algorithms and tools. Unfor- tunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibil- ity of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated pro- grams. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. Our tool was also implemented by a major soft- ware company for C++ and used by a team of developers to gener- ate benchmarks that enabled them to reproduce a bug in less than four hours.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128229611","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Dynamic cost verification for cloud applications 云应用程序的动态成本验证
Pub Date : 2012-07-15 DOI: 10.1145/2338966.2336802
Kevin Buell, J. Collofello
The pay-as-you-go economic model of cloud computing increases the visibility, traceability, and verifiability of software costs. Application developers must understand how their software uses resources when running in the cloud in order to stay within budgeted costs and/or produce expected profits. Scientific workflows often involve data intensive transactions which may be costly. Business and consumer application developers are likely to be particularly sensitive to costs in order to maximize profits. Verification of economic attributes of cloud applications has only been touched on lightly in the literature to date. Possibilities for cost verification of cloud applications include both static and dynamic analysis. We advocate for increased attention to economic attributes of cloud applications at every level of software development, and we discuss some measurement based approaches to cost verification of applications running in the cloud.
云计算的即用即付经济模型提高了软件成本的可见性、可追溯性和可验证性。应用程序开发人员必须了解他们的软件在云中运行时如何使用资源,以保持预算成本和/或产生预期利润。科学工作流程通常涉及数据密集型事务,这可能是昂贵的。为了实现利润最大化,商业和消费者应用程序开发人员可能对成本特别敏感。迄今为止,在文献中对云应用程序的经济属性的验证只进行了少量的讨论。云应用程序成本验证的可能性包括静态和动态分析。我们提倡在软件开发的每个层次上增加对云应用程序的经济属性的关注,并且我们讨论了一些基于度量的方法来验证在云中运行的应用程序的成本。
{"title":"Dynamic cost verification for cloud applications","authors":"Kevin Buell, J. Collofello","doi":"10.1145/2338966.2336802","DOIUrl":"https://doi.org/10.1145/2338966.2336802","url":null,"abstract":"The pay-as-you-go economic model of cloud computing increases the visibility, traceability, and verifiability of software costs. Application developers must understand how their software uses resources when running in the cloud in order to stay within budgeted costs and/or produce expected profits. Scientific workflows often involve data intensive transactions which may be costly. Business and consumer application developers are likely to be particularly sensitive to costs in order to maximize profits. Verification of economic attributes of cloud applications has only been touched on lightly in the literature to date. Possibilities for cost verification of cloud applications include both static and dynamic analysis. We advocate for increased attention to economic attributes of cloud applications at every level of software development, and we discuss some measurement based approaches to cost verification of applications running in the cloud.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121375665","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Custom-made instrumentation based on static analysis 基于静态分析的定制仪器
Pub Date : 2011-07-18 DOI: 10.1145/2002951.2002957
T. Gutzmann, Welf Löwe
Many dynamic analysis tools capture the occurrences of events at runtime. The longer programs are being monitored, the more accurate the data they provide to the user. Then, the runtime overhead must be kept as low as possible, because it decreases the user's productivity. Runtime performance overhead occurs due to identifying events, and storing them in a result data-structure. We address the latter issue by generating custom-made instrumentation code for each program. By using static analysis to get a priori knowledge about which events of interest can occur and where they can occur, tailored code for storing those events can be generated for each program. We evaluate our idea by comparing the runtime overhead of a "general purpose" dynamic analysis tool that captures points-to information for Java programs with approaches based on custom-made instrumentation code. Experiments suggest highly reduced performance overhead for the latter.
许多动态分析工具在运行时捕获事件的发生。监控程序的时间越长,提供给用户的数据就越准确。然后,运行时开销必须保持尽可能低,因为它会降低用户的工作效率。由于识别事件并将其存储在结果数据结构中,会产生运行时性能开销。我们通过为每个程序生成定制的工具代码来解决后一个问题。通过使用静态分析来获得关于哪些感兴趣的事件可能发生以及它们可能在哪里发生的先验知识,可以为每个程序生成用于存储这些事件的定制代码。我们通过比较“通用”动态分析工具的运行时开销来评估我们的想法,该工具为Java程序捕获点到信息,并基于定制的工具代码。实验表明,后者大大降低了性能开销。
{"title":"Custom-made instrumentation based on static analysis","authors":"T. Gutzmann, Welf Löwe","doi":"10.1145/2002951.2002957","DOIUrl":"https://doi.org/10.1145/2002951.2002957","url":null,"abstract":"Many dynamic analysis tools capture the occurrences of events at runtime. The longer programs are being monitored, the more accurate the data they provide to the user. Then, the runtime overhead must be kept as low as possible, because it decreases the user's productivity.\u0000 Runtime performance overhead occurs due to identifying events, and storing them in a result data-structure.\u0000 We address the latter issue by generating custom-made instrumentation code for each program. By using static analysis to get a priori knowledge about which events of interest can occur and where they can occur, tailored code for storing those events can be generated for each program.\u0000 We evaluate our idea by comparing the runtime overhead of a \"general purpose\" dynamic analysis tool that captures points-to information for Java programs with approaches based on custom-made instrumentation code. Experiments suggest highly reduced performance overhead for the latter.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131250657","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Dynamic invariant detection for relational databases 关系数据库的动态不变量检测
Pub Date : 2011-07-18 DOI: 10.1145/2002951.2002955
Jake Cobb, James A. Jones, G. M. Kapfhammer, M. J. Harrold
Despite the many automated techniques that benefit from dynamic invariant detection, to date, none are able to capture and detect dynamic invariants at the interface of a program and its databases. This paper presents a dynamic invariant detection method for relational databases and for programs that use relational databases and an implementation of the approach that leverages the Daikon dynamic-invariant engine. The method defines a mapping between relational database elements and Daikon's notion of program points and variable observations, thus enabling row-level and column-level invariant detection. The paper also presents the results of two empirical evaluations on four fixed data sets and three subject programs. The first study shows that dynamically detecting and inferring invariants in a relational database is feasible and 55% of the invariants produced for each subject are meaningful. The second study reveals that all of these meaningful invariants are schema-enforceable using standards-compliant databases and many can be checked by databases with only limited schema constructs.
尽管许多自动化技术受益于动态不变量检测,但迄今为止,没有一种技术能够捕获和检测程序及其数据库接口上的动态不变量。本文提出了一种用于关系数据库和使用关系数据库的程序的动态不变量检测方法,以及利用Daikon动态不变量引擎的方法的实现。该方法定义关系数据库元素与Daikon的程序点和变量观察概念之间的映射,从而支持行级和列级不变检测。本文还介绍了四个固定数据集和三个主题程序的两个实证评估结果。第一项研究表明,动态检测和推断关系数据库中的不变量是可行的,并且为每个主题产生的不变量中有55%是有意义的。第二项研究表明,所有这些有意义的不变量都可以使用符合标准的数据库来执行模式,并且许多不变量可以由只有有限模式结构的数据库来检查。
{"title":"Dynamic invariant detection for relational databases","authors":"Jake Cobb, James A. Jones, G. M. Kapfhammer, M. J. Harrold","doi":"10.1145/2002951.2002955","DOIUrl":"https://doi.org/10.1145/2002951.2002955","url":null,"abstract":"Despite the many automated techniques that benefit from dynamic invariant detection, to date, none are able to capture and detect dynamic invariants at the interface of a program and its databases. This paper presents a dynamic invariant detection method for relational databases and for programs that use relational databases and an implementation of the approach that leverages the Daikon dynamic-invariant engine. The method defines a mapping between relational database elements and Daikon's notion of program points and variable observations, thus enabling row-level and column-level invariant detection. The paper also presents the results of two empirical evaluations on four fixed data sets and three subject programs. The first study shows that dynamically detecting and inferring invariants in a relational database is feasible and 55% of the invariants produced for each subject are meaningful. The second study reveals that all of these meaningful invariants are schema-enforceable using standards-compliant databases and many can be checked by databases with only limited schema constructs.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"280 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121366410","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 26
Detecting algorithms using dynamic analysis 采用动态分析的检测算法
Pub Date : 2011-07-18 DOI: 10.1145/2002951.2002953
K. Oksanen
Detecting a given algorithm in a program without access to its source code can be valuable in many tasks ranging from intellectual property management to verifying the program's security properties. Unfortunately, approaches based on decompiling or reverse-engineering the program suffer from prohibitive costlyness as well as theoretical limitations. Instead we base our work on examining the program's internal dynamic behavior and trying to find in it tell-tale signs of the given algorithm using various pattern matching and statistical analysis techniques.
在不访问程序源代码的情况下检测程序中的给定算法在从知识产权管理到验证程序安全属性的许多任务中都是有价值的。不幸的是,基于反编译或逆向工程程序的方法遭受了高昂的代价和理论上的限制。相反,我们的工作基于检查程序的内部动态行为,并试图使用各种模式匹配和统计分析技术在其中找到给定算法的迹象。
{"title":"Detecting algorithms using dynamic analysis","authors":"K. Oksanen","doi":"10.1145/2002951.2002953","DOIUrl":"https://doi.org/10.1145/2002951.2002953","url":null,"abstract":"Detecting a given algorithm in a program without access to its source code can be valuable in many tasks ranging from intellectual property management to verifying the program's security properties. Unfortunately, approaches based on decompiling or reverse-engineering the program suffer from prohibitive costlyness as well as theoretical limitations. Instead we base our work on examining the program's internal dynamic behavior and trying to find in it tell-tale signs of the given algorithm using various pattern matching and statistical analysis techniques.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116646192","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
期刊
International Workshop on Dynamic Analysis
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1