Skip site navigation (1)Skip section navigation (2)
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>