Allinea DDT User Guide Version 3.1-21691

Total Page:16

File Type:pdf, Size:1020Kb

Allinea DDT User Guide Version 3.1-21691 Allinea DDT User Guide Version 3.1-21691 Allinea DDT v3.1-21691 Contents Contents ......................................................................................................................................................1 1 Introduction .............................................................................................................................................6 1.1 Licence Options................................................................................................................................6 1.2 Obtaining Help..................................................................................................................................7 2 Installation and Configuration ................................................................................................................8 2.1 Installation ........................................................................................................................................8 2.1.1 Graphical Install ........................................................................................................................8 2.1.2 Text-mode Install ......................................................................................................................9 2.1.3 Licence Files ...........................................................................................................................10 2.1.4 Floating Licences ....................................................................................................................10 2.2 Configuration .................................................................................................................................11 2.2.1 Site Wide Configuration .........................................................................................................13 2.3 Integrating DDT With Queuing Systems ......................................................................................14 2.3.1 The Template Script ................................................................................................................14 2.3.2 OpenMPI, Altix, Blue Gene/P and Cray MPT .......................................................................15 2.3.3 MPICH based MPI .................................................................................................................16 2.3.4 Other MPIs ..............................................................................................................................16 2.3.5 Scalar Programs ......................................................................................................................16 2.3.6 Defining New Tags .................................................................................................................16 2.3.7 Configuring Queue Commands ..............................................................................................18 2.4 Connecting to remote programs (remote-exec) .............................................................................19 2.4.1 SSH based remote-exec ..........................................................................................................19 2.4.2 Testing .....................................................................................................................................20 2.5 Optional Configuration ..................................................................................................................20 2.5.1 System .....................................................................................................................................20 2.5.2 Job Submission .......................................................................................................................21 2.5.3 Remote Launch .......................................................................................................................21 2.5.4 Appearance ..............................................................................................................................21 2.5.5 Look & Feel ............................................................................................................................21 2.5.6 Code Viewer Settings .............................................................................................................21 2.5.7 Override System Font Settings ...............................................................................................22 3 Starting DDT .........................................................................................................................................23 3.1 Running a Program ........................................................................................................................23 3.2 Notes on the MPICH Standard and OpenMPI options .................................................................26 3.3 Debugging Single-Process Programs ............................................................................................26 3.4 Debugging OpenMP Programs ......................................................................................................27 3.5 Debugging Multi-Process Non-MPI programs .............................................................................27 3.6 Debugging OpenMPI MPMD Programs .......................................................................................28 3.7 Opening Core Files ........................................................................................................................29 3.8 Attaching To Running Programs ...................................................................................................29 3.8.1 Automatically Detected MPI Jobs ..........................................................................................30 3.8.2 Attaching To A Subset Of A n MPI Job ................................................................................30 3.8.3 Manual Process Selection .......................................................................................................30 3.8.4 Configuring Attaching to Remote Hosts ................................................................................31 3.8.5 Using LaunchMON for high-speed attaching ........................................................................31 3.8.6 Using DDT Command-Line Arguments ................................................................................32 3.9 Starting A Job In A Queue .............................................................................................................32 3.10 Using Custom MPI Scripts ..........................................................................................................33 3.11 Starting DDT From A Job Script .................................................................................................35 3.12 Notes on X Forwarding or VNC for remote users ......................................................................35 4 DDT Overview ......................................................................................................................................37 4.1 Saving And Loading Sessions .......................................................................................................38 4.2 Source Code ...................................................................................................................................38 4.3 Finding Lost Source Files ..............................................................................................................38 © 2012 Allinea Software 1 Allinea DDT v3.1-21691 4.4 Finding Code Or Variables ............................................................................................................38 4.4.1 Find File or Function ..............................................................................................................38 4.4.2 Find ..........................................................................................................................................39 4.4.3 Find in Files ............................................................................................................................39 4.5 Jump To Line / Jump To Function ................................................................................................40 4.6 Static Analysis.................................................................................................................................41 4.7 Editing Source Code ......................................................................................................................41 5 Controlling Program Execution ............................................................................................................42 5.1 Process Control And Process Groups ............................................................................................42 5.1.1 Detailed View .........................................................................................................................42 5.1.2 Summary View .......................................................................................................................43 5.2 Focus Control .................................................................................................................................43 5.2.1 Overview of changing focus ...................................................................................................44 5.2.2 Process Group Viewer ............................................................................................................44
Recommended publications
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • Winappdbg Documentation Release 1.6
    WinAppDbg Documentation Release 1.6 Mario Vilas Aug 28, 2019 Contents 1 Introduction 1 2 Programming Guide 3 i ii CHAPTER 1 Introduction The WinAppDbg python module allows developers to quickly code instrumentation scripts in Python under a Win- dows environment. It uses ctypes to wrap many Win32 API calls related to debugging, and provides a powerful abstraction layer to manipulate threads, libraries and processes, attach your script as a debugger, trace execution, hook API calls, handle events in your debugee and set breakpoints of different kinds (code, hardware and memory). Additionally it has no native code at all, making it easier to maintain or modify than other debuggers on Windows. The intended audience are QA engineers and software security auditors wishing to test or fuzz Windows applications with quickly coded Python scripts. Several ready to use tools are shipped and can be used for this purposes. Current features also include disassembling x86/x64 native code, debugging multiple processes simultaneously and produce a detailed log of application crashes, useful for fuzzing and automated testing. Here is a list of software projects that use WinAppDbg in alphabetical order: • Heappie! is a heap analysis tool geared towards exploit writing. It allows you to visualize the heap layout during the heap spray or heap massaging stage in your exploits. The original version uses vtrace but here’s a patch to use WinAppDbg instead. The patch also adds 64 bit support. • PyPeElf is an open source GUI executable file analyzer for Windows and Linux released under the BSD license. • python-haystack is a heap analysis framework, focused on classic C structure matching.
    [Show full text]
  • Using the GNU Debugger (Gdb) a Debugger Is a Very Useful Tool for Finding Bugs in a Program
    Using the GNU debugger (gdb) A debugger is a very useful tool for finding bugs in a program. You can interact with a program while it is running, start and stop it whenever, inspect the current values of variables and modify them, etc. If your program runs and crashes, it will produce a ‘core dump’. You can also use a debugger to look at the core dump and give you extra information about where the crash happened and what triggered it. Some debuggers (including recent versions of gdb) can also go backwards through your code: you run your code forwards in time to the point of an error, and then go backwards looking at the values of the key variables until you get to the start of the error. This can be slow but useful sometimes! To use a debugger effectively, you need to get the compiler to put extra ‘symbol’ information into the binary, otherwise all it will contain is machine code level – it is much more useful to have the actual variable names you used. To do this, you use: gfortran –g –O0 mycode.f90 –o mybinary where ‘-g’ is the compiler option to include extra symbols, -O0 is no optimization so the code is compiled exactly as written, and the output binary is called ’mybinary’. If the source files and executable file is in the same directory, then you can run the binary through the debugger by simply doing: gdb ./mybinary This will then put you into an interactive debugging session. Most commands can be shortened (eg ‘b’ instead of ‘break’) and pressing ‘enter’ will repeat the last command.
    [Show full text]
  • Bringing GNU Emacs to Native Code
    Bringing GNU Emacs to Native Code Andrea Corallo Luca Nassi Nicola Manca [email protected] [email protected] [email protected] CNR-SPIN Genoa, Italy ABSTRACT such a long-standing project. Although this makes it didactic, some Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor limitations prevent the current implementation of Emacs Lisp to family. GNU Emacs can currently execute Elisp code either inter- be appealing for broader use. In this context, performance issues preted or byte-interpreted after it has been compiled to byte-code. represent the main bottleneck, which can be broken down in three In this work we discuss the implementation of an optimizing com- main sub-problems: piler approach for Elisp targeting native code. The native compiler • lack of true multi-threading support, employs the byte-compiler’s internal representation as input and • garbage collection speed, exploits libgccjit to achieve code generation using the GNU Com- • code execution speed. piler Collection (GCC) infrastructure. Generated executables are From now on we will focus on the last of these issues, which con- stored as binary files and can be loaded and unloaded dynamically. stitutes the topic of this work. Most of the functionality of the compiler is written in Elisp itself, The current implementation traditionally approaches the prob- including several optimization passes, paired with a C back-end lem of code execution speed in two ways: to interface with the GNU Emacs core and libgccjit. Though still a work in progress, our implementation is able to bootstrap a func- • Implementing a large number of performance-sensitive prim- tional Emacs and compile all lexically scoped Elisp files, including itive functions (also known as subr) in C.
    [Show full text]
  • Avatud Lähtekoodiga Vahendite Kohandamine Microsoft Visual C++ Tarkvaralahenduste Kvaliteedi Analüüsiks Sonarqube Serveris
    TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Anton Ašot Roolaid 980774IAPB AVATUD LÄHTEKOODIGA VAHENDITE KOHANDAMINE MICROSOFT VISUAL C++ TARKVARALAHENDUSTE KVALITEEDI ANALÜÜSIKS SONARQUBE SERVERIS Bakalaureusetöö Juhendaja: Juhan-Peep Ernits PhD Tallinn 2019 Autorideklaratsioon Kinnitan, et olen koostanud antud lõputöö iseseisvalt ning seda ei ole kellegi teise poolt varem kaitsmisele esitatud. Kõik töö koostamisel kasutatud teiste autorite tööd, olulised seisukohad, kirjandusallikatest ja mujalt pärinevad andmed on töös viidatud. Autor: Anton Ašot Roolaid 21.05.2019 2 Annotatsioon Käesolevas bakalaureusetöös uuritakse, kuidas on võimalik saavutada suure hulga C++ lähtekoodi kvaliteedi paranemist, kui ettevõttes kasutatakse arenduseks Microsoft Visual Studiot ning koodikaetuse ja staatilise analüüsi ülevaate saamiseks SonarQube serverit (Community Edition). Seejuures SonarSource'i poolt pakutava tasulise SonarCFamily for C/C++ analüsaatori (mille eelduseks on SonarQube serveri Developer Edition) asemel kasutatakse tasuta ja vaba alternatiivi: SonarQube C++ Community pluginat. Analüüsivahenditena eelistatakse avatud lähtekoodiga vabu tarkvaravahendeid. Valituks osutuvad koodi kaetuse analüüsi utiliit OpenCppCoverage ja staatilise analüüsi utiliit Cppcheck. Siiski selgub, et nende utiliitide töö korraldamiseks ja väljundi sobitamiseks SonarQube Scanneri vajadustega tuleb kirjutada paar skripti: üks PowerShellis ja teine Windowsi pakkfailina. Regulaarselt ajastatud analüüside käivitamist tagab QuickBuild,
    [Show full text]
  • A.5.1. Linux Programming and the GNU Toolchain
    Making the Transition to Linux A Guide to the Linux Command Line Interface for Students Joshua Glatt Making the Transition to Linux: A Guide to the Linux Command Line Interface for Students Joshua Glatt Copyright © 2008 Joshua Glatt Revision History Revision 1.31 14 Sept 2008 jg Various small but useful changes, preparing to revise section on vi Revision 1.30 10 Sept 2008 jg Revised further reading and suggestions, other revisions Revision 1.20 27 Aug 2008 jg Revised first chapter, other revisions Revision 1.10 20 Aug 2008 jg First major revision Revision 1.00 11 Aug 2008 jg First official release (w00t) Revision 0.95 06 Aug 2008 jg Second beta release Revision 0.90 01 Aug 2008 jg First beta release License This document is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License [http:// creativecommons.org/licenses/by-nc-sa/3.0/us/]. Legal Notice This document is distributed in the hope that it will be useful, but it is provided “as is” without express or implied warranty of any kind; without even the implied warranties of merchantability or fitness for a particular purpose. Although the author makes every effort to make this document as complete and as accurate as possible, the author assumes no responsibility for errors or omissions, nor does the author assume any liability whatsoever for incidental or consequential damages in connection with or arising out of the use of the information contained in this document. The author provides links to external websites for informational purposes only and is not responsible for the content of those websites.
    [Show full text]
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • GDB Tutorial a Walkthrough with Examples
    GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 GDB Tutorial What is gdb? “GNU Debugger” A debugger for several languages, including C and C++ It allows you to inspect what the program is doing at a certain point during execution. Errors like segmentation faults may be easier to find with the help of gdb. http://sourceware.org/gdb/current/onlinedocs/gdb toc.html - online manual GDB Tutorial Additional step when compiling program Normally, you would compile a program like: gcc [flags] <source files> -o <output file> For example: gcc -Wall -Werror -ansi -pedantic-errors prog1.c -o prog1.x Now you add a -g option to enable built-in debugging support (which gdb needs): gcc [other flags] -g <source files> -o <output file> For example: gcc -Wall -Werror -ansi -pedantic-errors -g prog1.c -o prog1.x GDB Tutorial Starting up gdb Just try “gdb” or “gdb prog1.x.” You’ll get a prompt that looks like this: (gdb) If you didn’t specify a program to debug, you’ll have to load it in now: (gdb) file prog1.x Here, prog1.x is the program you want to load, and “file” is the command to load it. GDB Tutorial Before we go any further gdb has an interactive shell, much like the one you use as soon as you log into the linux grace machines. It can recall history with the arrow keys, auto-complete words (most of the time) with the TAB key, and has other nice features. Tip If you’re ever confused about a command or just want more information, use the “help” command, with or without an argument: (gdb) help [command] You should get a nice description and maybe some more useful tidbits.
    [Show full text]
  • The Kate Handbook
    The Kate Handbook Anders Lund Seth Rothberg Dominik Haumann T.C. Hollingsworth The Kate Handbook 2 Contents 1 Introduction 10 2 The Fundamentals 11 2.1 Starting Kate . 11 2.1.1 From the Menu . 11 2.1.2 From the Command Line . 11 2.1.2.1 Command Line Options . 12 2.1.3 Drag and Drop . 13 2.2 Working with Kate . 13 2.2.1 Quick Start . 13 2.2.2 Shortcuts . 13 2.3 Working With the KateMDI . 14 2.3.1 Overview . 14 2.3.1.1 The Main Window . 14 2.3.2 The Editor area . 14 2.4 Using Sessions . 15 2.5 Getting Help . 15 2.5.1 With Kate . 15 2.5.2 With Your Text Files . 16 2.5.3 Articles on Kate . 16 3 Working with the Kate Editor 17 4 Working with Plugins 18 4.1 Kate Application Plugins . 18 4.2 External Tools . 19 4.2.1 Configuring External Tools . 19 4.2.2 Variable Expansion . 20 4.2.3 List of Default Tools . 22 4.3 Backtrace Browser Plugin . 25 4.3.1 Using the Backtrace Browser Plugin . 25 4.3.2 Configuration . 26 4.4 Build Plugin . 26 The Kate Handbook 4.4.1 Introduction . 26 4.4.2 Using the Build Plugin . 26 4.4.2.1 Target Settings tab . 27 4.4.2.2 Output tab . 28 4.4.3 Menu Structure . 28 4.4.4 Thanks and Acknowledgments . 28 4.5 Close Except/Like Plugin . 28 4.5.1 Introduction . 28 4.5.2 Using the Close Except/Like Plugin .
    [Show full text]
  • Introduction to GDB the GNU Debugger, Usually Called Just GDB and Named Gdb As an Executable File, Is the Standard Debugger for the GNU Software System
    Introduction to GDB The GNU Debugger, usually called just GDB and named gdb as an executable file, is the standard debugger for the GNU software system. It is a portable debugger that works for many programming languages, including Ada, C, C++, Objective-C, and Pascal. It allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. GNU Debugger helps you in finding out followings: 1) If a core dump happened then what statement or expression did the program crash on? 2) If an error occurs while executing a function, what line of the program contains the call to that function, and what are the parameters? 3) What are the values of program variables at a particular point during execution of the program? 4) What is the result of a particular expression in a program? How GDB Debugs? GDB allows you to do things like run the program up to a certain point then stop and print out the values of certain variables at that point, or step through the program one line at a time and print out the values of each variable after executing each line. GDB uses a simple command line interface. How it works? To let GDB be able to read all that information line by line from the symbol table, we need to compile it a bit differently. Normally we compile things as: gcc hello.c Instead of doing this, we need to compile with the -g flag as such: gcc -g hello.c It will Compile hello.c with the debugging option (-g).
    [Show full text]
  • Formal Verification to Ensuring the Memory Safety of C++ Programs
    FORMAL VERIFICATION TO ENSURING THE MEMORY SAFETY OF C++ PROGRAMS A DISSERTATION SUBMITTED TO THE POSTGRADUATE PROGRAM IN INFORMATICS OF FEDERAL UNIVERSITY OF AMAZONAS IN FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE Felipe R. Monteiro April 2020 © Copyright by Felipe R. Monteiro 2020 All Rights Reserved ii I certify that I have read this dissertation and that, in my opinion, it is fully adequate in scope and quality as a dissertation for the degree of Master of Science. (Lucas Cordeiro) Principal Adviser I certify that I have read this dissertation and that, in my opinion, it is fully adequate in scope and quality as a dissertation for the degree of Master of Science. (Raimundo Barreto) I certify that I have read this dissertation and that, in my opinion, it is fully adequate in scope and quality as a dissertation for the degree of Master of Science. (Herbert Rocha) Approved for the Institute of Computing Committee on Postgraduate Studies iii Abstract In the last three decades, memory safety issues in low-level programming languages such as C or C++ have been one of the significant sources of security vulnerabilities; however, there exist only a few attempts with limited success to cope with the complexity of C++ program verification. This work describes and evaluates a novel verification approach based on bounded model checking (BMC) and satisfiability modulo theories (SMT) to verify C++ programs formally. This verification approach analyzes bounded C++ programs by encoding various sophisticated features that the C++ programming language offers into SMT, such as templates, sequential and associative containers, inheritance, polymorphism, and exception handling.
    [Show full text]
  • Part 2 Jenkins Continuous Integration Server
    Configuring a professional open source development environment – Part 2 By Thomas Arnbjerg, TechPeople, 2018 Jenkins Continuous Integration Server Introduction 2 Prerequisites 3 Installing Jenkins 3 Introduction 4 Steps 4 Installing external programs 7 Cppcheck 8 cpplint 9 sloccount 9 valgrind 10 gcovr 10 Eclipse 10 Installing Jenkins plugins 11 Creating a build job 12 Build job ‘HelloWorld’ 13 Generating a data basis 13 Visualizing the result 22 Other 24 Tour of the ‘HelloWorld’ and the Jenkins user interface 25 Summary page 25 Live build console output 26 Job overview 27 Automatic start of build 28 Jenkins and branches 29 Branching – GitFlow 29 Branches and Jenkins file 30 Multibranch pipeline build and HelloWorld 31 Final Jenkins tips 37 Mission Control Plugin 37 Build Monitor Plugin 38 ThinBackup 38 Job Configuration History 39 Docker support 39 Cpplint support 39 More Jenkins nodes 39 Blue Ocean user interface 39 Rounding off 41 1/42 Introduction In Part 1,a variety of functions in Jenkins were visualized. I this part, we are going to drill below the surface and look at the configuration and use in a Continuous Integration (CI) scenario in which Jenkins supports the development in feature branches. We configure a number of build jobs using the support functions which were visualized in Part 1 (shown below in reduced format). CppCheck, Unit Tests (TAP format) and Code SLOCCount (Source Lines Of Code Count), Valgrind Coverage. analysis For a Linux system, we will then configure Jenkins to do the following: ● Check the source code using the CPPCheck and CPPLint tools which means creating static code analysis to locate basic code errors and deviations from the code standard.
    [Show full text]