The Experts below are selected from a list of 291 Experts worldwide ranked by ideXlab platform

L. Albertsson - One of the best experts on this subject based on the ideXlab platform.

  • Abstract: Holistic debugging
    2008
    Co-Authors: L. Albertsson
    Abstract:

    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, 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

  • Holistic debugging – enabling instruction set simulation for software quality assurance
    2006
    Co-Authors: L. Albertsson
    Abstract:

    We present holistic debugging, a novel method for ob-serving execution of complex and distributed software. It builds on an instruction set simulator, which provides re-producible 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 informa-tion to higher abstraction level observation tools, such as source code Debuggers. We have created Nornir, a proof-of-concept holistic de-bugger, built on the simulator Simics. For each observed process in the simulated system, Nornir creates an abstrac-tion 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 sup-ports non-intrusive symbolic debugging of distributed ap-plications. 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 het-erogeneous, distributed applications. It provides a robust observation platform for construction of new observation tools. 1

  • Temporal debugging and profiling of multimedia applications
    2002
    Co-Authors: L. Albertsson
    Abstract:

    We present a temporal Debugger, capable of examining time flow of applications in general-purpose computer systems. The Debugger is attached to a complete system simulator, which models an entire workstation in sufficient detail to run commodity operating systems and workloads. Unlike traditional Debuggers, a Debugger operating on a simulated system does not disturb the timing of the target program, allowing reproducible experiments and large amounts of instrumentation and monitoring without intrusion. We have implemented the temporal Debugger by modifying the Gnu Debugger to operate on applications in a simulated Linux system. Debugger implementation is difficult because the Debugger expects application-related data, whereas the simulator provides low-level data. We introduce a technique, virtual machine translation, for mapping simulator data to the Debugger by parsing operating system data structures in the simulated system. The Debugger environment allows collection of performance statistics from multiple abstraction levels: hardware, operating system, and application level. We show how this data can be used to profile quality of service performance of a video decoder. The Debugger is used to detect display jitter, and by correlating runtime statistics to image rendering time, we expose deviations when the application is unable to render an image in time, thereby locating the cause of the display jitter

  • Temporal debugging and profiling of multimedia applications
    Multimedia Computing and Networking 2002, 2001
    Co-Authors: L. Albertsson
    Abstract:

    We present a temporal Debugger, capable of examining time flow of applications in general-purpose computer systems. The Debugger is attached to a complete system simulator, which models an entire workstation in sufficient detail to run commodity operating systems and workloads. Unlike traditional Debuggers, a Debugger operating on a simulated system does not disturb the timing of the target program, allowing reproducible experiments and large amounts of instrumentation and monitoring without intrusion. We have implemented the temporal Debugger by modifying the Gnu Debugger to operate on applications in a simulated Linux system. Debugger implementation is difficult because the Debugger expects application-related data, whereas the simulator provides low-level data. We introduce a technique, virtual machine translation, for mapping simulator data to the Debugger by parsing operating system data structures in the simulated system. The Debugger environment allows collection of performance statistics from multiple abstraction levels: hardware, operating system, and application level. We show how this data can be used to profile quality of service performance of a video decoder. The Debugger is used to detect display jitter, and by correlating runtime statistics to image rendering time, we expose deviations when the application is unable to render an image in time, thereby locating the cause of the display jitter.© (2001) COPYRIGHT SPIE--The International Society for Optical Engineering. Downloading of the abstract is permitted for personal use only.

  • Simulation-based debugging of soft real-time applications
    Society Press, 2001
    Co-Authors: L. Albertsson
    Abstract:

    We present a temporal Debugger, capable of examining time flow of soft real-time applications in Unix systems. The Debugger is based on a simulator modelling an entire workstation in sufficient detail to run unmodified operating systems and applications. It provides a deterministic and non-intrusive debugging environment, allowing reproducible presentation of program time flow. The primary contribution of this paper is virtual machine translation, a technique necessary to debug applications in a simulated Unix system. We show how a virtual machine translator maps low-level data, provided by the simulator, to data useful to a symbolic Debugger. The translator operates by parsing data structures in the target operating system and has been implemented for the Gnu Debugger and simulated Linux systems. The Debugger user interface is shown in Figure 1. The foreground window shows how GDB connects to the simulator and attaches to a process. Simulated time, measured in number of cycles since boot, is available in the Debugger variable sim time. The window in the background shows the simulated console, printing output from Linux during boot. 1

Paraskevas Evripidou - One of the best experts on this subject based on the ideXlab platform.

  • Net-dbx-G: A Web-Based Debugger of MPI Programs Over Grid
    2004
    Co-Authors: Panayiotis Neophytou, N. Neophytou, Paraskevas Evripidou
    Abstract:

    Net-dbx-G is a tool that utilizes Java and other World Wide Web tools as an interface to Grid services to help Grid application developers debug their MPI programs from anywhere in the Internet. Net-dbx-G is a source level Debugger with the full power of gdb (the Gnu Debugger), providing the user with full Grid functionality. The portability of the tool is of great importance as well because it enables the tool to be used on heterogeneous nodes that participate in an MPI enabled Grid environment. The users of our system simply point their browser to the Net-dbx-G webpage and authenticates to the Virtual Organization that they are part of. Having at their disposal the shared resources participating to that VO, they start debugging by interacting with the provided GUI environment of the tool. The users can dynamically select which MPI processes to view/debug

  • Net-dbx: a web-based Debugger of MPI programs over low-bandwidth lines
    IEEE Transactions on Parallel and Distributed Systems, 2001
    Co-Authors: N. Neophytou, Paraskevas Evripidou
    Abstract:

    This paper describes Net-dbx, a tool that utilizes Java and other World Wide Web tools for the debugging of MPI programs from anywhere in the Internet. Net-dbx is a source-level interactive Debugger with the full power of gdb (the Gnu Debugger) augmented with the debug functionality of the public-domain MPI implementation environments. The main effort was on a low overhead, yet powerful, graphical interface supported by low-bandwidth connections. The portability of the tool is of great importance as well because it enables the tool to be used on heterogeneous nodes that participate in an MPI multicomputer. Both needs are satisfied a great deal by the use of WWW browsing tools and the Java programming language. The user of our system simply points his/her browser to the Net-dbx page, logs in to the destination system, and starts debugging by interacting with the tool, just as with any GUI environment. The user can dynamically select which MPI processes to view/debug. A special WWW-based environment has been designed and implemented to host the system prototype.

  • CCGRID - Net-dbx-G: a Web-based Debugger of MPI programs over Grid environments
    IEEE International Symposium on Cluster Computing and the Grid 2004. CCGrid 2004., 1
    Co-Authors: Panayiotis Neophytou, N. Neophytou, Paraskevas Evripidou
    Abstract:

    Net-dbx-G is a tool that utilizes Java and other World Wide Web tools as an interface to Grid services to help Grid application developers debug their MPI programs from anywhere in the Internet. Net-dbx-G is a source level Debugger with the full power of gdb (the Gnu Debugger), providing the user with full Grid functionality. The portability of the tool is of great importance as well because it enables the tool to be used on heterogeneous nodes that participate in an MPI enabled, Grid environment. The users of our system simply point their browser to the Net-dbx-G webpage and authenticate to the virtual organization that they are part of. Having at their disposal the shared resources participating with that VO, they start debugging by interacting with the provided GUI environment of the tool. The users can dynamically select which MPI processes to view/debug.

Paul Chow - One of the best experts on this subject based on the ideXlab platform.

  • FPL - SimXMD: Simulation-based HW/SW co-debugging
    2013 23rd International Conference on Field programmable Logic and Applications, 2013
    Co-Authors: Ruediger Willenberg, Paul Chow
    Abstract:

    The unique promise of embedded systems in FPGAs is that designers can develop and modify their own peripheral hardware with a high degree of flexibility. However, the task of verifying the hardware commonly involves writing software to interact with it. This software itself is prone to design errors. To debug a system with two untested interacting components, it is preferable if their interaction can be precisely traced. We are presenting SimXMD (Simulation-based eXperimental Microprocessor Debugger), a tool that allows developers to debug microcontroller code and custom hardware simultaneously. The concept of debugging hardware and software together is not a new one. However, we take two established tools already used by the respective developers and connect them in a transparent way. SimXMD connects a Gnu Debugger (GDB) instance to a full-system simulation of an embedded FPGA system in ModelSim. This enables free-roaming investigation of hardware-software interactions inside the system, including reverting back to an earlier moment in simulation time. Software can be debugged in the same way that it would be commonly done with a real implementation on an FPGA board.

  • FPL - Simulation-based HW/SW co-debugging for field-programmable systems-on-chip
    2013 23rd International Conference on Field programmable Logic and Applications, 2013
    Co-Authors: Ruediger Willenberg, Paul Chow
    Abstract:

    We are presenting SimXMD (Simulation-based eXperimental Microprocessor Debugger), a tool that allows developers to debug microcontroller code and custom hardware simultaneously. SimXMD connects a Gnu Debugger instance to a full-system simulation of an embedded FPGA system. This enables free-roaming investigation of hardware-software interactions inside the system, including reverting back to an earlier point in simulation time. A custom memory logging mechanism enables access to variables in on-chip, off-chip and cached memory. SimXMD is open source, and its modular architecture facilitates extension to other embedded processors as well as different simulators and Debuggers.

  • FPT - SimXMD: Integrated debugging of C code and hardware components
    2012 International Conference on Field-Programmable Technology, 2012
    Co-Authors: Ruediger Willenberg, Paul Chow
    Abstract:

    In our demonstration, we present SimXMD, a tool that enables developers to debug microcontroller code and custom hardware simultaneously. SimXMD (Simulated eXperimental Microprocessor Debugger). SimXMD connects a Gnu Debugger instance to a ModelSim instance simulating an embedded FPGA system with a Xilinx Microblaze processor. We will demonstrate debugging a multiprocessor FPGA system where the processor cores are connected through custom-designed network hardware. SimXMD is Open Source, and its modular architecture facilitates extending it to other embedded processors as well as different simulators or Debuggers.

Chloe W. Schulze - One of the best experts on this subject based on the ideXlab platform.

  • dynamic heap type inference for program understanding and debugging
    Symposium on Principles of Programming Languages, 2007
    Co-Authors: Marina Polishchuk, Ben Liblit, Chloe W. Schulze
    Abstract:

    C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify "untypable" blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the Gnu Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs.

  • POPL - Dynamic heap type inference for program understanding and debugging
    Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07, 2007
    Co-Authors: Marina Polishchuk, Ben Liblit, Chloe W. Schulze
    Abstract:

    C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify "untypable" blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the Gnu Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs.

Marina Polishchuk - One of the best experts on this subject based on the ideXlab platform.

  • Program Understanding and Debugging ∗
    2008
    Co-Authors: Marina Polishchuk
    Abstract:

    C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify “untypable ” blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the Gnu Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs

  • dynamic heap type inference for program understanding and debugging
    Symposium on Principles of Programming Languages, 2007
    Co-Authors: Marina Polishchuk, Ben Liblit, Chloe W. Schulze
    Abstract:

    C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify "untypable" blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the Gnu Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs.

  • POPL - Dynamic heap type inference for program understanding and debugging
    Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07, 2007
    Co-Authors: Marina Polishchuk, Ben Liblit, Chloe W. Schulze
    Abstract:

    C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify "untypable" blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the Gnu Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs.