This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
int frame_id_inner (struct frame_id l, struct frame_id r) { int inner; if (l.stack_addr == 0 || r.stack_addr == 0) /* Like NaN, any operation involving an invalid ID always fails. */ inner = 0; else /* Only return non-zero when strictly inner than. Note that, per comment in "frame.h", there is some fuzz here. Frameless functions are not strictly inner than (same .stack but different .code). */ inner = INNER_THAN (l.stack_addr, r.stack_addr); if (frame_debug) { fprintf_unfiltered (gdb_stdlog, "{ frame_id_inner (l="); fprint_frame_id (gdb_stdlog, l); fprintf_unfiltered (gdb_stdlog, ",r="); fprint_frame_id (gdb_stdlog, r); fprintf_unfiltered (gdb_stdlog, ") -> %d }\n", inner); } return inner; }
does SPECIAL_ADDR add further ordering? If it doesn't then the comment needs to be updated (and the description in "frame.h" clarified).
Another good point. Yes, it does in this case. Two frames could both not use the stack but one will definitely move the special_addr. I need to add a SPECIAL_INNER_THAN macro which can default to false and must be overridden by the platform.
frame.c:354: if (frame_id_inner (id, this))In frame_find_by_id: Its sole purpose is to act as a short circuit for the unlikely case where the ID isn't present in the frame. A stonger frame_id_inner has little value add.
frame.c:1909: && frame_id_inner (get_frame_id (this_frame),In get_prev_frame: Its a sainity check to detect what appears to be a badly corrupt stack. Marginal value add?
infrun.c:2094: && (frame_id_inner (get_frame_id (get_current_frame ()),Commented out.
infrun.c:2383: if (frame_id_inner (current_frame, step_frame_id))Received a signal. Given that a predicate to the call is:
infrun.c:2477: && frame_id_inner (step_frame_id,It's the reverse of infrun.c:2383 where the inferior is falling out of a singnal trampoline, I think the assumptions again hold.
infrun.c:2641: if (!(frame_id_inner (current_frame, step_frame_id)))"Trust me" there's no value add. While the comment reads:
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |