5,316 research outputs found

    A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools

    Get PDF
    Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a concurrency-agnostic debugger protocol that decouples the debugger from the concurrency models employed by the target application. As a result, the underlying language runtime can define custom breakpoints, stepping operations, and execution events for each concurrency model it supports, and a debugger can expose them without having to be specifically adapted. We evaluated the generality of the protocol by applying it to SOMns, a Newspeak implementation, which supports a diversity of concurrency models including communicating sequential processes, communicating event loops, threads and locks, fork/join parallelism, and software transactional memory. We implemented 21 breakpoints and 20 stepping operations for these concurrency models. For none of these, the debugger needed to be changed. Furthermore, we visualize all concurrent interactions independently of a specific concurrency model. To show that tooling for a specific concurrency model is possible, we visualize actor turns and message sends separately.Comment: International Symposium on Dynamic Language

    A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs

    Full text link
    The actor model is an attractive foundation for developing concurrent applications because actors are isolated concurrent entities that communicate through asynchronous messages and do not share state. Thereby, they avoid concurrency bugs such as data races, but are not immune to concurrency bugs in general. This study taxonomizes concurrency bugs in actor-based programs reported in literature. Furthermore, it analyzes the bugs to identify the patterns causing them as well as their observable behavior. Based on this taxonomy, we further analyze the literature and find that current approaches to static analysis and testing focus on communication deadlocks and message protocol violations. However, they do not provide solutions to identify livelocks and behavioral deadlocks. The insights obtained in this study can be used to improve debugging support for actor-based programs with new debugging techniques to identify the root cause of complex concurrency bugs.Comment: - Submitted for review - Removed section 6 "Research Roadmap for Debuggers", its content was summarized in the Future Work section - Added references for section 1, section 3, section 4.3 and section 5.1 - Updated citation

    Holistic debugging - enabling instruction set simulation for software quality assurance

    Get PDF
    We present holistic debugging, a novel method for observing execution of complex and distributed software. It builds on an instruction set simulator, which provides reproducible experiments and non-intrusive probing of state in a distributed system. Instruction set simulators, however, only provide low-level information, so a holistic debugger contains a translation framework that maps this information to higher abstraction level observation tools, such as source code debuggers. We have created Nornir, a proof-of-concept holistic debugger, built on the simulator Simics. For each observed process in the simulated system, Nornir creates an abstraction translation stack, with virtual machine translators that map machine-level storage contents (e.g. physical memory, registers) provided by Simics, to application-level data (e.g. virtual memory contents) by parsing the data structures of operating systems and virtual machines. Nornir includes a modified version of the GNU debugger (GDB), which supports non-intrusive symbolic debugging of distributed applications. Nornir's main interface is a debugger shepherd, a programmable interface that controls multiple debuggers, and allows users to coherently inspect the entire state of heterogeneous, distributed applications. It provides a robust observation platform for construction of new observation tools

    Antimicrobial Susceptibility Patterns in Urinary Tract Infections in Dogs (2010-2013).

    Get PDF
    BackgroundUrinary tract infections (UTIs) are common in dogs. The responsible bacterial populations have evolved with increasing resistance to many antimicrobials.ObjectiveTo characterize the antimicrobial susceptibility patterns of canine urinary tract isolates over a 51-month period.AnimalsOne thousand six hundred and thirty-six bacterial isolates from 1,028 dogs.MethodsAerobic bacterial isolate growth and susceptibility data from urine cultures of dogs were identified, retrospectively. Medical records were reviewed to obtain signalment, comorbidities, and antimicrobial use in the previous 30 days. The UTIs were further categorized as uncomplicated, complicated, or pyelonephritis.ResultsCommon bacterial isolates identified were Escherichia coli (52.5%), Staphylococcus spp. (13.6%), and Enterococcus spp. (13.3%). In vitro susceptibility among all isolates varied for commonly prescribed antimicrobials (amoxicillin [59%], amoxicillin/clavulanic acid [76%], cephalexin [66%], enrofloxacin [74%] and trimethoprim-sulfamethoxazole [86%]). For all antimicrobials tested (except aminoglycosides), in vitro susceptibility was higher in uncomplicated versus complicated infections (P < .05). Uncomplicated infection isolate susceptibility rates remained ≤90% for PO administered antimicrobials. Administration of amoxicillin, doxycycline, and enrofloxacin, but not amoxicillin/clavulanic acid in the previous 30 days was associated with resistance to that antimicrobial. Multidrug resistant isolates of E. coli and Staphylococcus spp. were more common in dogs with complicated than uncomplicated UTIs (36% versus 21%, P < .0001).Conclusions and clinical importanceIn vitro susceptibility was highly variable and no PO administered antimicrobial had >90% efficacy among isolates tested. Multidrug resistance was frequent among isolates tested suggesting that routine culture and susceptibility testing is indicated. Previously prescribed antimicrobials may affect empirical choices made pending susceptibility testing

    Out-Of-Place debugging: a debugging architecture to reduce debugging interference

    Get PDF
    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

    Blockade of alpha 2-adrenergic receptors in prelimbic cortex: impact on cocaine self-administration in adult spontaneously hypertensive rats following adolescent atomoxetine treatment

    Get PDF
    RATIONALE: Research with the spontaneously hypertensive rat (SHR) model of attention deficit/hyperactivity disorder demonstrated that chronic methylphenidate treatment during adolescence increased cocaine self-administration established during adulthood under a progressive ratio (PR) schedule. Compared to vehicle, chronic atomoxetine treatment during adolescence failed to increase cocaine self-administration under a PR schedule in adult SHR. OBJECTIVES: We determined if enhanced noradrenergic transmission at α2-adrenergic receptors within prefrontal cortex contributes to this neutral effect of adolescent atomoxetine treatment in adult SHR. METHODS: Following treatment from postnatal days 28–55 with atomoxetine (0.3 mg/kg) or vehicle, adult male SHR and control rats from Wistar-Kyoto (WKY) and Wistar (WIS) strains were trained to self-administer 0.3 mg/kg cocaine. Self-administration performance was evaluated under a PR schedule of cocaine delivery following infusion of the α2-adrenergic receptor antagonist idazoxan (0 and 10–56 μg/side) directly into prelimbic cortex. RESULTS: Adult SHR attained higher PR break points and had greater numbers of active lever responses and infusions than WKY and WIS. Idazoxan dose-dependently increased PR break points and active lever responses in SHR following adolescent atomoxetine vs. vehicle treatment. Behavioral changes were negligible after idazoxan pretreatment in SHR following adolescent vehicle or in WKY and WIS following adolescent atomoxetine or vehicle. CONCLUSIONS: α2-Adrenergic receptor blockade in prelimbic cortex of SHR masked the expected neutral effect of adolescent atomoxetine on adult cocaine self-administration behavior. Moreover, greater efficacy of acute idazoxan challenge in adult SHR after adolescent atomoxetine relative to vehicle is consistent with the idea that chronic atomoxetine may downregulate presynaptic α2A-adrenergic autoreceptors in SHR.National Institutes of Health grant DA011716. (DA011716 - National Institutes of Health)https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5693724/Published versio
    • …
    corecore