首页> 外文会议>International Symposium on High-Performance Computer Architecture >Low-overhead interactive debugging via dynamic instrumentation with DISE
【24h】

Low-overhead interactive debugging via dynamic instrumentation with DISE

机译:通过动态仪器的低开销交互式调试

获取原文

摘要

Breakpoints, watchpoints, and conditional variants of both are essential debugging primitives, but their natural implementations often degrade performance significantly. Slowdown arises because the debugger - the tool implementing the breakpoint/watchpoint interface - is implemented in a process separate from the debugged application. Since the debugger evaluates the watchpoint expressions and conditional predicates to determine whether to invoke the user, a debugging session typically requires many expensive application-debugger context switches, resulting in slowdowns of 40,000 times or more in current commercial and open-source debuggers! In this paper, we present an effective and efficient implementation of (conditional) breakpoints and watchpoints that uses DISE to dynamically embed debugger logic into the running application. DISE (dynamic instruction stream editing) is a previously proposed, programmable hardware facility for dynamically customizing applications by transforming the instruction stream as it is decoded. DISE embedding preserves the logical separation of application and debugger nstructions are added dynamically and transparently, existing application code and data are not statically modified - and has little startup cost. Cycle-level simulation on the SPEC 2000 integer benchmarks shows that the DISE approach eliminates all unnecessary context switching, typically limits debugging overhead to 25% or less for a wide range of watch-points, and outperforms alternative implementations.
机译:两者的断点,观察点和条件变体都是必不可少的调试原语,但它们的自然实施通常会显着降低性能。出现放缓,因为调试器 - 实现断点/观察点接口的工具 - 在与调试应用程序分开的进程中实现。由于调试器评估了观察点表达式和条件谓词以确定是否调用用户,调试会话通常需要许多昂贵的应用程序调试器上下文交换机,从而在当前商业和开源调试器中的40,000次或更多次减速!在本文中,我们提出了一种有效而有效地实现(条件)断点和观点,该观点使用禁用将调试器逻辑动态嵌入到正在运行的应用程序中。丧失(动态指令流编辑)是先前提出的可编程硬件设施,用于通过在解码时转换指令流来动态自定义应用程序。禁用嵌入保留应用程序和调试器不统一的逻辑分离,并透明地添加现有的应用程序代码和数据,并且具有很少的启动成本。 SPEC 2000整数基准测试上的循环级仿真表明,禁用方法消除了所有不必要的上下文切换,通常将调试开销限制为各种观察点的25%或更低,并且优于替代实施方式。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号