2011/3/22 Chagin Dmitry <[email protected]>: > On Mon, Mar 21, 2011 at 05:36:13PM +0800, Xingxing Pan wrote: >> 2011/3/21 Chagin Dmitry <[email protected]>: >> >> powerfull script. >> >> >> >> Xingxing Pan >> > >> > hmm, which script? I think enough amd64, i386 and amd64/ia32. >> > >> > I suggest to write a example before continuing the conversation >> > about the GSoC. For example (bcopy || bzero) && cpu_switch. >> > Is it ok for you? >> > >> > -- >> > Have fun! >> > chd >> > >> >> Hi Chargin, >> >> Thank you for your reply. >> The followings shows how I try to add DWARF for bcopy. >> >> --- ../8.2.0/sys/i386/include/asm.h 2011-03-21 14:35:56.111973722 +0800 >> +++ asm.h 2011-03-21 15:25:31.564636162 +0800 >> @@ -71,7 +71,7 @@ >> >> #define _ENTRY(x) _START_ENTRY; \ >> .globl CNAME(x); .type CNAME(x),@function; CNAME(x): >> -#define END(x) .size x, . - x >> +#define END(x) .cfi_endproc; .size x, . - x >> >> #ifdef PROF >> #define ALTENTRY(x) _ENTRY(x); \ >> @@ -80,9 +80,10 @@ >> popl %ebp; \ >> jmp 9f >> #define ENTRY(x) _ENTRY(x); \ >> - pushl %ebp; movl %esp,%ebp; \ >> + .cfi_startproc; \ >> + pushl %ebp; .cfi_adjust_cfa_offset 4; movl >> %esp,%ebp; .cfi_def_cfa_register %ebp; \ >> call PIC_PLT(HIDENAME(mcount)); \ >> - popl %ebp; \ >> + popl %ebp; .cfi_def_cfa %esp, 4; \ >> >> --- bcopy.S 2011-03-21 15:51:26.804203809 +0800 >> +++ ../8.2.0/lib/libc/i386/string/bcopy.S 2011-03-21 >> 14:28:15.023069890 +0800 >> @@ -51,9 +51,7 @@ ENTRY(bcopy) >> #endif >> #endif >> pushl %esi >> - .cfi_adjust_cfa_offset 4; >> pushl %edi >> - .cfi_adjust_cfa_offset 4; >> #if defined(MEMCOPY) || defined(MEMMOVE) >> movl 12(%esp),%edi >> movl 16(%esp),%esi >> @@ -77,9 +75,7 @@ ENTRY(bcopy) >> rep >> movsb >> popl %edi >> - .cfi_adjust_cfa_offset -4; >> popl %esi >> - .cfi_adjust_cfa_offset -4; >> ret >> 1: >> addl %ecx,%edi /* copy backwards. */ >> @@ -98,9 +94,7 @@ ENTRY(bcopy) >> rep >> movsl >> popl %edi >> - .cfi_adjust_cfa_offset -4; >> popl %esi >> - .cfi_adjust_cfa_offset -4; >> cld >> ret >> #ifdef MEMCOPY >> >> But I don't know how to add DWARF for cpu_switch, because I have no >> idea about the circumstance when we need to backtrace through this >> function. Suppose there's a cpu switch like this, >> threadA->kernel->threadB. Then should the expected backtrace has the >> following result? >> >> threadB's stack >> kernel's stack >> threadA's stack > > > hmm, ok. good, avoid cpu_switch. > First of all, please, read style(9) man page. > In the second, evaluate the proposed plan (discussed with kib@): > > 1) Annotate libc, msun, rtld, libthr (you) > 2) vdso (I'm) > 3) Annotate signal trampolines (you, after vdso) > > And i'm going to understand what I need to do to start GSoC for you. > Thanks! > > > -- > Have fun! > chd >
I think the plan is ok for me. Thank you. Xingxing Pan _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

