Intel Distribution for GDB A Debugger for Cross-Architecture Applications.
What Is GDB?
GNU Debugger (GDB) helps programmers find and fix application issues. C, C++, and Fortran are supported, thus you can:
- Execute your software step-by-step.
- Examine memory and variables.
- Establish breakpoints to halt the process.
- Follow your program’s flow.
- GDB is particularly helpful for troubleshooting and verifying the proper operation of complicated applications.
Overview
Quickly Debug Parallel and Multithreaded Code
Implementing and deploying high-performance, data-centric applications across many architectures requires a debugger that can manage thousands of threads operating concurrently on every system device.
Complementing Intel compilers and libraries is the Intel Distribution for GDB application debugger. You may effectively and concurrently debug cross-platform parallel and threaded applications created in C, C++, SYCL, OpenMP, or Fortran with its unified debugging experience.
- Get complete command over active programs, including single stepping and breakpoints.
- To swiftly analyze variables, read/write memory and registers, and check the hardware state while the program is halted, debug both CPU and GPU code in a single session.
- You may debug using a GUI front end or the console-based debugging interface from the command line on your local system or any remote machine.

Features of Intel Distribution for GDB
Superior Language Debugger
Developers may effectively examine cross-architecture code executed on Intel CPUs, GPUs, and accelerator devices by using the application debugger.
Debugging on Any Device, Anywhere
Multitarget debugging allows you to easily debug on a local or distant computer, as well as on the host and directly on the device.
Widespread Assistance for the Development Environment
On the command line, you can utilize the Intel Distribution for GDB application debugger. It easily fits in with development environments built on top of Eclipse, Microsoft Visual Studio, and Microsoft Visual Studio Code.
Special Improvements to Debugger
As a superset of GDB (GNU Project Debugger), the application debugger offers sophisticated debugging capabilities for programs that operate on FPGAs, GPUs, and Intel CPUs. These special commands and capabilities help developers identify and address problems more efficiently.
The GNU Project debugger (gdb) is a superset of the Intel Distribution for GDB (gdb-oneapi). A subset of the current GDB commands and functionalities are extended by gdb-oneapi, which may also sometimes introduce new debugger instructions. Debugging SYCL C++ and Intel OpenMP workloads (also known as kernels) on Intel GPUs requires the usage of gdb-oneapi. Debugging SYCL and OpenMP programs written in C, C++, and Fortran is the main emphasis of the extra functionality of gdb-oneapi. Additional bug fixes and pretty-printing support for a number of important SYCL types are also included in the gdb-oneapi debugger.
Notes:
- Debugging OpenCL kernels on a GPU is not supported by the gdb-oneapi debugger. It is possible to debug an OpenCL kernel on an Intel CPU.
- Additional GDB extensions that support CPU instructions and capabilities specific to Intel CPUs may be discovered while using gdb-oneapi to debug a program running on an Intel CPU.
A Few Important Additions to the Intel Distribution for GDB
- When debugging GPU kernel code, you may inspect SIMD lanes, move between lanes and threads, and view variables and device information.
- Make use of the gdb-oneapi IDE extensions for Visual Studio and Visual Studio Code (also known as VSCode).
- When debugging a GPU kernel, make use of debugger capabilities including source stepping, expression evaluation, call stack inspection, breakpoint condition definition, non-stop mode, scheduler-locking configuration modification, and thread/lane switching.
- Intel GPU machine code may be disassembled and shown as Intel GPU assembly language.
- Connect gdb-oneapi to a GPU workload that is currently executing.
- In the same debug session, debug both the GPU and host application code.
- In a single debug session, debug several GPUs.
- Examine global/local indices and GPU work items using convenience variables.
- Make inferior-specific breakpoints that only strike the designated inferior.
- Print Intel Processor Trace (Intel PT) PTWRITE payloads from the function-call and instruction histories (available exclusively on Intel CPUs).
- On compatible Intel CPUs only, read and write Intel Advanced Matrix Extensions (Intel AMX) registers.
Modified commands included in Intel Distribution for GDB
Command | Description |
Info threads [-stopped] | SIMD lane support – Prints additional information about SIMD lanes Allows filtering to show only the stopped threads |
Thread [thread-id:lane] | SIMD lane support – Allows switching the context to a specific SIMD lane within a thread |
Thread apply [ thread-id[:lane]| all | all-lanes [-ascending]] [ command] | SIMD lane support – the command can apply a command also to all/ selected active SIMD lanes |
Commands [command-list] end | SIMD lane support – additional ‘/a’ modifier. |
Record function-call-history | Now shows auxiliary information which can be omitted by ‘/s’ modifier” |
Break [location] inferior[inferior-num] [if [condition]] | Sets an inferior specific breakpoint |
New commands included in Intel Distribution for GDB
Info devices | Display information about available GPU devices | |
Set/show scheduler-locking-eval | Modify run behavior of GPU threads on break/step | |
Maint jit dump [addr] [filename] | Output a JIT object with specific address to the desired file for offline inspection |
Specifications
Category | Specifications |
---|---|
Processors | – Intel Xeon Scalable processors |
– Intel Xeon processors | |
– Intel Core Ultra processors | |
– Intel Core processors | |
– Intel Atom processors | |
GPUs | – Intel Arc graphics |
– Intel graphics | |
– Intel Data Center GPU Flex Series | |
– Intel Data Center GPU Max Series | |
FPGAs | – FPGA emulation |
Programming Languages | – SYCL |
– C, C++ | |
– Fortran | |
– OpenMP | |
Requirements | – Requires Microsoft Visual Studio on Windows |
Host and Target OS | – Windows |
– Linux | |
Development Environments | – Microsoft Visual Studio and Microsoft Visual Studio Code |
– Eclipse IDE | |
– Console-based debugging from the command line |