Context. Recent studies show that developers spend most of their programming time testing, verifying and debugging software. As applications become more and more complex, developers demand more advanced debugging support to ease the software development process. Inquiry. Since the 70's many debugging solutions were introduced. Amongst them, online debuggers provide a good insight on the conditions that led to a bug, allowing inspection and interaction with the variables of the program. However, most of the online debugging solutions introduce \textit{debugging interference} to the execution of the program, i.e. pauses, latency, and evaluation of code containing side-effects. Approach. This paper investigates a novel debugging technique called \outofplace debugging. The goal is to minimize the debugging interference characteristic of online debugging while allowing online remote capabilities. An \outofplace debugger transfers the program execution and application state from the debugged application to the debugger application, both running in different processes. Knowledge. On the one hand, \outofplace debugging allows developers to debug applications remotely, overcoming the need of physical access to the machine where the debugged application is running. On the other hand, debugging happens locally on the remote machine avoiding latency. That makes it suitable to be deployed on a distributed system and handle the debugging of several processes running in parallel. Grounding. We implemented a concrete out-of-place debugger for the Pharo Smalltalk programming language. We show that our approach is practical by performing several benchmarks, comparing our approach with a classic remote online debugger. We show that our prototype debugger outperforms by a 1000 times a traditional remote debugger in several scenarios. Moreover, we show that the presence of our debugger does not impact the overall performance of an application. Importance. This work combines remote debugging with the debugging experience of a local online debugger. Out-of-place debugging is the first online debugging technique that can minimize debugging interference while debugging a remote application. Yet, it still keeps the benefits of online debugging ( e.g. step-by-step execution). This makes the technique suitable for modern applications which are increasingly parallel, distributed and reactive to streams of data from various sources like sensors, UI, network, etc.


翻译:最近的研究显示, 开发者花费了大部分的编程时间测试、 核查和调试软件。 随着应用程序越来越复杂, 开发者需要更先进的调试支持, 以方便软件开发进程。 调查。 由于70 多个调试解决方案被引入了。 其中, 在线调试者可以很好地洞察导致错误的条件, 允许检查和与程序的变量互动。 然而, 多数在线调试解决方案在程序执行中引入了 extrodition 时间测试、 digging 干扰 。 但是, 多数在线调试解决方案在程序执行中引入了 liver 时间测试, 即暂停、 latitude, 以及评估含有副作用的代码。 本文调查了一种新调试技术, 称为“ 变换换” 程序, 在允许在线调试的同时, 将网上调试运行的干扰特性降到最低 。 调试器将程序的执行和应用状态从调试运行到调试器的第一个程序, 以不同的程序运行方式运行。 了解 一种手, 将自动调试的调试让开发者在远程调试, 在远程应用中进行调试运行中, 将自动调试运行, 运行到远程调试, 运行中, 将显示一种调试到在远程调试运行中, 运行到在远程调试运行到在远程调试运行中, 运行在远程操作在远程操作中, 运行在远程调试运行中, 运行中, 运行中, 运行在远程调试运行到在远程操作在远程运行中, 运行中, 运行到在运行到在远程操作在离机中, 运行, 运行中, 运行, 运行在远程操作在远程操作在离机中, 运行在运行中, 运行在运行在运行中, 运行中, 运行中, 运行中, 运行在运行在运行在运行在运行中, 运行中, 运行到在运行中, 运行中, 运行中, 运行在离机运行在运行到在运行在运行在运行在运行在运行在运行到其他机中, 运行中, 运行中, 运行到其他机 运行到 运行到其他机 运行到其他机 运行到其他机 运行到其他机 运行到

0
下载
关闭预览

相关内容

强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
计算机 | IUI 2020等国际会议信息4条
Call4Papers
6+阅读 · 2019年6月17日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
人工智能 | SCI期刊专刊信息3条
Call4Papers
5+阅读 · 2019年1月10日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | 国际会议截稿信息9条
Call4Papers
4+阅读 · 2018年3月13日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Clustered Object Detection in Aerial Images
Arxiv
5+阅读 · 2019年8月27日
Deep Anomaly Detection with Outlier Exposure
Arxiv
17+阅读 · 2018年12月21日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
4+阅读 · 2018年11月6日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
7+阅读 · 2018年3月19日
VIP会员
相关资讯
计算机 | IUI 2020等国际会议信息4条
Call4Papers
6+阅读 · 2019年6月17日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
人工智能 | SCI期刊专刊信息3条
Call4Papers
5+阅读 · 2019年1月10日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | 国际会议截稿信息9条
Call4Papers
4+阅读 · 2018年3月13日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
相关论文
Clustered Object Detection in Aerial Images
Arxiv
5+阅读 · 2019年8月27日
Deep Anomaly Detection with Outlier Exposure
Arxiv
17+阅读 · 2018年12月21日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
4+阅读 · 2018年11月6日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
7+阅读 · 2018年3月19日
Top
微信扫码咨询专知VIP会员