• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

修訂82d97e5597357bd5b45517bec1a5f10041e7470a (tree)
時間2003-06-07 09:16:57
作者Jim Blandy <jimb@code...>
CommiterJim Blandy

Log Message

* ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
(ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
method.

Change Summary

差異

--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
11 2003-06-06 Jim Blandy <jimb@redhat.com>
22
3+ * ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
4+ (ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
5+ method.
6+
37 * ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
48 (ppc64_standard_linkage_target): Use it.
59
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -893,6 +893,18 @@ ppc64_skip_trampoline_code (CORE_ADDR pc)
893893 }
894894
895895
896+/* On 64-bit PowerPC Linux, the ELF header's e_entry field is the
897+ address of a function descriptor for the entry point function, not
898+ the actual entry point itself. So to find the actual address at
899+ which execution should begin, we need to fetch the function's entry
900+ point from that descriptor. */
901+static CORE_ADDR
902+ppc64_call_dummy_address (void)
903+{
904+ return ppc64_desc_entry_point (entry_point_address ());
905+}
906+
907+
896908 enum {
897909 ELF_NGREG = 48,
898910 ELF_NFPREG = 33,
@@ -1014,6 +1026,8 @@ ppc_linux_init_abi (struct gdbarch_info info,
10141026
10151027 if (tdep->wordsize == 8)
10161028 {
1029+ set_gdbarch_call_dummy_address (gdbarch, ppc64_call_dummy_address);
1030+
10171031 set_gdbarch_in_solib_call_trampoline
10181032 (gdbarch, ppc64_in_solib_call_trampoline);
10191033 set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);