[RFC/TileGX 2/6] simplify the handling of skip prologue for plt stub

Jiong Wang jiwang@tilera.com
Fri Mar 1 10:35:00 GMT 2013


On 02/21/2013 09:40 PM, Jiong Wang wrote:
> On 02/20/2013 12:10 PM, Yao Qi wrote:
>> Is it possible that the section layouts on two pages?  I mean, if is 
>> possible that NEXT_ADDR is within section FOO and page A, but the end 
>> of section FOO is within page A + 1.  If this is true, we need to 
>> check to the min (page boundary, section boundary), otherwise, we 
>> don't have to worry about it.
>
>    sure, and I guess the page boundary check is for the risk that the 
> next page is not in memory that need to be paged in.
>    but some of the time, we just need to analyze a few instructions 
> then we could get the result, so we only cross a page when necessary, 
> but this do not make sense for disk file access.
>
>    after a second think, I fell it's reasonable that 
> "section_table_xfer_memory_partial" do not handle those gap between 
> sections, because there is no bit on the disk file for those gap, 
> while if the debuggee is loaded and under running, then 
> target_read_memory will use ptrace to fetch runtime memory, then those 
> gap has physical map in memory, and set to zero.
>
>    for x86, this is a issue also. for a simple testcase
>
> char *fmt = "x%d\n";
> int main(int argc, char **argv)
> {
>         printf(fmt, argc);
>         return 0;
> }
>
> gcc test.c
> gdb a.out
> (gdb) x/10 fmt
> 0x4005c0 <__dso_handle+8>:    174335352    Cannot access memory at 
> address 0x4005c4
> (gdb) b main
> Breakpoint 1 at 0x4004e0
> (gdb) r
> Starting program: /home/jiwang/GDB-TEST/a.out
> Breakpoint 1, 0x00000000004004e0 in main ()
> (gdb) x/10 fmt
> 0x4005c0 <__dso_handle+8>:    174335352    0    990059265 44
> 0x4005d0:    4    -552    72    -236
> 0x4005e0:    112    -184
>
> so, I think fix this issue by checking section boundary simultaneously 
> is a bit strange, the clean and proper way is to stop skip_prologue 
> analysis when the pc is in plt stub.
>
> below is the old patch, any one comments on this?
>

Ping, could anyone have a review on this?

>
> gdb/ChangeLog:
>
>        * tilegx-tdep.c (tilegx_skip_prologue): simplify the handling for
>        plt stub.
>


-- 
Regards,
Jiong. Wang
Tilera Corporation.



More information about the Gdb-patches mailing list