You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.5 KiB
59 lines
2.5 KiB
commit 763905a3ad8f98d33bd9319790a8d53904554265 |
|
Author: Yao Qi <yao@codesourcery.com> |
|
Date: Mon Oct 27 16:37:38 2014 +0800 |
|
|
|
Fix trace file fails on powerpc64 |
|
|
|
I see the following fails on powerpc64-linux, |
|
|
|
(gdb) target tfile tfile-basic.tf^M |
|
warning: Uploaded tracepoint 1 has no source location, using raw address^M |
|
Tracepoint 1 at 0x10012358^M |
|
Created tracepoint 1 for target's tracepoint 1 at 0x10012358.^M |
|
(gdb) PASS: gdb.trace/tfile.exp: target tfile tfile-basic.tf |
|
info trace^M |
|
Num Type Disp Enb Address What^M |
|
1 tracepoint keep y 0x0000000010012358 <write_basic_trace_file>^M |
|
installed on target^M |
|
(gdb) FAIL: gdb.trace/tfile.exp: info tracepoints on trace file |
|
|
|
-target-select tfile tfile-basic.tf^M |
|
=thread-group-started,id="i1",pid="1"^M |
|
=thread-created,id="1",group-id="i1"^M |
|
&"warning: Uploaded tracepoint 1 has no source location, using raw address\n"^M |
|
=breakpoint-created,bkpt={number="1",type="tracepoint",disp="keep",enabled="y", |
|
addr="0x0000000010012358",at="<write_basic_trace_file>",thread-groups=["i1"], |
|
times="0",installed="y",original-location="*0x10012358"}^M |
|
~"Created tracepoint 1 for target's tracepoint 1 at 0x10012358.\n"^M |
|
^connected^M |
|
(gdb) ^M |
|
FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: select trace file |
|
|
|
These fails are caused by writing function descriptor address into trace |
|
file instead of function address. This patch is to teach tfile.c to |
|
write function address on powerpc64 target. With this patch applied, |
|
fails in tfile.exp and mi-traceframe-changed.exp are fixed. Is it |
|
OK? |
|
|
|
gdb/testsuite: |
|
|
|
2014-10-27 Yao Qi <yao@codesourcery.com> |
|
|
|
* gdb.trace/tfile.c (adjust_function_address) |
|
[__powerpc64__ && _CALL_ELF != 2]: Get function address from |
|
function descriptor. |
|
|
|
Index: gdb-7.6.1/gdb/testsuite/gdb.trace/tfile.c |
|
=================================================================== |
|
--- gdb-7.6.1.orig/gdb/testsuite/gdb.trace/tfile.c |
|
+++ gdb-7.6.1/gdb/testsuite/gdb.trace/tfile.c |
|
@@ -107,6 +107,9 @@ adjust_function_address (uintptr_t func_ |
|
/* Although Thumb functions are two-byte aligned, function |
|
pointers have the Thumb bit set. Clear it. */ |
|
return func_addr & ~1; |
|
+#elif defined __powerpc64__ && _CALL_ELF != 2 |
|
+ /* Get function address from function descriptor. */ |
|
+ return *(uintptr_t *) func_addr; |
|
#else |
|
return func_addr; |
|
#endif
|
|
|