# Debug Versus Release Libraries

The following table details the Intel® Threading Building Blocks (Intel® TBB) dynamic shared libraries that come in debug and release versions.

Dynamic Shared Libraries Included in Intel® Threading Building Blocks
Library (*.dll, lib*.so, or lib*.dylib) | Description | When to Use
--- | --- | ---
`tbb_debug` `tbbmalloc_debug` `tbbmalloc_proxy_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` | 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.

### Tip

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.

Intel® TBB supports Intel® Parallel Inspector, Intel® Inspector XE, Intel® Parallel Amplifier, and Intel® VTune™ Amplifier XE. Full support of these tools requires compiling with macro `TBB_USE_THREADING_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 Intel® Threading Building Blocks Reference section explains the default values in more detail.

### Caution

The instrumentation support for Intel® Parallel Inspector and Intel® Inspector XE becomes live after the first initialization of the task library. If the library components are used before this initialization occurs, Intel® Parallel Inspector and Intel® Inspector XE may falsely report race conditions that are not really races.

Parent topic: Package Contents

## See Also

Intel® Threading Building Blocks Reference Manual
Initializing and Terminating the Library