{"title":"An event-based language for dynamic binary translation frameworks","authors":"S. Makarov, Angela Demke Brown, Ashvin Goel","doi":"10.1145/2628071.2671420","DOIUrl":null,"url":null,"abstract":"Dynamic binary translation (DBT) frameworks such as DynamoRIO [1] or Granary apply just-in-time rewriting techniques to allow pervasive instrumentation of a target program, for applications such as instruction-level profiling or watchpoints. This is a powerful approach, but analysis tools based on DBT frameworks are difficult to develop. Client modules written using a DBT framework must specify the instrumentation to perform on each basic block of the target program, and make use of explicit synchronization when aggregating data from multiple threads of a program. This can result in hundreds of lines of code for even simple analysis tools.","PeriodicalId":263670,"journal":{"name":"2014 23rd International Conference on Parallel Architecture and Compilation (PACT)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2014 23rd International Conference on Parallel Architecture and Compilation (PACT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2628071.2671420","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
Dynamic binary translation (DBT) frameworks such as DynamoRIO [1] or Granary apply just-in-time rewriting techniques to allow pervasive instrumentation of a target program, for applications such as instruction-level profiling or watchpoints. This is a powerful approach, but analysis tools based on DBT frameworks are difficult to develop. Client modules written using a DBT framework must specify the instrumentation to perform on each basic block of the target program, and make use of explicit synchronization when aggregating data from multiple threads of a program. This can result in hundreds of lines of code for even simple analysis tools.