This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Tweak gdb.trace/tfile.c for thumb mode
- From: Yao Qi <yao at codesourcery dot com>
- To: <gdb-patches at sourceware dot org>
- Date: Wed, 9 Jul 2014 19:51:41 +0800
- Subject: Re: [PATCH] Tweak gdb.trace/tfile.c for thumb mode
- Authentication-results: sourceware.org; auth=none
- References: <1404100222-2312-1-git-send-email-yao at codesourcery dot com>
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 (éå)