On Fri, 18 Aug 2006 14:17:29 +0200, Franck Bui-Huu <vagabon.xyz@xxxxxxxxx> wrote: > > Why get_frame_info() will be called with info->func_size != 0 ? The > > offset of a _first_ instruction is 0, so "ofs" of this line in > > unwind_stack() will be 0. > > > > info.func_size = ofs; /* analyze from start to ofs */ > > > > because in unwind_stack(), before the line you showed, we do: > > if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf)) > return 0; > if (ofs == 0) > return 0; Oh I missed it. > Maybe we should do instead: > > if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf)) > return 0; > /* return ra if an exception occured at the first instruction */ > if (ofs == 0) > return ra; Sure. I should be a right fix. This part must be fixed anyway. > And in any cases, if we pass info->func_size = 0 to get_frame_info(), > then it will consider the function size as unknown. I see. You're right. --- Atsushi Nemoto