Emerging Opportunities for Binary Tools Amitabh Srivastava Programmer Productivity Research Center Microsoft Research amitabhs@microsoft.com Abstract In recent years, binary instrumentation and optimization tools have been used effectively to understand and improve performance of significant programs. However, new opportunities are emerging in the distributed computing model of the Interact that has strong requirements for reliability and performance. These systems demand continuous operations in presence of open-ended design where some pasts may be operated by third party services. Because we cannot reproduce the scale and complexity of this environment on our desktops or in our labs, our traditional testing-based approaches to correctness and performance opthnization will prove insufficient; these tasks must extend beyond the Uaditional idea of product development. In the past, compilation has been about turning source code into executables, balancing compilation speed against code optimizatiorL Binary tools "hacked" their way into the compilation process by intercepting and transforming executables; binary modification stage was not designed to be part of the compilation process. In the new environment, the definition of compilation must broaden: compilation will start very early--perhaps when we write the specification of a program--and continues very lato---perhaps through all the program's various executions on the client machines. This dynamic and heterogeneous environment provides great challenges and opportunities to expand the role of binary tools. This talk discusses the new opportunities and requirements for binary tools. It also describes Vulcan, a second generation technology that is designed to address some of these challenges. Vulcan has both static and dynmnic code modification capabilities. It can provide system level analysis with heterogenoeus programs. Vulcan works in the Win32 environment and can process x86, IA64, and MSI1 binaries. Vulcan can process large commercial applications and has been used to improve performance and reliability of Microsoft products in a production environment. m26--
/lp/association-for-computing-machinery/emerging-opportunities-for-binary-tools-nBh387Hb0Y