Use new Pause and Resume API from Intel VTune Amplifier XE 2011

Since some users only collect performance data in specific sections of their code, they like to use "Pause and Resume API" to control data collection. VTune™ Performance Analyzer supports this powerful function. As a next generation of performance analyzing tool, Intel VTune™ Amplifier XE 2011 also supports this feature, however some APIs names have changed.

The main change is that the new tool uses static linking libraries instead of dynamic libraries. In addition, libraries name have changed.

Where is the include file?

Amplifier XE 2011\include\ittnotify.h, for Windows

vtune_amplifier_xe/include/ittnotify.h, for Linux

The user has to add new item into INCLUDE PATH of project's property.


Where is the library file?

Amplifier XE 2011\lib32(lib64)\ittnotify.lib, for Windows

vtune_amplifier_xe/lib32(lib64)/libittnotify.a, for Linux

The user has to add new item into LIB PATH of project's property.


The user also has to add new library name into Linker's Input dialog


Please see a simple example below that shows how Pause and Resume API work in user's code.

// test_itt_api.cpp : Defines the entry point for the console application.



#include "stdafx.h"

#include "ittnotify.h"


void foo_data_collected()


         for (int i=0; i<10000000L; i++);



void foo_data_not_collected()


         for (int i=0; i<10000000L; i++);



int _tmain(int argc, _TCHAR* argv[])


          // Assume that data collector was paused in user interface



          // Now resume data collecting




          // Pasue data collecting again




          // Resume data collecting again




          // The user shouldn't see data collecting in foo_data_not_collected() in result


          return 0;


After building above code and selecting Hotspots as Analysis Type, click "Start Paused" button to collect data. Data will be collected when __itt_resume() is executed.


Now we can observe the result of Hotspots Analysis; only function foo_data_collected() data is captured.


For more complete information about compiler optimizations, see our Optimization Notice.




I'm trying to use ITT api on windows (Visual Stuvio 2010, VTUNE 2015).

I didi all steps and get this error when I try to build:

error LNK2001: unresolved external symbol ___itt_pause_ptr__3_0

I'v linked the libnotify.lib

Any thoughts?



I have the same problem on Linux. unable to link __itt_resume_ptr__3_0 or __itt_pause_ptr__3_0
could you help me with this please?

Oleg Iegorov

The API looks good and even works on Windows. But on Linux, using VTune Amplifier XE 2011 (build 128765), it does not link. The link fails unable to find the __itt_resume_ptr_ or __itt_pause_ptr_. Both entries are there in the objdump output of the libittnotify.a in the lib64 directory but they are marked as .data.

If you have any info on this, please let me know.

Bob Davies