• 2021.4
  • 09/27/2021
  • Public Content
Contents

Debug Versus Release Libraries

The following table details the Intel® oneAPI Threading Building Blocks (oneTBB) dynamic shared libraries that come in debug and release versions.
Library
Description
When to Use


tbb_debug
tbbmalloc_debug
tbbmalloc_proxy_debug
tbbbind_debug

These versions have extensive internal checking for correct use of the library.
Use with code that is compiled with the macro
TBB_USE_DEBUG
set to 1.


tbb
tbbmalloc
tbbmalloc_proxy
tbbbind

These versions deliver top performance. They eliminate most checking for correct use of the library.
Use with code compiled with
TBB_USE_DEBUG
undefined or set to zero.
Test your programs with the debug versions of the libraries first, to assure that you are using the library correctly.  With the release versions, incorrect usage may result in unpredictable program behavior.
oneTBB supports Intel® Inspector, Intel® VTune™ Profiler and Intel® Advisor. Full support of these tools requires compiling with macro
TBB_USE_PROFILING_TOOLS=1
. That symbol defaults to 1 in the following conditions:
  • When
    TBB_USE_DEBUG=1
    .
  • On the Microsoft Windows* operating system, when
    _DEBUG=1
    .
The oneTBB API Reference section explains the default values in more detail.
The instrumentation support for Intel® Inspector becomes live after the first initialization of the task library. If the library components are used before this initialization occurs, Intel® Inspector may falsely report race conditions that are not really races.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.