Overview
Product Contents
Special Features
New Features
Installation Notes
Known Limitations
Documentation
Technical Support
Additional Information
Copyright and Legal Information
To receive technical support and updates, you need to register your Intel Software Product. See the Technical Support section.
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.
Graphical User Interface (GUI)
Optional Gdb-like user interface
Debugging massively parallel processing (MPP) applications
Starting the debugger under Emacs
A GUI is now available. Just use the -gui flag when
invoking the debugger from the Linux command line.
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 MPI-1 applications compiled with mpich
is
supported to the extent described in the idb manual (Chapter 19).
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.
idb -gdb -fullname
For GDB mode operation, do not load the idb.el
file
documented in the manual.
All platforms:
Pentium®:
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.
The ability for users to easily disassemble functions has been improved. The "lfi (<address>)" alias has been provided to support this improvement.
On Pentium® processors, the debugger can now show the stack strace through a signal handler call.
Display of floating point registers using the "print" command has been improved.
source <install-dir-path>/bin/idbvars.sh (.csh)
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 is not yet supported. This includes debugging the child process of an application that calls fork.
Snapshots are not yet supported as described in the manual.
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 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
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.
This version of the debugger provides a GUI. A series of
issues are noted below.
During an MPP debugging session, neither gdb compatibility mode
nor the GUI is available.
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.
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 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.
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.
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.
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++-*).
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:
These problems will be resolved in a future release.
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.
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 . |
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.
When submitting problems or issues, please include a reproducer that is as complete as possible.
Information on Intel software development products is available at http://www.intel.com/software/products.
Some of the related products include:
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.