From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 27 May 2014 13:10:16 -0700 From: Nick Owens To: 9fans@9fans.net Message-ID: <20140527201016.GP3763@iota.offblast.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="G+DT6X5ssgZ56VG3" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Subject: [9fans] 8l -e Topicbox-Message-UUID: f2c6e52a-ead8-11e9-9d60-3106f5b1d025 --G+DT6X5ssgZ56VG3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable i was trying to use 8l's '-e' flag today, when i found some interesting problems. first, -e doesn't do what it says unless you pass -p, which goes unmentioned in the manual page. (luckily i read the source). second, and more importantly, the calls to _tracein/_traceout are skipped, as in the following disassembly, but i can't determine why. is there some tool (besides noping with acid) meant to be used to 'turn on' the tracing calls? third, when you use -e with -p, prof.$pid files are generated as with -p, but the prof files are empty. this seems unintentional. this example is using rc. ; 8l -p -e -o 8.out code.8 exec.8 getflags.8 glob.8 here.8 io.8 lex.8 pcmd.8 pfnc.8 simple.8 subr.8 trap.8 tree.8 var.8 havefork.8 plan9.8 y.tab.8 ; acid 8.out 8.out:386 plan 9 executable /sys/lib/acid/port /sys/lib/acid/386 acid: asm(setvar) setvar 0x0000adbb JMP setvar+0x7(SB) setvar+0x2 0x0000adbd CALL _tracein(SB) setvar+0x7 0x0000adc2 SUBL $0x10,SP setvar+0xa 0x0000adc5 MOVL name+0x0(FP),CX setvar+0xe 0x0000adc9 MOVL CX,0x0(SP) setvar+0x11 0x0000adcc CALL vlook(SB) setvar+0x16 0x0000add1 MOVL AX,v+0xc(SP) setvar+0x1a 0x0000add5 MOVL 0x4(AX),AX setvar+0x1d 0x0000add8 MOVL AX,0x0(SP) setvar+0x20 0x0000addb CALL freewords(SB) setvar+0x25 0x0000ade0 MOVL v+0xc(SP),DX setvar+0x29 0x0000ade4 MOVL val+0x4(FP),CX setvar+0x2d 0x0000ade8 MOVL CX,0x4(DX) setvar+0x30 0x0000adeb MOVL $0x1,0x8(DX) setvar+0x37 0x0000adf2 ADDL $0x10,SP setvar+0x3a 0x0000adf5 RET setvar+0x3b 0x0000adf6 CALL _traceout(SB) setvar+0x40 0x0000adfb RET Xasync 0x0000adfc JMP Xasync+0x7(SB) acid:=20 you can see there is a JMP over _tracein and a RET before _traceout. what gives? --G+DT6X5ssgZ56VG3 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (OpenBSD) iQIcBAEBAgAGBQJThPEoAAoJEAlFY6k1Rs31ceIP/iuaV7ZVld63bKCJxofYGizS 3WbqeZ9P/W6jldYk/3iUETrPLb92WmOu8U9u/9Bmcery6eteERRwOuxEbiwSZq8k R5kOOa8rEY0Wx8Rfvn3h6xTXF+pt+SQkBobuFn2Hpw/DDlmFouMt4/zoCGd3Ugtc +jPraFZO18rBU3sXIfA11Houi5Qc80cjzgAes0cvu7bBqqDC0Chj1H9vbngI7FWz m4dELlsC2jUHpmMdNkyULCYE9JiMPsITHTPGjtK0nSWRv5M9DHLprV7JBUeMwVm7 Qq/Kh8ZlDqibL/v9LMNE2xS+Rhby4M6w0kzGKV044uunEnyYqF058+iE0z7pOS21 jqZ+OXvK+IFpY46dzTpn42Bl2RnPqbxHTYhYQTicli+j+ReNjgOPdi1Z9YBSCs5G GfYjRopRa57hUqxcFqznOX+SSjbZqovYrc0sBZkTynJMEwp9JCQshT9qDqFp905Z VKBIDiX+iUgQCLhvnqRzWMTogcNjk6J2ruOVjW5TRlc8z4+vrTsM/oB9X2nX4XlK 0lCK96KaQ15kO4mKdQhw+uFDxH4+Z1nReb79Yf+As14B/rcIqRBrnTBeTMAPS+Q0 CFcstLk5RhIRWREd67RRbNswwNhT5sJVJazYq3ZHQvbJSuPCK2pY0qAEpPQwH3+V cWivNU85SrCvcTvg30qm =wAjk -----END PGP SIGNATURE----- --G+DT6X5ssgZ56VG3--