int main () { bkpt = 0; param_reg (120, 130, 32000, 33000); param_reg (130, 120, 33000, 32000); return 0; }
VOID add_val(unsigned int fid, CONTEXT *ctxt, unsigned int pid, UINT64 sp) { trace_enter(); if (param_val[fid][pid]->size() >= MAX_VALS_TO_COLLECT) { trace_leave(); return; } UINT64 val; if (pid < 1 + nb_param_int[fid]) { PIN_GetContextRegval(ctxt, param_reg(pid), (UINT8*) &val); } else { unsigned int sp_offset = pid - (1 + nb_param_int[fid]); UINT64* addr = (UINT64*) (sp + sp_offset * 8); val = *addr; } if (val != 0) param_val[fid][pid]->push_front(val); trace_leave(); }