Date: Mon, 21 Mar 2011 22:00:25 +0200 From: Kostik Belousov <kostikbel@gmail.com> To: Chagin Dmitry <dchagin@freebsd.org> Cc: Xingxing Pan <panxingxing@mprc.pku.edu.cn>, freebsd-hackers@freebsd.org Subject: Re: GSoC'11: DWARF2 call frame information Message-ID: <20110321200025.GP78089@deviant.kiev.zoral.com.ua> In-Reply-To: <20110321173204.GA7575@dchagin.static.corbina.ru> References: <AANLkTinz6B7fsG7Cjc3ZTZ0OAmsOG8x1P25EfOE7Bt4J@mail.gmail.com> <20110319174115.GA33282@dchagin.static.corbina.ru> <AANLkTimp9qoOFr0VfK1F_r1nE3n_5d7W2-q_vSK_UzgW@mail.gmail.com> <20110320071847.GA10579@dchagin.static.corbina.ru> <AANLkTinxVYZcfvpj4mn7kd%2BfiJ83p7430JSsqxatHCeZ@mail.gmail.com> <20110320181911.GA79862@dchagin.static.corbina.ru> <AANLkTinx%2Bv5ZRr7zq%2BP8gW=umX3PNvhfXpgW8bmUZdtw@mail.gmail.com> <20110321173204.GA7575@dchagin.static.corbina.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
--sTMCexX3B034v4B2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Mar 21, 2011 at 08:32:04PM +0300, Chagin Dmitry wrote: > On Mon, Mar 21, 2011 at 05:36:13PM +0800, Xingxing Pan wrote: > > 2011/3/21 Chagin Dmitry <dchagin@freebsd.org>: > > >> 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 > > > > >=20 > > Hi Chargin, > >=20 > > Thank you for your reply. > > The followings shows how I try to add DWARF for bcopy. > >=20 > > --- ../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 @@ > >=20 > > #define _ENTRY(x) _START_ENTRY; \ > > .globl CNAME(x); .type CNAME(x),@function; CNAM= E(x): > > -#define END(x) .size x, . - x > > +#define END(x) .cfi_endproc; .size x, . - x > >=20 > > #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; \ > >=20 > > --- 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 > >=20 > > 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? > >=20 > > threadB's stack > > kernel's stack > > threadA's stack >=20 >=20 > 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@): >=20 > 1) Annotate libc, msun, rtld, libthr (you) 1a) Develop and implement a testing plan to verify the implementation. 1b) consider doing full register tracking for assembler code. > 2) vdso (I'm) > 3) Annotate signal trampolines (you, after vdso) >=20 > And i'm going to understand what I need to do to start GSoC for you. > Thanks! >=20 >=20 > --=20 > Have fun! > chd --sTMCexX3B034v4B2 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk2HrlkACgkQC3+MBN1Mb4hfYQCg3lmQYglUgzn6Tv2wJOyv5CWn rQYAn1FK4OTGuqdirl6MVhu/B4aO1XBh =sCxJ -----END PGP SIGNATURE----- --sTMCexX3B034v4B2--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110321200025.GP78089>