Date: Tue, 12 Oct 2010 03:47:49 -0700 From: Garrett Cooper <yanegomi@gmail.com> To: Jilles Tjoelker <jilles@stack.nl> Cc: freebsd-hackers@freebsd.org Subject: [PATCH] Fix /bin/sh compilation with CFLAGS += -DDEBUG > 1 Message-ID: <AANLkTinHi6jaLY%2BbZdnhL=gEY3hWGrzcfFG8nO6VMc5n@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--00221532cd104234de049269356f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, It looks like the format strings are broken on 64-bit archs in /bin/sh's TRACE functionality (can be enabled by uncommenting -DDEBUG > 1 in bin/sh/Makefile). The attached patch fixes this functionality again so one can trace sh's calls with TRACE, which may or may be helpful to those debugging /bin/sh. Tested build and execution on amd64; tested build on i386. Thanks! -Garrett PS If someone can help review, and potentially commit this patch, it would be much appreciated. Tracing started. Shell args: "./sh" "-x" cmdloop(1) called showjobs(1) called token word sleep pipeline: entered reread token word sleep reread token word sleep reread token word sleep reread token word sleep reread token word sleep token word 100 token "&" reread token "&" reread token "&" reread token "&" token newline evaltree(0x800d4b658: 1) called evalcommand(0x800d4b658, 0) called evalcommand arg: sleep evalcommand arg: 100 searchexec "sleep" returns "/bin/sleep" makejob(0x800d4b658, 1) returns %1 forkshell(%0, 0x800d4b658, 1) called dowait(0) called wait returns -1, status=3D8 Child shell 16632 normal command: "sleep" "100" In parent shell: child =3D 16632 showjobs(1) called dowait(0) called wait returns 0, status=3D-256 token word echo pipeline: entered reread token word echo reread token word echo reread token word echo reread token word echo reread token word echo token word hallo token end of file reread token end of file reread token end of file reread token end of file token word foo=3D=84 pipeline: entered reread token word foo=3D=84 reread token word foo=3D=84 reread token word foo=3D=84 reread token word foo=3D=84 reread token word foo=3D=84 token newline reread token newline reread token newline reread token newline evaltree(0x800d4b6a8: 1) called evalcommand(0x800d4b6a8, 0) called evalcommand(0x800d4b668, 4) called evalcommand arg: echo evalcommand arg: hallo builtin command: "echo" "hallo" evalbackcmd done: fd=3D-1 buf=3D0x800c570c0 nleft=3D6 jp=3D0x0 expbackq: size=3D5: "hallo" builtin command: showjobs(1) called dowait(0) called wait returns 0, status=3D-256 token word jobs pipeline: entered reread token word jobs reread token word jobs reread token word jobs reread token word jobs reread token word jobs token newline reread token newline reread token newline reread token newline evaltree(0x800d4b630: 1) called evalcommand(0x800d4b630, 0) called evalcommand arg: jobs builtin command: "jobs" showjobs(0) called dowait(0) called wait returns 0, status=3D-256 showjobs(1) called dowait(0) called wait returns 0, status=3D-256 token word fg pipeline: entered reread token word fg reread token word fg reread token word fg reread token word fg reread token word fg token newline reread token newline reread token newline reread token newline evaltree(0x800d4b630: 1) called evalcommand(0x800d4b630, 0) called evalcommand arg: fg builtin command: "fg" waitforjob(%1) called dowait(1) called wait returns 16632, status=3D0 Changing status of proc 16632 from 0xffffffff to 0x0 Job 1: changing state from 0 to 2 showjobs(1) called dowait(0) called wait returns -1, status=3D0 token word exit pipeline: entered reread token word exit reread token word exit reread token word exit reread token word exit reread token word exit token newline reread token newline reread token newline reread token newline evaltree(0x800d4b630: 1) called evalcommand(0x800d4b630, 0) called evalcommand arg: exit builtin command: "exit" exitshell(0) pid=3D16619 --00221532cd104234de049269356f Content-Type: application/octet-stream; name="fix-bin-sh-DEBUG-functionality.diff" Content-Disposition: attachment; filename="fix-bin-sh-DEBUG-functionality.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gf6m6huv0 SW5kZXg6IGJpbi9zaC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW4vc2gvTWFrZWZpbGUJKHJl dmlzaW9uIDIxMzY4MCkKKysrIGJpbi9zaC9NYWtlZmlsZQkod29ya2luZyBjb3B5KQpAQCAtMjEs NyArMjEsOSBAQAogTEZMQUdTPSAtOAkjIDgtYml0IGxleCBzY2FubmVyIGZvciBhcml0aG1ldGlj CiBDRkxBR1MrPS1EU0hFTEwgLUkuIC1JJHsuQ1VSRElSfQogIyBmb3IgZGVidWc6Ci0jIENGTEFH Uys9IC1nIC1EREVCVUc9MgorLmlmIGRlZmluZWQoREVCVUcpCitDRkxBR1MrPQktZyAtRERFQlVH PSR7REVCVUd9CisuZW5kaWYKIFdBUk5TPz0JMgogV0ZPUk1BVD0wCiAKSW5kZXg6IGJpbi9zaC9l eHBhbmQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBiaW4vc2gvZXhwYW5kLmMJKHJldmlzaW9uIDIxMzY4MCkK KysrIGJpbi9zaC9leHBhbmQuYwkod29ya2luZyBjb3B5KQpAQCAtNDMsMTQgKzQzLDE1IEBACiAj aW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxz eXMvc3RhdC5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgogI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5j bHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8aW50dHlwZXMu aD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxzdGRp by5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUg PHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIC8q CiAgKiBSb3V0aW5lcyB0byBleHBhbmQgYXJndW1lbnRzIHRvIGNvbW1hbmRzLiAgV2UgaGF2ZSB0 byBkZWFsIHdpdGgKQEAgLTQ5Nyw5ICs0OTgsOSBAQAogCQlleGl0c3RhdHVzID0gd2FpdGZvcmpv Yihpbi5qcCwgKGludCAqKU5VTEwpOwogCWlmIChxdW90ZWQgPT0gMCkKIAkJcmVjb3JkcmVnaW9u KHN0YXJ0bG9jLCBkZXN0IC0gc3RhY2tibG9jaygpLCAwKTsKLQlUUkFDRSgoImV2YWxiYWNrcTog c2l6ZT0lZDogXCIlLipzXCJcbiIsCi0JCShkZXN0IC0gc3RhY2tibG9jaygpKSAtIHN0YXJ0bG9j LAotCQkoZGVzdCAtIHN0YWNrYmxvY2soKSkgLSBzdGFydGxvYywKKwlUUkFDRSgoImV4cGJhY2tx OiBzaXplPSUiUFJJb01BWCI6IFwiJS4qc1wiXG4iLAorCQkoc2l6ZV90KSAoKGRlc3QgLSBzdGFj a2Jsb2NrKCkpIC0gc3RhcnRsb2MpLAorCQkoaW50KSAoKGRlc3QgLSBzdGFja2Jsb2NrKCkpIC0g c3RhcnRsb2MpLAogCQlzdGFja2Jsb2NrKCkgKyBzdGFydGxvYykpOwogCWV4cGRlc3QgPSBkZXN0 OwogCUlOVE9OOwpJbmRleDogYmluL3NoL2pvYnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW4vc2gvam9i cy5jCShyZXZpc2lvbiAyMTM2ODApCisrKyBiaW4vc2gvam9icy5jCSh3b3JraW5nIGNvcHkpCkBA IC02ODEsNyArNjgxLDcgQEAKIAl9CiAJSU5UT047CiAJVFJBQ0UoKCJtYWtlam9iKCVwLCAlZCkg cmV0dXJucyAlJSVkXG4iLCAodm9pZCAqKW5vZGUsIG5wcm9jcywKLQkgICAganAgLSBqb2J0YWIg KyAxKSk7CisJICAgIChpbnQpIChqcCAtIGpvYnRhYiArIDEpKSk7CiAJcmV0dXJuIGpwOwogfQog CkBAIC03NjYsNyArNzY2LDcgQEAKIAlwaWRfdCBwaWQ7CiAJcGlkX3QgcGdycDsKIAotCVRSQUNF KCgiZm9ya3NoZWxsKCUlJWQsICVwLCAlZCkgY2FsbGVkXG4iLCBqcCAtIGpvYnRhYiwgKHZvaWQg KiluLAorCVRSQUNFKCgiZm9ya3NoZWxsKCUlJWQsICVwLCAlZCkgY2FsbGVkXG4iLCAoaW50KSAo anAgLSBqb2J0YWIpLCAodm9pZCAqKW4sCiAJICAgIG1vZGUpKTsKIAlJTlRPRkY7CiAJaWYgKG1v ZGUgPT0gRk9SS19CRykKQEAgLTkwMyw3ICs5MDMsNyBAQAogCWludCBzdDsKIAogCUlOVE9GRjsK LQlUUkFDRSgoIndhaXRmb3Jqb2IoJSUlZCkgY2FsbGVkXG4iLCBqcCAtIGpvYnRhYiArIDEpKTsK KwlUUkFDRSgoIndhaXRmb3Jqb2IoJSUlZCkgY2FsbGVkXG4iLCAoaW50KShqcCAtIGpvYnRhYiAr IDEpKSk7CiAJd2hpbGUgKGpwLT5zdGF0ZSA9PSAwKQogCQlpZiAoZG93YWl0KDEsIGpwKSA9PSAt MSkKIAkJCWRvdHJhcCgpOwpAQCAtMTAwNCw3ICsxMDA0LDcgQEAKIAkJCWlmIChzdG9wcGVkKSB7 CQkvKiBzdG9wcGVkIG9yIGRvbmUgKi8KIAkJCQlpbnQgc3RhdGUgPSBkb25lPyBKT0JET05FIDog Sk9CU1RPUFBFRDsKIAkJCQlpZiAoanAtPnN0YXRlICE9IHN0YXRlKSB7Ci0JCQkJCVRSQUNFKCgi Sm9iICVkOiBjaGFuZ2luZyBzdGF0ZSBmcm9tICVkIHRvICVkXG4iLCBqcCAtIGpvYnRhYiArIDEs IGpwLT5zdGF0ZSwgc3RhdGUpKTsKKwkJCQkJVFJBQ0UoKCJKb2IgJWQ6IGNoYW5naW5nIHN0YXRl IGZyb20gJWQgdG8gJWRcbiIsIChpbnQpKGpwIC0gam9idGFiICsgMSksIGpwLT5zdGF0ZSwgc3Rh dGUpKTsKIAkJCQkJanAtPnN0YXRlID0gc3RhdGU7CiAJCQkJCWlmIChqcCAhPSBqb2IpIHsKIAkJ CQkJCWlmIChkb25lICYmICFqcC0+cmVtZW1iZXJlZCAmJgo= --00221532cd104234de049269356f--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTinHi6jaLY%2BbZdnhL=gEY3hWGrzcfFG8nO6VMc5n>