@@ -3122,6 +3122,26 @@ static int parse_xed(const struct option *opt __maybe_unused,
3122
3122
return 0 ;
3123
3123
}
3124
3124
3125
+ static int parse_call_trace (const struct option * opt __maybe_unused ,
3126
+ const char * str __maybe_unused ,
3127
+ int unset __maybe_unused )
3128
+ {
3129
+ parse_output_fields (NULL , "-ip,-addr,-event,-period,+callindent" , 0 );
3130
+ itrace_parse_synth_opts (opt , "cewp" , 0 );
3131
+ nanosecs = true;
3132
+ return 0 ;
3133
+ }
3134
+
3135
+ static int parse_callret_trace (const struct option * opt __maybe_unused ,
3136
+ const char * str __maybe_unused ,
3137
+ int unset __maybe_unused )
3138
+ {
3139
+ parse_output_fields (NULL , "-ip,-addr,-event,-period,+callindent,+flags" , 0 );
3140
+ itrace_parse_synth_opts (opt , "crewp" , 0 );
3141
+ nanosecs = true;
3142
+ return 0 ;
3143
+ }
3144
+
3125
3145
int cmd_script (int argc , const char * * argv )
3126
3146
{
3127
3147
bool show_full_info = false;
@@ -3213,6 +3233,10 @@ int cmd_script(int argc, const char **argv)
3213
3233
"Decode instructions from itrace" , parse_insn_trace ),
3214
3234
OPT_CALLBACK_OPTARG (0 , "xed" , NULL , NULL , NULL ,
3215
3235
"Run xed disassembler on output" , parse_xed ),
3236
+ OPT_CALLBACK_OPTARG (0 , "call-trace" , & itrace_synth_opts , NULL , NULL ,
3237
+ "Decode calls from from itrace" , parse_call_trace ),
3238
+ OPT_CALLBACK_OPTARG (0 , "call-ret-trace" , & itrace_synth_opts , NULL , NULL ,
3239
+ "Decode calls and returns from itrace" , parse_callret_trace ),
3216
3240
OPT_STRING (0 , "stop-bt" , & symbol_conf .bt_stop_list_str , "symbol[,symbol...]" ,
3217
3241
"Stop display of callgraph at these symbols" ),
3218
3242
OPT_STRING ('C' , "cpu" , & cpu_list , "cpu" , "list of cpus to profile" ),
0 commit comments