scatterplot_cr3_switch:1,
scatterplot_wake_to_halt:1,
scatterplot_io:1,
+ scatterplot_vmexit_eip:1,
histogram_interrupt_eip:1,
interval_mode:1,
dump_cooked:1,
.scatterplot_unpin_promote=0,
.scatterplot_cr3_switch=0,
.scatterplot_wake_to_halt=0,
+ .scatterplot_vmexit_eip=0,
.histogram_interrupt_eip=0,
.dump_cooked = 0,
.dump_all = 0,
exit(1);
}
+ if(opt.scatterplot_vmexit_eip)
+ scatterplot_vs_time(ri->tsc, h->rip);
+
if(h->exit_reason > h->exit_reason_max)
{
fprintf(warn, "h->exit_reason %lx > exit_reason_max %lx!\n",
OPT_SCATTERPLOT_CR3_SWITCH,
OPT_SCATTERPLOT_WAKE_TO_HALT,
OPT_SCATTERPLOT_IO,
+ OPT_SCATTERPLOT_VMEXIT_EIP,
OPT_HISTOGRAM_INTERRUPT_EIP,
/* Interval options */
OPT_INTERVAL_CR3_SCHEDULE_TIME,
G.output_defined = 1;
opt.scatterplot_wake_to_halt=1;
break;
+ case OPT_SCATTERPLOT_VMEXIT_EIP:
+ G.output_defined = 1;
+ opt.scatterplot_vmexit_eip=1;
+ break;
case OPT_SCATTERPLOT_IO:
{
char * inval;
.group = OPT_GROUP_EXTRA,
.doc = "Output scatterplot of wake-to-halt.", },
+ { .name = "scatterplot-vmexit-eip",
+ .key = OPT_SCATTERPLOT_VMEXIT_EIP,
+ .group = OPT_GROUP_EXTRA,
+ .doc = "Output scatterplot of vmexit eips.", },
+
{ .name = "scatterplot-io",
.key = OPT_SCATTERPLOT_IO,
.arg = "port",