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

Yao Qi yao@codesourcery.com
Wed Jul 9 11:55:00 GMT 2014


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 (齐尧)



More information about the Gdb-patches mailing list