Debugging on Intel Platforms

Similar documents
Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes

Graphics Performance Analyzer for Android

This guide will show you how to use Intel Inspector XE to identify and fix resource leak errors in your programs before they start causing problems.

Intel Server Board S2600CW2S

Eliminate Threading Errors to Improve Program Stability

Intel Platform Administration Technology Quick Start Guide

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

Intel vpro Technology Virtual Seminar 2010

Intel Parallel Studio XE 2011 for Windows* Installation Guide and Release Notes

Efficiently Introduce Threading using Intel TBB

Eliminate Memory Errors to Improve Program Stability

Intel Server Board S2400SC

More performance options

Using Intel VTune Amplifier XE and Inspector XE in.net environment

Intel Server Board S5520HC

Intel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes

Memory & Thread Debugger

Installation Guide and Release Notes

Installation Guide and Release Notes

A Simple Path to Parallelism with Intel Cilk Plus

Intel Server Board S1200BTS

Intel Atom Processor Based Platform Technologies. Intelligent Systems Group Intel Corporation

Parallel Programming Features in the Fortran Standard. Steve Lionel 12/4/2012

Intel Authoring Tools for UPnP* Technologies

Oracle Developer Studio 12.6

Installation Guide and Release Notes

Intel 82580EB/82580DB GbE Controller Feature Software Support. LAN Access Division (LAD)

Intel Server Board S2600STB

Mary Yeoh Intel Penang Design Center (ipdc) Intel Corporation Penang, Malaysia

Eliminate Threading Errors to Improve Program Stability

Expand Your HPC Market Reach and Grow Your Sales with Intel Cluster Ready

Intel Xeon Phi Coprocessor. Technical Resources. Intel Xeon Phi Coprocessor Workshop Pawsey Centre & CSIRO, Aug Intel Xeon Phi Coprocessor

Intel Learning Series Developer Program Self Verification Program. Process Document

Intel Transparent Computing

Using Intel Inspector XE 2011 with Fortran Applications

Software Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod

Supra-linear Packet Processing Performance with Intel Multi-core Processors

Intel Software Development Products Licensing & Programs Channel EMEA

Intel Desktop Board DZ68DB

LED Manager for Intel NUC

Intel Extreme Memory Profile (Intel XMP) DDR3 Technology

Getting Started with Intel SDK for OpenCL Applications

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

Intel AppUp SM developer program and Native Apps

Lenovo ThinkCentre M90z with Intel vpro Technology. Stefan Richards Intel Corporation Business Client Platform Division

Intel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes

Jackson Marusarz Software Technical Consulting Engineer

Intel G31/P31 Express Chipset

Intel Manageability Commander User Guide

Intel Setup and Configuration Service Lite

Intel Setup and Configuration Service. (Lightweight)

Dr. Thomas Willis Principal Engineer Embedded and Communica3ons Group / LEPD February 27, 2011

Intel Parallel Studio XE 2011 SP1 for Linux* Installation Guide and Release Notes

Evolving Small Cells. Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure)

Intel C++ Compiler Documentation

Addressing the Increasing Challenges of Debugging on Accelerated HPC Systems. Ed Hinkel Senior Sales Engineer

Intel Cache Acceleration Software for Windows* Workstation

Intel Parallel Studio XE 2011 for Linux* Installation Guide and Release Notes

Non-Volatile Memory Cache Enhancements: Turbo-Charging Client Platform Performance

Intel Desktop Board DQ35MP. MLP Report. Motherboard Logo Program (MLP) 5/7/2008

Embedded and Communications Group January 2010

Intel Math Kernel Library 10.3

ITTIA DB SQL Em bedded Dat abase and VxWorks

Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround

NSIGHT ECLIPSE EDITION

Innovating and Integrating for Communications and Storage

Building an Android* command-line application using the NDK build tools

Intel Thread Checker 3.1 for Windows* Release Notes

Using Intel VTune Amplifier XE for High Performance Computing

Installation Guide and Release Notes

Intel Server Board S1200BTL

Intel Parallel Studio XE 2015

Software Evaluation Guide for WinZip 15.5*

Bitonic Sorting Intel OpenCL SDK Sample Documentation

Server Test Submission (STS) Report. Server WHQL Testing Services Enterprise Platforms and Services Division

Yocto Overview. Dexuan Cui Intel Corporation

Overview of Intel Parallel Studio XE

Intel Server Board S2400EP Intel Server System R1000EP

Intel Cloud Builder Guide: Cloud Design and Deployment on Intel Platforms

Intel Server Board S2600WP Intel Server System H2600WP

Forging a Future in Memory: New Technologies, New Markets, New Applications. Ed Doller Chief Technology Officer

Software Evaluation Guide Adobe Premiere Pro CS3 SEG

Intel Dynamic Platform and Thermal Framework (Intel DPTF), Client Version 8.X

Event Service API for Windows Operating Systems

GUID Partition Table (GPT)

Intel Server Board S1200BTS

Intel Cluster Ready Allowed Hardware Variances

Intel Server Board S2600IP

Intel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003

IA-64 Porting Methodology. An Application Guide

Intel Server Board S1200KP

Intel Server Board S1400FP

Bitonic Sorting. Intel SDK for OpenCL* Applications Sample Documentation. Copyright Intel Corporation. All Rights Reserved

Intel Integrated Native Developer Experience 2015 (OS X* host)

Intel Embedded Overview

Introduction to Intel Fortran Compiler Documentation. Document Number: US

Intel Server Board S2600CP Intel Server System P4000CP

Solution Recipe: Increase Data Protection Using Intel vpro Technology

Getting Compiler Advice from the Optimization Reports

Transcription:

White Paper Robert Mueller-Albrecht Developer Products Division Intel Corporation Debugging on Intel Platforms

Introduction...3 Overview...3 Servers and Workstations...4 Support for Linux*, Mac OS X*, and Windows*...4 Support for Linux* and Mac OS* Only...4 Linux*-Only Support...5 Mac OS*-Only Support...5 Windows*-Only Support...6 Low-Power IA-32 and Consumer Electronics...6 Embedded Platforms...6 Intel Atom Technology and Consumer Electronics...6 Linux*-Only Support...6 Windows*-Only Support...7 Conclusions...8 Where to find them...8 References...10 2

Introduction This white paper provides a high-level overview of debugging solutions for Intel processor-based platforms from Intel as well as other debug solution providers for technical decision makers. It catalogues some of the relevant debuggers and points out some of the features and benefits of each with references to additional information. Overview Intel architecture and it s many variants have over the years encouraged and fostered a rich ecosystem of debug solutions for all the arenas that Intel architecture based platforms can be found. This includes the very small starting with cellular, handheld and Mobile Internet Device as well as location service applications. It also includes the very large like many-core clusters used in highperformance computing and server applications. Finally it also includes everything in between. This rich ecosystem of development tools solutions and debug solutions is part of what led to the huge number of developers comfortable and familiar with Intel architecture today. With the advent of more and more multi - and many core processors requires parallel programming models are being used more as well. Using more advanced parallel programming techniques makes it however also more difficult to keep track of all active threads and their possible data interdependencies. This is where the feature sets and user interfaces of modern debug solutions come in. Advanced parallel programming techniques call for advanced parallel debugging techniques to keep the executions flow and the analysis of runtime problems straight forward and allow for speedy error corrections. Additionally Intel architecture finds its way into an increasing number of new usage models. The new generation of low-power IA-32 based processors gain popularity in such diverse places as invehicle infotainment, internet- and location service centric devices. The Intel Compilers strive to not only provide rich and complete symbol information and work seamlessly together with our Intel Debugger technology, but also to support the wide ecosystem of debug solutions provided by the wide software ecosystem. To find out more about the Intel Debug Solution please have a look at the following articles and whitepapers: Intel Parallel Debugger Extension for Microsoft Visual Studio* http://software.intel.com/en-us/articles/parallel-debugger-extension/ Intel Debugger for Linux* http://software.intel.com/en-us/articles/idb-linux/

The Intel Debugger works with native compilers, the Intel C++ Compiler, the Intel Fortran Compiler and selected third party compilers. This range of capabilities provides a great deal of flexibility in mixing and matching development tools to suit various development environments. In this paper we would like to introduce some of the debug solutions from across the Intel architecture targeted software ecosystem and 3 rd party vendors. Servers and Workstations This section discusses debugging functionality for platforms based on IA-32, Intel 64 and IA-64 processors, running Linux*, Mac OS X*, or Windows* operating systems. Support for Linux*, Mac OS X*, and Windows* The Intel Debug solutions provide quality debugging features across all supported platforms for C/C++ as well as Fortran source level debugging. Specific details can be found in the Intel Debugger white paper (http://software.intel.com/en-us/articles/idb-linux/) and the Intel Parallel Debugger Extension whitepaper (http://software.intel.com/en-us/articles/parallel-debugger-extension/). Currently for Max OS X* only command line debug support via the Intel Debugger is available. Support for Linux* and Mac OS* Only GDB* (http://www.gnu.org/software/gdb/gdb.html), the GNU Project Debugger, 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. GDB can perform four primary functions (plus other functions in support of these) to help you catch bugs in the act: Start your program, specifying anything that might affect its behavior. Make your program stop on specified conditions. Examine what has happened, when your program has stopped. Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another. The program being debugged can be written in C, C++, Pascal, Objective- C, or many other languages. Those programs might be executing on the same machine as GDB (native) or on another machine (remote). GDB can run on most popular UNIX and Microsoft Windows variants. 4

The TotalView* debugger (http://www.totalviewtech.com/) is a powerful, sophisticated, and programmable tool that simplifies the debugging and analysis of serial, multi-threaded, or multi-process applications. The MemoryScape* memory debugger also at (http:///www.totalviewtech.com/) is an easy to use tool for manual analysis of memory usage and automated detection of memory errors such as leaks and bounds errors in serial, multi-threaded or multi-process applications. Linux*-Only Support Allinea DDT* (Distributed Debugging Tool) (http://www.allinea.com/index.php?page=48) is an advanced and comprehensive graphical debugger for scalar, multi-threaded and large-scale parallel applications that are written in C, C++, or Fortran. The ReplayEngine* add on to the TotalView* debugger discussed above, (http://www.totalviewtech.com/) simplifies troubleshooting and root cause analysis in serial, multi-threaded and multi-process applications. It records program execution, capturing hard to reproduce error scenarios and allowing the developer to follow clues backwards through execution history from the failure to the cause. Mac OS*-Only Support Xcode* 3.0 (http://www.apple.com/macosx/developertools/xcode.html) is a fast way for developers to create Mac OS X* applications and an easy way to take advantage of new Apple technologies. Xcode* 3.0 brings together the ease of use of Mac OS X*, the power of UNIX, and a mixture of high-performance development technologies. Xcode* works with numerous other tools available with Mac OS X*, such as the integrated user interface construction application, compilers such as GCC, javac, and Jikes*, and debuggers such as GDB*. It s a challenge to debug full-screen applications such as games. Where do you put the debug window? With Xcode* 3.0 s graphical remote debugging, all of Xcode* s powerful debugging features, such as data formatters, Fix, and Continue, are available for debugging applications on remote machines. Xcode* even helps keep your data secure by using an encrypted connection to the remote debugging session.

Windows*-Only Support The Windbg* (http://www.microsoft.com/whdc/devtools/debugging/default.mspx) and Microsoft Visual Studio* (http://msdn.microsoft.com/vstudio/) Debuggers are two Debugging Tools for Windows* to debug drivers, applications, and services on systems running Windows XP*, Windows Server 2003*, Windows Server 2008*, Windows Vista*, and Windows 7*, as well as debugging the operating system itself. Versions of the Debugging Tools for Windows* packages are available for IA-32, native IA-64 and native Intel 64 platforms. Low-Power IA-32 and Consumer Electronics Debugging applications running on embedded platforms and platforms based on Intel Atom technology and on the new generation of Intel Media Processors are included in this section. Embedded Platforms Both GDB* (http://www.gnu.org/software/gdb/gdb.html) and the Intel Debugger (http://software.intel.com/en-us/articles/idb-linux/) (each mentioned previously) support debugging on systems running variants of Linux*, via Remote Agent. The QNX Momentics* Tool Suite (http://www.qnx.com/products/tools/) provides a comprehensive toolset to build and optimize applications. The Wind River VxWorks Workbench* IDE (http://www.windriver.com/products/workbench/)* provides an open, unifying framework for use by project teams. The MontaVista Linux DevRocket* IDE (http://www.mvista.com/devrocket/)* provides the tools and functionality you need to develop and deploy system software and applications. Support for debugging on Windows XP* Embedded systems is provided by the Microsoft Embedded Studio* (http://www.microsoft.com/windows/embedded/xpe/deven.mspx). Intel Atom Technology and Consumer Electronics Linux*-Only Support Intel Debugger - For platforms based on the Intel Atom processor and the Intel Media Processors you can rely on Intel s product offering with the Intel C++ Software Development Tool Suite for Linux* OS Supporting Mobile Internet Devices. (http://www.intel.com/software/products/mid) 6

This is a complete tool suite containing an Intel C++ Application Debugger targeting TCP/IP based application cross development between a Linux* host and an Intel Atom processor based small form-factor target device. More details can be found at (http://software.intel.com/en-us/articles/cross-application-debugging) It also includes an Intel C++ JTAG Debugger targeting device manufacturers (OEMs and ODMs) to assist them with OS kernel customization and driver development. This debugger is JTAG standard based and thus only tends to connect to early reference platforms. It does however allow OS level debugging on even very early hardware with a very incomplete software stack. It even permits reflashing of system BIOS and will in upcoming releases support NAND flashing of bootloader and OS image. More information can be found at (http://software.intel.com/en-us/articles/whitepaper-collection-for-the-intel39s-softwaredevelopment-tool-suite-targeting-mid/) Both debuggers included in the discussed tools suite come with the new Eclipse Rich Client Platform based rich, convenient, and user friendly graphical user interface. For more traditional development models targeting not Intel Media Processor based platforms or Mobile Internet Devices, but rather Netbooks or similar slightly larger form factors it is recommended to use the standard Intel Debugger as included with the Intel Fortran Compiler or Intel C++ Compiler. (http://software.intel.com/en-us/articles/idb-linux) GDB* (http://www.gnu.org/software/gdb/gdb.html), the GNU Project Debugger, is a widely available debugger that is part of most any Linux* OS and GNU build environment installation. It is the de facto standard for Linux* debugging and its features have been outlined above when discussing Linux* application debugging on workstation and personal computer platforms. What is additionally interesting about GDB* in the Mobile Internet Device context is it s support for TCP/IP based remote debug concepts using an application called gdbserver. There are also a multitude of open-source solutions looking to provide basic graphical user interfaces (CDT*, DDD*) for GDB* as well as system debug adaptations from various vendors. Windows*-Only Support Since Windows* XP and Windows* 7 based Intel Atom processor designs will in general be Netbooks or Ultra-Mobile PCs we are looking at a development methodology similar to regular notebook or laptop targeted applications. If you are using concurrent programming techniques and parallelism Intel s Intel Parallel Debugger Extension for Microsoft Visual Studio* (http://software.intel.com/en-us/articles/parallel-debugger-extension/)

may be helpful for you. Additionally Microsoft* offers the following debug solutions: The Windbg* (http://www.microsoft.com/whdc/devtools/debugging/default.mspx) and Microsoft Visual Studio* (http://msdn.microsoft.com/vstudio/) Debuggers are two Debugging Tools for Windows* to debug drivers, applications, and services on systems running Windows XP*, Windows Server 2003*, Windows Server 2008*, Windows Vista*, and Windows 7*, as well as debugging the operating system itself. Versions of the Debugging Tools for Windows* packages are available for IA-32, native IA-64 and native Intel 64 platforms. Conclusions Intel enables effective debugging on its platforms. There are a variety of quality debuggers to choose from that work well with most compilers. This variety provides a great deal of flexibility in mixing and matching development tools to suit any given development environment. Where to find them References throughout this white paper give sources to obtain additional information about the featured debuggers, as well as to obtain the debuggers themselves. Native debuggers are typically provided with the host operating system (or as a component of the compilers or other development tools intended for use on those systems). The Intel Debugger and Intel Parallel Debugger extension are value-added components of the Intel Compilers. The Intel Compilers can be purchased, or an evaluation copy can be downloaded, from the Intel Software Development Products Web pages (http://www.intel.com/software/products/). Customers have access to product updates and product support through the following Web pages: Intel Support and Downloads: http://www.intel.com/support/ Intel Software Development Products Support: http://www.intel.com/software/products/support/ Intel Software Development Products Self Help: http://www.intel.com/support/performancetools/index.htm Intel Software Network discussion forums: http://software.intel.com/en-us/forums/ 8

Intel Software Network Articles http://software.intel.com/en-us/articles/ Intel Premier Support: http://premier.intel.com/

References 1. Intel Debugger white papers: Intel Parallel Debugger Extension for Microsoft Visual Studio* http://software.intel.com/en-us/articles/parallel-debugger-extension/ Intel Debugger for Linux* http://software.intel.com/en-us/articles/idb-linux/ 2. GNU Project Debugger*: http://www.gnu.org/software/gdb/gdb.html 3. TotalView Debugger*: http://www.totalview.com/ 4. Allinea DDT* (Distributed Debugging Tools): http://www.allinea.com 5. Xcode*: http://www.apple.com/macosx/developertools/xcode.html 6. Windbg*: http://www.microsoft.com/whdc/devtools/ debugging/default.mspx 7. Microsoft Visual Studio*: http://msdn.microsoft.com/vstudio/ 8. Windows Embedded Studio*: http://www.microsoft.com/ windows/embedded/xpe/deven.mspx 10

For product and purchase information visit: www.intel.com/software/products Intel, the Intel logo, Intel. Leap ahead. and Intel. Leap ahead. logo, Pentium, Intel Core, and Intel Atom are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Copyright 2009, Intel Corporation. All Rights Reserved. 0505/DXM/ITF/PDF 300348-003