Re: [PATCH] Tweak gdb.trace/tfile.c for thumb mode

Yao Qi
2014-07-09T11:55:12Z

On 06/30/2014 11:50 AM, Yao Qi wrote:
> We see the fail below happens on thumb related multi-libs
> (-mthumb -march={armv4t,armv7-a}),
>
> target tfile tfile-basic.tf ^M
> warning: Uploaded tracepoint 1 has no source location, using raw address^M
> warning: Breakpoint address adjusted from 0x00008959 to 0x00008958.^M
> Tracepoint 3 at 0x8958: file /scratch/yqi/arm-none-linux-gnueabi/src/gdb-trunk/gdb/testsuite/gdb.trace/tfile.c, line 91.^M
> Created tracepoint 3 for target's tracepoint 1 at 0x8959.^M
> warning: Breakpoint address adjusted from 0x00008959 to 0x00008958.^M
> warning: Breakpoint address adjusted from 0x00008959 to 0x00008958.^M
> warning: Breakpoint address adjusted from 0x00008959 to 0x00008958.^M
> (gdb) FAIL: gdb.trace/tfile.exp: complete-command 'target tfile'
>
> The address of write_basic_trace_file is two-bytes aligned,
>
> (gdb) p write_basic_trace_file
> $1 = {void (void)} 0x8958 <write_basic_trace_file>
>
> but the ld sets the LSB of every reference to the function address
> (indicating the address is in thumb mode), so "&write_basic_trace_file"
> in the program becomes 0x8959, which is saved in the trace file. That
> is why the warnings are emitted.
>
> This patch is to clear the LSB of the function address written to trace
> file in thumb and thumb2 mode. This patch fixes the fail above.
>
> gdb/testsuite:
>
> 2014-06-30 Yao Qi <yao@codesourcery.com>
>
> * gdb.trace/tfile.c (write_basic_trace_file): Clear the lsb of
> the function address written to trace file.

Ping?

Update the changelog entry a little,

2014-07-09 Yao Qi <yao@codesourcery.com>

* gdb.trace/tfile.c (write_basic_trace_file)
[__thumb__||__thumb2__]: Clear the lsb of the function address
written to trace file.

--
Yao (é½å°§)