20,642 research outputs found

    On-stack replacement, distilled

    Get PDF
    On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to code actively executing in a managed runtime. The engineering aspects of OSR are well-known among VM architects, with several implementations available to date. However, OSR is yet to be explored as a general means to transfer execution between related program versions, which can pave the road to unprecedented applications that stretch beyond VMs. We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement. We describe and evaluate an implementation of our technique in LLVM. As a novel application of OSR, we present a feasibility study on debugging of optimized code, showing how our techniques can be used to fix variables holding incorrect values at breakpoints due to optimizations

    GoTcha: An Interactive Debugger for GoT-Based Distributed Systems

    Full text link
    Debugging distributed systems is hard. Most of the techniques that have been developed for debugging such systems use either extensive model checking, or postmortem analysis of logs and traces. Interactive debugging is typically a tool that is only effective in single threaded and single process applications, and is rarely applied to distributed systems. While the live observation of state changes using interactive debuggers is effective, it comes with a host of problems in distributed scenarios. In this paper, we discuss the requirements an interactive debugger for distributed systems should meet, the role the underlying distributed model plays in facilitating the debugger, and the implementation of our interactive debugger: GoTcha. GoTcha is a browser based interactive debugger for distributed systems built on the Global Object Tracker (GoT) programming model. We show how the GoT model facilitates the debugger, and the features that the debugger can offer. We also demonstrate a typical debugging workflow

    Setting the stage – embodied and spatial dimensions in emerging programming practices.

    Get PDF
    In the design of interactive systems, developers sometimes need to engage in various ways of physical performance in order to communicate ideas and to test out properties of the system to be realised. External resources such as sketches, as well as bodily action, often play important parts in such processes, and several methods and tools that explicitly address such aspects of interaction design have recently been developed. This combined with the growing range of pervasive, ubiquitous, and tangible technologies add up to a complex web of physicality within the practice of designing interactive systems. We illustrate this dimension of systems development through three cases which in different ways address the design of systems where embodied performance is important. The first case shows how building a physical sport simulator emphasises a shift in activity between programming and debugging. The second case shows a build-once run-once scenario, where the fine-tuning and control of the run-time activity gets turned into an act of in situ performance by the programmers. The third example illustrates the explorative and experiential nature of programming and debugging systems for specialised and autonomous interaction devices. This multitude in approaches in existing programming settings reveals an expanded perspective of what practices of interaction design consist of, emphasising the interlinking between design, programming, and performance with the system that is being developed

    Detailed Diagnosis of Performance Anomalies in Sensornets

    Get PDF
    We address the problem of analysing performance anomalies in sensor networks. In this paper, we propose an approach that uses the local flash storage of the motes for logging system data, in combination with online statistical analysis. Our results show not only that this is a feasible method but that the overhead is significantly lower than that of communication-centric methods, and that interesting patterns can be revealed when calculating the correlation of large data sets of separate event types.GINSENGCONE
    • …
    corecore