RE: [PATCH] Fix that different function breakpoints are set at same pc address (PR gdb/12703)

Terry Guo
2011-06-29T10:17:33Z

> -----Original Message-----
> From: Yao Qi [mailto:yao@codesourcery.com]
> Sent: Wednesday, June 29, 2011 6:00 PM
> To: Terry Guo
> Cc: gdb-patches@sourceware.org; pedro@codesourcery.com
> Subject: Re: [PATCH] Fix that different function breakpoints are set at
> same pc address (PR gdb/12703)
>
> On 06/29/2011 04:47 PM, Terry Guo wrote:
> > Hi,
> >
> > First if you look at the generated binary code, I thought it is a
> valid case. After performing the function test, it will fall into
> function bar which is a normal function. At least my case can run
> correctly on QEMU. It is very likely for people to write program in
> assembly code like:
> >
> > main:
> > b test
> >
> > test:
> > movs r5, #10
> > bar:
> > push.......
> > .........
> >
>
> We are lucky here GCC places bar next to function test physically, but
> gcc may also place function test and bar in other layout, like
>
> main:
> b test
>
> bar:
> push ...
>
> test:
> moves r5, #10
>
> After test, processor will run some instructions that we don't know.
> IMO, it is incorrect.
>
> > You cannot say this is a invalid program. If you have concern about
> attribute NAKED, I can rewrite it in assembly code.
> >
>
> I have no concern on attribute NAKED here.

I know that GCC will "luckily" place code like that. That's why I just post
assembly code first. The key point here is the program can be written in
assembly code and in this way the function position can be ensured without
the help of luck. is my understanding right?
I use "naked" here in C code because I am lazy to write
assembly code. You can omit the "naked" in C and look at the case as a case
written in assembly code.

>
> > Second, we all know that current prologue analyzer cannot handle all
> cases. My patch only intends to be a worthwhile supplement for cases
> that beyond the prologue analyzer capability.
> >
> > Third, I also have strong interesting to enhance prologue analyze. I
> suggest we use another thread to discuss how to enhance prologue
> analyzer to handle all possible cases. And leave this one to discuss
> whether is it worthwhile to have my patch.
>
> OK, thanks for your clarification. If you think your test case is
> correct, please send the patch again, and the right people can
> review/approve your patch.
>
> --
> Yao (齐尧)
>
> P.S. 1. could you please set up your mail client to newline your mail
> automatically? It is hard to read one paragraph in one line. 2.
> could
> you reply mail with quoted context?

Thanks for your reminding.

BR,
Terry