Atsushi Nemoto wrote: > On Thu, 27 Jul 2006 21:03:07 +0200, "Franck Bui-Huu" <vagabon.xyz@xxxxxxxxx> wrote: >>>> + info.func = (void *)(pc - ofs); >>>> + info.func_size = ofs; /* analyze from start to ofs */ >> in get_frame_info(), there is the following condition to stop the >> prologue analysis >> >> if (info->func_size && i >= info->func_size / 4) >> break; >> >> Setting info.func_size = ofs may trigger this stop condition very >> early, specially if "ofs" is small...I would simply remove this >> condition since it's very empirical and IMHO not very usefull. > > Yes, that is what I wanted. Imagine if a exception happened on first > place on non-leaf function. In this case, we must assume the function > is leaf since RA is not saved to the stack. > The only case I can imagine is when sp is corrupted which is unlikely. However an exception can occure just after a prologue of a nested function which is more likely. In that case you will assume wrongly that the function was a leaf one. I don't think we gain more than we loose with this test. Maybe we can just leave if (i >= info->func_size) break; for safety purpose. Franck