Usage: sudo perf record -e intel_pt//u --filter='filter 0x400000 / 0x1000 @./a.out' ./a.out 123
a.out is my program (for loop, call using function pointer and use of longjump) and 123 is the argument. Output: [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 1.171 MB perf.data ] Output contains mostly MTC packets and no TNT or TIP packets. I am on the latest mainline version of kernel (b67be92) and perf version perf version 4.8.gb67be9. What could be the problem? I am using it wrong? Thanks
#include <iostream>
#include <setjmp.h>
jmp_buf go;
int foo()
{
return 5;
}
int bar()
{
longjmp(go,1);
return 6;
}
int main(int argc, char* argv[])
{
bool jumped = false;
int (*ptr) ();
// if arg then long jump
if (argc != 2)
{
ptr = foo;
} else {
ptr = bar;
}
for (int i = 0; i < 50000000; ++i)
{
++i;
--i;
}
setjmp(go);
if (!jumped)
{
jumped = true;
ptr();
} else {
std::cout << "AFTER long jump." << std::endl;
}
return 0;
}
a.out
Description: Binary data

