Allinea Forge User Guide
Total Page:16
File Type:pdf, Size:1020Kb
Allinea Forge User Guide Version 7.0.1 Allinea Forge 7.0.1 Contents Contents 1 I Allinea Forge 12 1 Introduction 12 1.1 Allinea DDT ........................................ 12 1.2 Allinea MAP ........................................ 13 1.3 Online Resources ...................................... 13 2 Installation 14 2.1 Linux/Unix Installation ................................... 14 2.1.1 Graphical Install .................................. 14 2.1.2 Text-mode Install .................................. 15 2.2 Mac Installation ....................................... 16 2.3 Windows Installation .................................... 16 2.4 Licence Files ........................................ 17 2.5 Workstation and Evaluation Licences ............................ 17 2.6 Supercomputing and Other Floating Licences ....................... 18 2.7 Architecture Licensing ................................... 18 3 Connecting to a Remote System 19 3.1 Remote Connections Dialog ................................ 19 3.2 Remote Launch Settings .................................. 20 3.2.1 Remote Script .................................... 21 3.3 Reverse Connect ...................................... 21 3.3.1 Overview ...................................... 21 3.3.2 Usage ........................................ 22 3.3.3 Connection Details ................................. 22 3.4 Using X Forwarding or VNC ................................ 23 4 Starting 25 II DDT 27 5 Getting Started 27 5.1 Running a Program ..................................... 28 5.1.1 Application ..................................... 28 5.1.2 MPI ......................................... 29 5.1.3 OpenMP ...................................... 29 5.1.4 CUDA ....................................... 29 5.1.5 UPC ......................................... 30 5.1.5.1 GCC UPC ................................ 30 5.1.5.2 Berkeley UPC .............................. 30 5.1.6 Memory Debugging ................................ 30 5.1.7 Environment Variables ............................... 30 5.1.8 Plugins ....................................... 30 5.2 Express Launch ....................................... 31 5.2.1 Run Dialog Box .................................. 32 c 2017 Allinea Software Ltd. 1 Allinea Forge 7.0.1 5.3 remote-exec Required By Some MPIs ......................... 32 5.4 Debugging Single-Process Programs ............................ 33 5.5 Debugging OpenMP Programs ............................... 33 5.6 Manual Launching of Multi-Process Non-MPI programs ................. 35 5.7 Debugging MPMD Programs ................................ 36 5.7.1 Debugging MPMD Programs without Express Launch .............. 36 5.7.2 Debugging MPMD Programs in Compatibility mode ............... 36 5.8 Opening Core Files ..................................... 37 5.9 Attaching To Running Programs .............................. 37 5.9.1 Automatically Detected MPI Jobs ......................... 38 5.9.2 Attaching To A Subset Of An MPI Job ...................... 38 5.9.3 Manual Process Selection ............................. 38 5.9.4 Configuring Attaching to Remote Hosts ...................... 40 5.9.5 Using DDT Command-Line Arguments ...................... 40 5.10 Starting A Job In A Queue ................................. 41 5.11 Using Custom MPI Scripts ................................. 41 5.12 Starting DDT From A Job Script .............................. 44 5.13 Attaching via gdbserver ................................... 44 6 Overview 46 6.1 Saving And Loading Sessions ............................... 46 6.2 Source Code ......................................... 47 6.2.1 Viewing ....................................... 47 6.2.2 Editing ....................................... 47 6.2.3 Rebuilding and Restarting ............................. 48 6.2.4 Committing changes ................................ 48 6.3 Project Files ......................................... 48 6.3.1 Application / External Code ............................ 48 6.4 Finding Lost Source Files .................................. 48 6.5 Finding Code Or Variables ................................. 49 6.5.1 Find Files or Functions ............................... 49 6.5.2 Find ......................................... 49 6.5.3 Find in Files .................................... 50 6.6 Jump To Line / Jump To Function ............................. 50 6.7 Static Analysis ....................................... 51 6.8 Version Control Information ................................ 52 7 Controlling Program Execution 54 7.1 Process Control And Process Groups ............................ 54 7.1.1 Detailed View .................................... 54 7.1.2 Summary View ................................... 55 7.2 Focus Control ........................................ 56 7.2.1 Overview of changing focus ............................ 56 7.2.2 Process Group Viewer ............................... 56 7.2.3 Breakpoints ..................................... 56 7.2.4 Code Viewer .................................... 57 7.2.5 Parallel Stack View ................................. 57 7.2.6 Playing and Stepping ................................ 57 7.2.7 Step Threads Together ............................... 57 7.2.8 Stepping Threads Window ............................. 57 7.3 Hotkeys ........................................... 59 7.4 Starting, Stopping and Restarting a Program ........................ 59 c 2017 Allinea Software Ltd. 2 Allinea Forge 7.0.1 7.5 Stepping Through A Program ................................ 59 7.6 Stop Messages ....................................... 60 7.7 Setting Breakpoints ..................................... 60 7.7.1 Using the Source Code Viewer ........................... 60 7.7.2 Using the Add Breakpoint Window ........................ 60 7.7.3 Pending Breakpoints ................................ 61 7.7.4 Conditional Breakpoints .............................. 62 7.8 Suspending Breakpoints .................................. 62 7.9 Deleting A Breakpoint ................................... 62 7.10 Loading And Saving Breakpoints .............................. 63 7.11 Default Breakpoints ..................................... 63 7.12 Synchronizing Processes .................................. 63 7.13 Setting A Watchpoint .................................... 64 7.14 Tracepoints ......................................... 65 7.14.1 Setting a Tracepoint ................................ 65 7.14.2 Tracepoint Output ................................. 66 7.15 Version Control Breakpoints and Tracepoints ....................... 66 7.16 Examining The Stack Frame ................................ 68 7.17 Align Stacks ......................................... 68 7.18 “Where are my processes?”—Viewing Stacks in Parallel ................. 69 7.18.1 Overview ...................................... 69 7.18.2 The Parallel Stack View in Detail ......................... 69 7.19 Browsing Source Code ................................... 71 7.20 Simultaneously Viewing Multiple Files .......................... 72 7.21 Signal Handling ....................................... 72 7.21.1 Custom Signal Handling (Signal Dispositions) .................. 73 7.21.2 Sending Signals ................................... 73 8 Viewing Variables And Data 74 8.1 Sparklines .......................................... 74 8.2 Current Line ......................................... 74 8.3 Local Variables ....................................... 74 8.4 Arbitrary Expressions And Global Variables ........................ 75 8.4.1 Fortran Intrinsics .................................. 76 8.4.2 Changing the language of an Expression ...................... 76 8.4.3 Macros and #defined Constants .......................... 76 8.5 Help With Fortran Modules ................................. 76 8.6 Viewing Complex Numbers in Fortran ........................... 77 8.7 C++ STL Support ...................................... 78 8.8 Custom Pretty Printers ................................... 78 8.8.1 Example ...................................... 78 8.9 Viewing Array Data ..................................... 79 8.10 UPC Support ........................................ 79 8.11 Changing Data Values .................................... 80 8.12 Viewing Numbers In Different Bases ............................ 80 8.13 Examining Pointers ..................................... 80 8.14 Multi-Dimensional Arrays in the Variable View ...................... 80 8.15 Multi Dimensional Array Viewer (MDA) ......................... 81 8.15.1 Array Expression .................................. 82 8.15.2 Filtering by Value .................................. 83 8.15.3 Distributed Arrays ................................. 83 8.15.4 Advanced: How Arrays Are Laid Out in the Data Table ............. 83 c 2017 Allinea Software Ltd. 3 Allinea Forge 7.0.1 8.15.5 Auto Update .................................... 86 8.15.6 Comparing Elements Across Processes ...................... 86 8.15.7 Statistics ...................................... 86 8.15.8 Export ........................................ 86 8.15.9 Visualization .................................... 87 8.16 Cross-Process and Cross-Thread Comparison ....................... 88 8.17 Assigning MPI Ranks .................................... 89 8.18 Viewing Registers ...................................... 90 8.19 Process Details ....................................... 90 8.20 Disassembler ........................................ 90 8.21 Interacting Directly With The Debugger .........................