This is the mail archive of the 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: [ARM] "svc" insn check at irrelevant address in ARM unwind info sniffer

Hi Yao,

> I don't think the innermost-ness of THIS_FRAME matters here.  The root
> cause of this problem, IMO, is that get_frame_pc (this_frame) is
> the *first* instruction of the function, so get_frame_pc (this_frame) - 2
> can be anything, instruction of other functions, or non-instruction at
> all (your case).  So instead, we may need the check like this?
>  if (get_frame_pc (this_frame) > func_start)

I will start by saying that I see you point. If we're in a frame whose
first instruction is a call, then we could be seeing the same issue.
I would also argue that innermost-ness is important, here, assuming
that we agree that the ARM info is only correct at the point of call.
So, strictly speaking, we should not even be attempting to use it
for innermost frame.

Should I work on a version of the patch that merges the two ideas?
Or do you stand with just checking "get_frame_pc (this_frame) >
func_start"? I confess I know ARM unwind info just enough to get by,
so I trust your judgement on this.


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