一种面向多范式并发调试工具的并发无关协议
编程语言
2017-10-31 v2
摘要
当今复杂的软件系统结合了多种高层并发模型。每种模型用于解决一组特定的问题。不幸的是,调试器仅支持线程和共享内存这些底层概念,迫使开发者围绕这些底层概念而非他们所选择的高层并发模型进行推理。本文提出了一种并发无关的调试器协议,将调试器与目标应用程序所使用的并发模型解耦。因此,底层语言运行时可以为其支持的每种并发模型定义自定义断点、步进操作和执行事件,而调试器无需专门适配即可将其呈现出来。我们通过将该协议应用于 SOMns(一种 Newspeak 实现)来评估其通用性,SOMns 支持多种并发模型,包括通信顺序进程、通信事件循环、线程与锁、fork/join 并行以及软件事务内存。我们为这些并发模型实现了 21 种断点和 20 种步进操作,而调试器无需为其中任何一种进行更改。此外,我们独立于特定并发模型对所有并发交互进行可视化。为展示针对特定并发模型的工具支持是可行的,我们分别对 actor 轮次和消息发送进行了可视化。
引用
@article{arxiv.1706.00363,
title = {A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools},
author = {Stefan Marr and Carmen Torres Lopez and Dominik Aumayr and Elisa Gonzalez Boix and Hanspeter Mössenböck},
journal= {arXiv preprint arXiv:1706.00363},
year = {2017}
}
备注
International Symposium on Dynamic Languages