// given a domain that defines geteip and getebp, // walk the stack starting at fp. // certainly could use some generalizing and cleanup. @define frmwlk_pclist(tgtdom) { @local fp, lst, i; lst = [tgtdom.geteip()]; fp = tgtdom.getebp(); while(fp != 0) { @local fptr; fptr = (unsigned long *){tgtdom}fp; append(lst, *(fptr + 1)); fp = *fptr; } return lst; }