NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD.

Slides:



Advertisements
Similar presentations
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
Advertisements

National Alliance for Medical Image Computing Slicer3 Architecture.
ACT! “Web” Plugins ACC Webinar (Part 1of 2) Brian Mowka and Jamie Aurand December 2010.
Debugging What can debuggers do? Run programs Make the program stops on specified places or on specified conditions Give information about current variables’
Georgia Institute of Technology DrJava Appendix A Barb Ericson Georgia Institute of Technology May 2006.
Computer Science Basics CS 216 Fall Operating Systems interface to the hardware for the user and programs The two operating systems that you are.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
Binghamton University CS-220 Spring 2015 Binghamton University CS-220 Spring 2015 The CS-220 Development Environment.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
How to Debug VB .NET Code.
CS 225 Lab #2 - Pointers, Copy Constructors, Destructors, and DDD.
1 Basics of Linux On linux machine: Login at your home directory Open a “shell” or “terminal” or “xterm” workspace (4) On windows machine Intall linux.
NA-MIC National Alliance for Medical Image Computing Slicer4 Guided Tour Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing Slicer Custom Modules Steve Pieper, PhD.
Source code indexer. What does it do?  Indexes source code for fast lookups of methods, variables, structs, macros, …  But LXR does this… Ctags can.
PIKA Technologies Inc. Analog Logger Application Sample December 2009.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
Revolution R and DPHS Cluster Statistical Computing 4/9/14.
Memory & Storage Architecture Seoul National University GDB commands Hyeon-gyu School of Computer Science and Engineering.
Makefiles. makefiles Problem: You are working on one part of a large programming project (e. g., MS Word).  It consists of hundreds of individual.cpp.
Developing C/C++ applications with the Eclipse CDT David Gallardo.
TAMU CSCE 313 (the basics). Basic Unix/Linux programming Accessing CS systems  PuTTY (putty.exe) – a Telnet and SSH client  Common hosts: unix.cs.tamu.edu.
CPSC1301 Computer Science 1 Overview of Dr. Java.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
Our Environment We will exercise on Microsoft Visual C++ v.6 We will exercise on Microsoft Visual C++ v.6 because that is what we have in the univ. because.
Chapter 19: Visual Lisp. After completing this Chapter, you will be able to do the following: What is AutoLISP Launching Visual LISP Terminology and Fundamental.
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Active-HDL Interfaces Debugging C Code Course 10.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
INTRODUCTION TO CSCE LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD.
CSE 232: C++ debugging in Visual Studio and emacs C++ Debugging (in Visual Studio and emacs) We’ve looked at programs from a text-based mode –Shell commands.
A Tutorial on Introduction to gdb By Sasanka Madiraju Graduate Assistant Center for Computation and Technology.
Debugging Xin Tong. GDB GNU Project debugger Allows you to see what is going on `inside' another program while it executes or crashed. (Faster than printing.
NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD.
Debuggers in Python. The Debugger Every programming IDE has a tool called a debugger. This application does NOT locate or fix your bugs for you! It slows.
Debugging Ensemble Productions CAMTA Meeting 11 th November 2010 John Murray.
Debugging 1/6/2016. Debugging 1/6/2016 Debugging  Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a program.
COP 3530 Spring 12 Discussion Session 1. Agenda 1.Introduction 2.Remote programming 3.Separate code 4.Compile -- g++,makefile 5.Debug -- gdb 6.Questions?
Open project in Microsoft Visual Studio → build program in “Release” mode.
NA-MIC National Alliance for Medical Image Computing Slicer 2.x Architecture Steve Pieper, PhD.
Visual Basic Integrated Development Environment (IDE) 56:150 Information System Design.
NA-MIC National Alliance for Medical Image Computing Slicer Architecture Steve Pieper, PhD.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
Object Oriented Programming COP3330 / CGS5409.  Compiling with g++  Using Makefiles  Debugging.
1 Advanced.Net Debugging Using Visual Studio, R# and OzCode IT Week, Summer 2015.
What's New in Visual Studio 2010 Debugging Brian Peek Senior Consultant, ASPSOFT, Inc. Microsoft MVP - C#
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Debugging using By: Samuel Ashby. What is debugging?  A bug is an error in either a program or the hardware itself.  Debugging is first locating and.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Using an Integrated Development Environment. Integrated Development Environments An Integrated Development Environment, or IDE, permits you to edit,
CSE 332: Scientific debugging in C++ Scientific Debugging in C++ (with Eclipse & gdb) By now we’ve covered several key C++ features –Variable declarations.
Gnu Debugger (gdb) Debuggers are used to: Find semantic errors Locate seg faults and bus errors Prepared by Dr. Spiegel.
Gnu Debugger (gdb) Debuggers are used to: Find semantic errors
Development with Eclipse
Open Source Software Development Environment
Appendix A Barb Ericson Georgia Institute of Technology May 2006
Microprocessor and Assembly Language
Editor, Compiler, Linker, Debugger, Makefiles
HP C/C++ Remote developer plug-in for Eclipse
Unreal Engine and C++ We’re finally at a point where we can start working in C++ with Unreal Engine To get everything set up for this properly, we’re going.
עבודה עם Eclipse מבוא לתכנות מערכות מבוא לתכנות מערכות.
Getting Started: Developing Code with Cloud9
Using a Debugger 1-Jan-19.
Tools for Source Browsing and Debugging
Testing, debugging, and using support libraries
Our Environment We will exercise on Microsoft Visual C++ v.6
Computer Terms Review from what language did C++ originate?
Presentation transcript:

NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD

National Alliance for Medical Image Computing Overall Goals Understanding the Big Picture: –Code browsing with ctags –Source Navigator Debugging: –tkcon –Using the native debuggers –itkFilterWatcher

National Alliance for Medical Image Computing Ctags Exuberant CTAGS –Ctags.sf.net –This version comes with cygwin and most linux distributions Provides detailed tag files for emacs and vi Run in top level directory with –ctags –R.

National Alliance for Medical Image Computing Using the tags file from vim Put cursor on identifier of interest Type Control-] to jump to the tag –If there is more than one tag for this identifier, type :tselect and select desired tag from list Type Control-t to jump back to original spot You can nest tags on a stack to trace through a control flow

National Alliance for Medical Image Computing Source Navigator –Linux source code to compile –Windows binaries

National Alliance for Medical Image Computing Source Navigator Multi-directory class browser (see whole project) Hierarchy Display View all code –Jump to definitions and declarations –See comments and code Grep UI

National Alliance for Medical Image Computing Native Tools CMake creates makefiles and.SLN files that can be used outside of CMake for debugging –Resolve linker or option issues Can attach to running process with gdb or visual studio –Debug the C++ code

National Alliance for Medical Image Computing Visual Studio Slicer Debugging Start Slicer Tools->Debug Processes –Attach to wish84.exe, Slicer 2.4 –Run program until it crashes –Browse to Source directory and set breakpoints

National Alliance for Medical Image Computing gdb Debugging Start slicer (built in debug mode) Use ps to find process id of ‘parent’ vtk thread Use gdb command ‘attach ’ For debugging startup: –slicer2-linux-x86 Base/tcl/tkcon.tcl –Attach gdb –In tkcon: source Base/tcl/Go.tcl

National Alliance for Medical Image Computing Tkcon Very smart console written in Tk –Identifier completion Files Variables Class instances UI Windows –Command line editing like readline Create VTK class instances and experiment Write and test tcl code interactively

National Alliance for Medical Image Computing Interactive VTK Commands ListMethods –Tells all instances currently known to the interpreter Print –Calls the PrintSelf method ListMethods –Tell what methods are available in the interpreter

National Alliance for Medical Image Computing itk::FilterWatcher Uses itk Observer mechanism to register callbacks for common events –StartEvent –ProgressEvent –EndEvent Prints total running time

National Alliance for Medical Image Computing World’s oldest debugging tool Print statements in the code! –Just remember to disable them when you are done debugging… In C++ – vtkDebugMacro(“”); –Call GlobalWarningDisplayOn method for any instance of a vtkObject subclass In Tcl if {$Module(verbose) == 1} { puts "INIT: ${m}Init" } Use the –-verbose option in slicer to set the Module(verbose) flag

National Alliance for Medical Image Computing Resources