powerpc: step-jump-cont failure (Was: [PATCH] utrace: don't set ->ops = utrace_detached_ops lockless)

Jan Kratochvil jan.kratochvil at redhat.com
Mon Dec 7 14:47:44 UTC 2009


On Mon, 07 Dec 2009 15:24:51 +0100, Oleg Nesterov wrote:
> But. &raise_sigusr2 is not equal to the "actual" address of &raise_sigusr2(),
> this value points to the "thunk" (I do not know the correct English term)

ppc64 calls it "function descriptor" (GDB
ppc64_linux_convert_from_func_ptr_addr):
   For PPC64, a function descriptor is a TOC entry, in a data section,
   which contains three words: the first word is the address of the
   function, the second word is the TOC pointer (r2), and the third word
   is the static chain value.

(gdb) x/8gx 0x805b6f6258
0x805b6f6258 <open>:	0x000000805b65cf68	0x000000805b702ac0
0x805b6f6268 <open64>:	0x000000805b65d010	0x000000805b702ac0

(gdb) x/20i 0x000000805b65cf68
0x805b65cf68 <.__GI___open>:	lwz     r10,-30432(r13)
0x805b65cf6c <.__GI___open+4>:	cmpwi   r10,0
0x805b65cf70 <.__GI___open+8>:	bne-    0x805b65cf84 <.__GI___open+28>

(gdb) info sym 0x000000805b702ac0
last_nip in section .bss

I was not aware there is any "third word" before and I do not see it there.


Regards,
Jan




More information about the utrace-devel mailing list