Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Sep 2000 14:52:14 -0400 (EDT)
From:      Patrick Alken <cosine@ellipse.mcs.drexel.edu>
To:        freebsd-hackers@freebsd.org
Subject:   ptrace help
Message-ID:  <Pine.BSF.4.21.0009181424210.50782-200000@ellipse.mcs.drexel.edu>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-2049834737-969303134=:50782
Content-Type: TEXT/PLAIN; charset=US-ASCII

 I am experiencing problems with ptrace() under FreeBSD. I made a simple
example program to demonstrate. All it does is fork a child process to
execl() a simple "hello world" program and ptrace() it with PT_CONTINUE.

 The first time around, everything is as it should be - the program is
executed and traced perfectly. However, when I attempt to repeat the whole
process, first by forking a completely new child to execute the helloworld
program again, I start getting ptrace() errors such as "Operation not
permitted" and "Device busy".

 Now the weird thing is, after the first trace, the program terminates
normally, and I print out the pid of the child process which should no
longer be running at this point. ptrace(PT_KILL) verifies this by
returning "No such process". However, during the pause between the first
and second ptrace, if I do a ps and search for the pid, it shows up in
memory as running in the background, although ptrace(PT_KILL) claims it
does not exist. Then my sample program attempts to trace the same
helloworld program again, and gets "Operation not permitted" - even though
an entirely new child is fork()'d with an entirely new pid - so it should
have absolutely no connection at all to the first trace. Does anyone know
why I can't ptrace() the same helloworld program a second time?

 I have attached my sample ptrace() program to this message. Thanks in
advance for any help

Patrick Alken

--0-2049834737-969303134=:50782
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="myptrace.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.21.0009181452140.50782@ellipse.mcs.drexel.edu>
Content-Description: 
Content-Disposition: attachment; filename="myptrace.c"

LyoNCiAqIFRvIHJ1biB0aGlzLCBtYWtlIGEgcHJvZy5jIHdoaWNoIGNvbnRh
aW5zOg0KICogaW50IG1haW4oKSB7IHByaW50ZigiaGVsbG8gd29ybGRcbiIp
OyB9DQogKiBhbmQgY29tcGlsZSBpdCBpbnRvIHRoZSBmaWxlICJwcm9nIi4N
CiAqDQogKiBUaGVuLCBzaW1wbHk6IGdjYyAtbyBteXB0cmFjZSBteXB0cmFj
ZS5jDQogKiBhbmQgLi9teXB0cmFjZQ0KICovDQoNCiNpbmNsdWRlIDxzdGRp
by5oPg0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHN5cy9w
dHJhY2UuaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KI2luY2x1ZGUgPHN5cy93
YWl0Lmg+DQojaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4NCiNpbmNsdWRlIDx1
bmlzdGQuaD4NCiNpbmNsdWRlIDxzdHJpbmcuaD4NCg0KLyoNCkRvVHJhY2Uo
KSAtIGJlZ2luIHRvIHRyYWNlIGEgcHJvY2Vzcw0KKi8NCg0KaW50DQpEb1Ry
YWNlKCkNCg0Kew0KICBpbnQgcGlkOyAvKiBjaGlsZCBwaWQgKi8NCiAgaW50
IHdhaXR2YWw7DQoJc3RydWN0IHJlZyByZWdzOw0KDQogIHBpZCA9IGZvcmso
KTsNCiAgc3dpdGNoIChwaWQpDQogIHsNCiAgICBjYXNlIC0xOg0KICAgIHsN
CiAgICAgIHBlcnJvcigiZm9yayIpOw0KICAgICAgYnJlYWs7DQogICAgfQ0K
DQogICAgLyoNCiAgICAgKiBDaGlsZA0KICAgICAqLw0KICAgIGNhc2UgMDoN
CiAgICB7DQogICAgICAvKg0KICAgICAgICogQWxsb3cgcGFyZW50IHRvIHRy
YWNlIHRoaXMgY2hpbGQgcHJvY2Vzcw0KICAgICAgICovDQogICAgICBwdHJh
Y2UoUFRfVFJBQ0VfTUUsIDAsIDAsIDApOw0KICAgICAgDQogICAgICAvKg0K
ICAgICAgICogRXhlY3V0ZSBwcm9ncmFtIHRvIGJlIGRlYnVnZ2VkIGFuZCBj
YXVzZSBjaGlsZCB0bw0KICAgICAgICogc2VuZCBhIHNpZ25hbCB0byBwYXJl
bnQNCiAgICAgICAqLw0KICAgICAgZXhlY2woIi4vcHJvZyIsICJwcm9nIiwg
TlVMTCk7DQoNCiAgICAgIGV4aXQoMCk7DQogICAgfQ0KDQogICAgLyoNCiAg
ICAgKiBQYXJlbnQNCiAgICAgKi8NCiAgICBkZWZhdWx0Og0KICAgIHsNCiAg
ICAgIGludCBwcmV0Ow0KDQogICAgICAvKiANCiAgICAgICAqIFdhaXQgZm9y
IGNoaWxkIHRvIHN0b3AgKGV4ZWNsKQ0KICAgICAgICovDQogICAgICB3YWl0
KCZ3YWl0dmFsKTsNCg0KICAgICAgcHJpbnRmKCJ3YWl0dmFsID0gJWRcbiIs
IHdhaXR2YWwpOw0KDQogICAgICAvKg0KCQkJICogQ29udGludWUgZXhlY3Rp
b24gb2YgcHJvY2Vzcw0KCQkJICovDQoJCQlwcmV0ID0gcHRyYWNlKFBUX0NP
TlRJTlVFLCBwaWQsIChjYWRkcl90KSAxLCAwKTsNCgkJCWlmIChwcmV0ICE9
IDApDQoJCQl7DQoJCQkJLyoNCgkJCQkgKiBUaGlzIGlzIHdoZXJlIGl0IGZh
aWxzIHRoZSBzZWNvbmQgdGltZSB3aXRoIGFuDQoJCQkJICogZXJybm8gb2Yg
MSAoRVBFUk0pLCBldmVuIHRob3VnaCB3ZSBhcmUgdHJhY2luZw0KCQkJCSAq
IGEgY29tcGxldGVseSBuZXcgcGlkLg0KCQkJCSAqLw0KCQkJCXBlcnJvcigi
cHRyYWNlIik7DQoJCQl9DQoNCiAgICAgIHdhaXQoJndhaXR2YWwpOw0KDQoJ
CQlwcmV0ID0gcHRyYWNlKFBUX0tJTEwsIHBpZCwgMCwgMCk7DQoJCQlpZiAo
cHJldCA9PSAwKQ0KCQkJew0KCQkJCXByaW50ZigiS2lsbCBzdWNjZXNzZnVs
XG4iKTsNCgkJCQl3YWl0KCZ3YWl0dmFsKTsNCgkJCX0NCgkJCWVsc2UNCgkJ
CQlwcmludGYoIktpbGwgdW5zdWNjZXNzZnVsLCBlcnJubyA9ICVzXG4iLCBz
dHJlcnJvcihlcnJubykpOw0KICAgIH0NCiAgfQ0KDQoJcmV0dXJuIChwaWQp
Ow0KfSAvKiBEb1RyYWNlKCkgKi8NCg0KaW50DQptYWluKCkNCg0Kew0KICBp
bnQgcGlkOw0KCWNoYXIgYnVmWzUxMl07DQoNCiAgLyoNCgkgKiBUcmFjZSB0
aHJvdWdoIHRoZSBwcm9jZXNzDQoJICovDQoJcGlkID0gRG9UcmFjZSgpOw0K
CXByaW50ZigiUGlkMSA9ICVkXG4iLCBwaWQpOw0KDQoJZmdldHMoYnVmLCA1
MTIsIHN0ZGluKTsNCg0KCS8qDQoJICogVHJhY2UgdGhyb3VnaCBhZ2FpbiAo
dGhpcyBpcyB3aGVyZSBpdCBmYWlscykNCgkgKi8NCglwaWQgPSBEb1RyYWNl
KCk7DQoJcHJpbnRmKCJQaWQyID0gJWRcbiIsIHBpZCk7DQoNCglyZXR1cm4g
MDsNCn0NCg==
--0-2049834737-969303134=:50782--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0009181424210.50782-200000>