Collecting Graphical Abstract Views of Mercury Program Executions
Erwan Jahier
Abstract
A program execution monitor is a program that collects and abstracts information about program executions. The "collect" operator is a high level, general purpose primitive which lets users implement their own monitors. "Collect" is built on top of the Mercury trace. In previous work, we have demonstrated how this operator can be used to efficiently collect various kinds of statistics about Mercury program executions. In this article we further demonstrate the expressive power and effectiveness of "collect" by providing more monitor examples. In particular, we show how to implement monitors that generate graphical abstractions of program executions such as proof trees, control flow graphs and dynamic call graphs. We show how those abstractions can be easily modified and adapted, since those monitors only require several dozens of lines of code. Those abstractions are intended to serve as front-ends of software visualization tools. Although "collect" is currently implemented on top of the Mercury trace, none of its underlying concepts depend of Mercury and it can be implemented on top of any tracer for any programming language.
Create a lesson
Related papers
MARGoS: A Configuration-Driven Platform for Reproducible MARL Experiments in ARGoS
Tom Philipp Backert, Mohammad D. Soorati, Javad Ghofrani
(When) Should a Software Factory be Lights-off? Benchmarking Code Review Agents on Bug Detection
Chenyang Yang, Hao He, Ti-Chung Cheng et al.
A-SAW: The Agentic Software Architecture Workflow
Finn Klatt, Luca Di Grazia, Johannes Schneider
SWE-DeceptionBench: Benchmarking Deceptive Behaviors of LLMs Across the Software Development Lifecycle
Xiting Liu, Lin Yang, Yitong Zhang et al.
Not All Correct Fixes Run Alike: An Empirical Study of Patch Performance in Repository-Level Issue Resolution
Han Peng, Xing Hu, Feifei Niu et al.
REINS: Agent-guided Thread Scheduling for Concurrency Bug Detection and Reproduction
Yu Zhang, Corina S. Pasareanu, Guowei Yang