This is the mail archive of the gdb-patches@sourceware.org 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]

Re: [RFA] Handle runtime loader dyn sym resolution in reverse


> This is for both the main trunk and the record/replay branch
> (so I'd appreciate review by both Hui and a global maintainer).

I took a look. The patch itself is missing a little bit of context
(in terms of the code), so I wasn't sure whether I was looking at
inserting this hunk at the right place, but I think I found it:

      if (ecs->event_thread->step_over_calls == STEP_OVER_ALL)
        {
          /* We're doing a "next".

             Normal (forward) execution: set a breakpoint at the
             callee's return address (the address at which the caller
             will resume).

             Reverse (backward) execution.  set the step-resume
             breakpoint at the start of the function that we just
             stepped into (backwards), and continue to there.  When we
             get there, we'll need to single-step back to the caller.  */

          if (execution_direction == EXEC_REVERSE)

> 2008-10-24  Michael Snyder  <msnyder@vmware.com>
> 
> 	* infrun.c (handle_inferior_event): Handle dynamic symbol
> 	resolution in reverse.

Looks OK to me, but I don't understand why you check that stop_func_start
is zero. If I were to make a guess, it would be to quickly dismiss
the case were we reverse stepped into a function call, and so don't
need to check for trampolines (in other words, a CPU saver).

-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]