Intel® Debugger for Linux* Version 8.1-7
Release Notes

Contents

Overview
Product Contents
Special Features
New Features
Installation Notes
Known Limitations
Documentation
Technical Support
Additional Information
Copyright and Legal Information

Overview

Intel® Debugger (idb) for Linux*, version 8.1-7.

To receive technical support and updates, you need to register your Intel Software Product. See the Technical Support section.

Product Contents

A fully symbolic debugger for the Linux platform. Key features allow you to:

The debugger supports the debugging of programs written in C, C++, Fortran, and Fortran 90. The debugger allows evaluation of expressions using the syntax of the source programming language.

For full information about the the debugger, please refer to the following manual:

Intel® Debugger Manual

which is found in the installation directory where these release notes reside.

Special Features

Graphical User Interface (GUI)
Optional Gdb-like user interface
Debugging massively parallel processing (MPP) applications
Starting the debugger under Emacs

Graphical User Interface (GUI)

A GUI is now available. Just use the -gui flag when invoking the debugger from the Linux command line.

Optional Gdb-like user interface

Users that prefer the gdb command line interface have the option of switching on the gdb-like interface. The gdb command set and debugger output are supported as described in the manual. To activate gdb mode, use the -gdb invocation command line option, or set the debugger variable $cmdset to gdb after starting the debugger, e.g.:

(idb) set $cmdset="gdb"

Debugging massively parallel processing (MPP) applications

Debugging MPI-1 applications compiled with mpich is supported to the extent described in the idb manual (Chapter 19).

Starting the debugger under Emacs

The manual describes how to start the debugger in default mode under Emacs. To start the debugger in GDB mode under Emacs, do the following.

  1. Select "Debugger..." under the Emacs "Tools" menu.
  2. At the "Run gdb (like this): " prompt, type idb -gdb -fullname

For GDB mode operation, do not load the idb.el file documented in the manual.

New Features

All platforms:

Thread Local Storage
Improved function disassembly
Improved handling of floating point registers

Pentium®:

Stacktrace through signal handlers

Thread Local Storage

Variables in thread local storage are declared in a multi-threaded program with the keyword __thread. The debugger now supports manipulations of these variables. However, the debugger may not correctly locate a variable in thread local storage on the ItaniumŪ and the Intel® EM64T platforms because the IntelŪ compilers on these platforms generate incorrect location description for such a variable. The debugger team is working with the compiler team to have this issue resolved.

Improved function disassembly

The ability for users to easily disassemble functions has been improved. The "lfi (<address>)" alias has been provided to support this improvement.

Stacktrace through signal handlers

On Pentium® processors, the debugger can now show the stack strace through a signal handler call.

Improved handling of floating point registers

Display of floating point registers using the "print" command has been improved.

Installation Notes

The following applies when the debugger is packaged with Intel® compiler versions 8.x or later:

The environment variable, PATH, can be set to the location of installed binaries. Debugger configuration scripts are generated during installation. They contain the appropriate values of PATH and MANPATH.

The environment can be set up by sourcing the scripts idbvars.sh (.csh):

source <install-dir-path>/bin/idbvars.sh (.csh)

Known Limitations

All platforms:
Debugging multi-threaded applications
Debugging multi-process applications, including programs that fork
Snapshots
Debugging optimized code
Watchpoints
Fortran modules
GUI
MPP Debugging Restrictions
Examining errno
Compilation Anomolies

Itanium®:
Function Breakpoints

Pentium®:
Source Correlation
Debugging functions in shared libraries
Running on RedHat 8.0, Redhat 9.0, or Fedora Core

Intel® Extended Memory 64 Technology (Intel® EM64T):
Processor support

Debugging multi-threaded applications

When debugging multi-threaded applications, probing mutexes and condition variables is not yet supported.

OpenMP specific concepts are also not yet supported.

Debugging multi-process applications, including programs that fork

Debugging multi-process applications is not yet supported. This includes debugging the child process of an application that calls fork.

Snapshots

Snapshots are not yet supported as described in the manual.

Debugging optimized code

Debugging optimized code is not yet fully supported. The debugger may not be able to see some function names, parameters, variables, or the contents of the parameters and variables when code is compiled with optimizations turned on. However, the "-debug extended" option is recommended (with "-O -g", for example) when compiling to debug optimized code.

Watchpoints

Watchpoints that are created to detect read access don't trigger as documented in the manual. Watchpoints that are created to detect write access don't trigger when a value identical to the original has been written. These restrictions are due to a limitation in the Linux operating system

Fortran modules

A globally defined Fortran module should be rescoped with a backtick (`) when referred to. For example, to set a breakpoint in the subroutine bar contained in a globally defined module foo, do

(idb) stop in `foo`bar

Please refer to the section titled "The print Command" in Chapter 8 of the manual for the rescoping syntax.

GUI

This version of the debugger provides a GUI. A series of issues are noted below.

MPP Debugging Restrictions

During an MPP debugging session, neither gdb compatibility mode nor the GUI is available.

Examining errno

In some cases (on some Linux variants), errno is treated as a per-thread entity, and is defined as a macro that does a look-up for (and then a fetch of) the actual value. In those cases, directing the debugger to examine the value of errno results in a message indicating that errno is not defined.

Function Breakpoints

On Itanium® processors, debugger breakpoints set in functions (via the "stop in" command) may not halt user program execution at the first statement. This is due to insufficient information regarding the function prolog. As a work around, use "stop at" to set a breakpoint on the desired statement.

Compilation Anomolies

Compilation with ICC using -ax{K|W|N|B|P} results in two copies of generated code for each function. One for IA32 generic code and one for CPU specific code. The symbol for each function then refers to an Auto CPU Dispatch routine that decides at run-time which one of the generated code sections to execute. Breakpoints that are set on these functions by name cause the application to stop in the dispatch routine.
Compilation using -fp causes the IA-32 EBP register be used as a frame pointer rather than a general purpose register. Debuggers and traceback handlers may not be able to properly unwind through a stack that contains a call to a function that is compiled without -fp in effect. If you compile with -g or -O0, -fp is implicitly enabled, but not if you specify a higher optimization level explicitly (such as -O2). If you intend to use the debugger or traceback on an application, and are using some level of optimization higher than -O0, you should also specify -fp to ensure that the debugger and traceback handler can use frame pointers.

Source Correlation

If the debugger outputs a warning about bad source correlation (Warning: bad source correlation found in <executable>. Further instances ignored.), this is because the compiler has exposed a bug in the linker.

Execute rpm -q binutils on your machine; if it shows a version earlier than 2.14.90.0.5, install binutils 2.14.90.0.5 or later. Download (from http://www.kernel.org) the appropriate .rpm file for your machine architecture and see the associated release.binutils.<version> page for additional information.

Note that installing an updated binutls package is known to fix the problem in most, but not all, cases.

Debugging functions in shared libraries

On Pentium® processors, stepping into functions that are in shared libraries doesn’t always show the correct stack trace when executing a "where" command. In these cases, executing a "return" will not cause execution to return to the correct place. The work around is to set a breakpoint on the desired return location (e.g. “<file>”:<line>), then issue the "cont" command.

Running on RedHat 8.0, Redhat 9.0, or Fedora Core

On Pentium® processors, running RedHat 8.0, Redhat 9.0, or Fedora Core, the compatibility C++ libraries should be installed in order for the debugger to function (compat-libstdc++-*).

Intel® EM64T Processor Support

On the Intel® EM64T platform, the debugger supports all the major features available on other platforms, and shares the same known issues and restrictions listed above.

One new feature on this platform introduced in this release is the dual-mode support, which enables the debugger to debug both the Intel® EM64T processes and the 32-bit processes. However, there are two known problems with this new feature:

  1. Watchpoints in the memory region above 0xffff0000 do not work because of a bug in the system call mprotect, which is invoked by the debugger to create watchpoints.
  2. The pagination support (controlled by the debugger variable $page) is disabled during a MPP debugging session.

These problems will be resolved in a future release.

Documentation

For full information about the debugger, please refer to the following manual:

Intel ® Debugger Manual

which is found in the installation directory where these release notes reside.

Notation Conventions

Release Notes and user guide documentation use the notation conventions listed in the following table:

Style Definition
This type style indicates an element of syntax, a reserved word, a keyword, a file name, or part of a program example (text appears in lowercase unless UPPERCASE is required)
This type style indicates what you type as input
This type style indicates an argument on a command line or an option's argument
[ items ] indicates that the items enclosed in brackets are optional
{ item | item } indicates a set of choices from which you must select one
... (ellipses) indicates that an argument can be repeated several times
icc is a placeholder for a valid compiler name such as icc, icpc or ifort.

Technical Support

Your feedback is very important to us. To receive technical support for the tools provided in this product and technical information including FAQ's and product updates, you need to register for an Intel Premier Support account at the Registration Center.

NOTE: Registering for support varies for release product or pre-release products (alpha, beta, etc) - only released products have support web pages on http://support.intel.com/.

To register for an account, please visit the Intel® Registration Center web site at http://www.intel.com/software/products/registrationcenter/index.htm. If you have forgotten your password, please email a request to: quadsupport@mailbox.intel.com. Please do not email your technical issue to this email address.

Submitting Issues

When submitting problems or issues, please include a reproducer that is as complete as possible.

Additional Information

Related Products and Services

Information on Intel software development products is available at http://www.intel.com/software/products.

Some of the related products include:

Disclaimer and Legal Information

The information in this manual is subject to change without notice and Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. This document and the software described in it are furnished under license and may only be used or copied in accordance with the terms of the license. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. The information in this document is provided in connection with Intel products and should not be construed as a commitment by Intel Corporation.

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, critical control or safety systems, or in nuclear facility applications.

Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.

The software described in this Release Note may contain software defects which may cause the product to deviate from published specifications. Current characterized software defects are available on request.

Intel, the Intel logo, Intel SpeedStep, Intel NetBurst, Intel NetStructure, MMX, i386, i486, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Celeron, Intel Centrino, Intel Xeon, Intel XScale, Itanium, Pentium, Pentium II Xeon, Pentium III Xeon, Pentium M, and VTune 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.

Copyright © 2002-2005, Intel Corporation.
Portions © 2001 Hewlett-Packard Development Group, L.P.
All Rights Reserved.