anchor.diff:                                [global,{capture,first,list}]),
       [Symbol|_] = lists:usort(Symbols),
       JitFile = DataFile ++ ".jit.data",
  -    "" = os:cmd("perf inject -j -i " ++ DataFile ++ " -o " ++ JitFile),
  -    Anno = os:cmd("perf annotate --stdio -i " ++ JitFile ++ " " ++ Symbol ++ ""),
  +    "" = os:cmd("perf "++ BuildIdDir ++" inject -j -i " ++ DataFile ++ " -o " ++ JitFile),
  +    Anno = os:cmd("perf "++ BuildIdDir ++" annotate --stdio -i " ++ JitFile ++ " " ++ Symbol ++ ""),
       case re:run(Anno,"Disassembly of section .text:") of
           {match,_} ->
               ok;
  
positive.code:     end.
      
  annotate(Config) ->
      DataFile = filename:join(
                   proplists:get_value(priv_dir, Config),
                   atom_to_list(?FUNCTION_NAME) ++ ".data"),
      os:cmd("perf record -k mono -q -o " ++ DataFile ++ " " ++
             "erl +S 1 +JPperf true -noshell -eval '[lists:seq(1,10000) || _ <- lists:seq(1,1000)].' -s init stop"),
      Script = os:cmd("perf script -i " ++ DataFile),
  
      %% When doing "perf inject" the symbol of each function is changed
      %% from $lists:seq_loop/3 to lists:seq_loop/3. I don't know why that
  
negative.code:                                    [{capture,all_but_first,list}]),
              case list_to_integer(Vsn) >= 5 of
                  true ->
                      BuildIdDir = "--buildid-dir " ++
                          filename:join(
                            proplists:get_value(priv_dir, Config),
                            ".debug"),
                      DataFile = filename:join(
                                   proplists:get_value(priv_dir, Config),
                                   "init_test.data"),
                      Cmd = "perf " ++ BuildIdDir ++ " record -q -o " ++ DataFile ++ " ls",
                      os:cmd(Cmd),
                      Script = os:cmd("perf " ++ BuildIdDir ++ " script -i " ++ DataFile),
                      ct:log("~ts",[Script]),
                      case re:run(Script, "^\\W+ls",[multiline]) of
                          {match, _} ->
                              [{sobefore,get_tmp_so_files()},
                               {buildiddir,BuildIdDir}|Config];
                          nomatch ->
                              {skip, "could not run `"++ Cmd ++"`"}
                      end;
  