sora_hです。

2011/4/12 Takahiro Sunaga <sunagae / sunagae.net>:
> 現在リアルタイムで動作するRuby用実行時間プロファイラを開発しています。
> まだまだ不安定ではありますが、ある程度使用できるものになりましたので以下
> のページで公開しています。
> http://sunagae.net/software/llprof

さっそく試してみました。

残念ながらOSXで動きません… ;'(

さっそくパッチを書いてみました。添付しておきます。

このパッチを適用することでOSX上で動く気がするんですけどテストコードなどが存在しなさそうなので
ちゃんと動くかは確認できてません。一応monitorからの接続と表示は確認したんですけど。

そして、この修正も間違ってるかもしれないのでいくつかご指摘いただければと思います。

現時点で感じた疑問点はこんな感じ:

・ライセンスは?
・class_table.cppのnull_strとかnullstrは__threadである必要はあるのかどうか分からなかった。

-- 
Shota Fukumori a.k.a. @sora_h - http://codnote.net/
ZGlmZiAtciAzMjg5ZTc0NTIzNmQgcnJwcm9mZXh0L2NhbGxfdHJlZS5jcHAKLS0tIGEvcnJwcm9m
ZXh0L2NhbGxfdHJlZS5jcHAJV2VkIEFwciAwNiAxMzoyNToxNyAyMDExICswOTAwCisrKyBiL3Jy
cHJvZmV4dC9jYWxsX3RyZWUuY3BwCVR1ZSBBcHIgMTIgMDg6NTY6MzEgMjAxMSArMDkwMApAQCAt
MTgzLDggKzE4MywxMCBAQAogCiBUaHJlYWRJbmZvICpnRmlyc3RUaHJlYWQ7CiBUaHJlYWRJbmZv
ICpnTGFzdFRocmVhZDsKLV9fdGhyZWFkIFRocmVhZEluZm8gKmdDdXJyZW50VGhyZWFkID0gTlVM
TDsKKy8vX190aHJlYWQgVGhyZWFkSW5mbyAqZ0N1cnJlbnRUaHJlYWQgPSBOVUxMOworcHRocmVh
ZF9rZXlfdCB0aHJlYWRLZXk7CiBwdGhyZWFkX211dGV4X3QgZ1RocmVhZERhdGFNdXRleCA9IFBU
SFJFQURfTVVURVhfSU5JVElBTElaRVI7CisjZGVmaW5lIGdDdXJyZW50VGhyZWFkICgoVGhyZWFk
SW5mbyopcHRocmVhZF9nZXRzcGVjaWZpYyh0aHJlYWRLZXkpKQogdW5zaWduZWQgbG9uZyBsb25n
IGludCBnVGhyZWFkTWF4SUQgPSAwOwogCiBUaHJlYWRJbmZvICpnZXRfY3VycmVudF90aHJlYWQo
KQpAQCAtMTkyLDcgKzE5NCw4IEBACiAgICAgaWYoZ0N1cnJlbnRUaHJlYWQgIT0gTlVMTCkKICAg
ICAgICAgcmV0dXJuIGdDdXJyZW50VGhyZWFkOwogICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZ1Ro
cmVhZERhdGFNdXRleCk7Ci0gICAgZ0N1cnJlbnRUaHJlYWQgPSBuZXcgVGhyZWFkSW5mbyhnVGhy
ZWFkTWF4SUQpOworICAgIC8vZ0N1cnJlbnRUaHJlYWQgPSBuZXcgVGhyZWFkSW5mbyhnVGhyZWFk
TWF4SUQpOworICAgIHB0aHJlYWRfc2V0c3BlY2lmaWModGhyZWFkS2V5LG5ldyBUaHJlYWRJbmZv
KGdUaHJlYWRNYXhJRCkpOwogICAgIGdUaHJlYWRNYXhJRCsrOwogICAgIAogICAgIGlmKCFnTGFz
dFRocmVhZCkKQEAgLTU5NCw2ICs1OTcsNyBAQAogICAgIGNvdXQgPDwgIltJbml0XSIgIDw8IGVu
ZGwgPDwgIiAgcE5vZGVzID0gIiA8PCBnQmFja0J1ZmZlcl9TZXJpYWxpemVkTm9kZUluZm9BcnJh
eSA8PCBlbmRsOwogICAgIGNvdXQgPDwgIiAgcFN0YWNrID0gIiA8PCBnQmFja0J1ZmZlcl9TZXJp
YWxpemVkU3RhY2tBcnJheSA8PCBlbmRsOwogCisgICAgcHRocmVhZF9rZXlfY3JlYXRlKCZ0aHJl
YWRLZXksTlVMTCk7CiAgICAgZ2V0X2N1cnJlbnRfdGhyZWFkKCk7CiAgICAKIApkaWZmIC1yIDMy
ODllNzQ1MjM2ZCBycnByb2ZleHQvY2xhc3NfdGFibGUuY3BwCi0tLSBhL3JycHJvZmV4dC9jbGFz
c190YWJsZS5jcHAJV2VkIEFwciAwNiAxMzoyNToxNyAyMDExICswOTAwCisrKyBiL3JycHJvZmV4
dC9jbGFzc190YWJsZS5jcHAJVHVlIEFwciAxMiAwODo1NjozMSAyMDExICswOTAwCkBAIC0zMiw3
ICszMiw3IEBACiAgICAgKHN0X2luZGV4X3QgKCopKC4uLikpIGNsc3RibF9oYXNoCiB9OwogCi1f
X3RocmVhZCBjb25zdCBjaGFyICpudWxsc3RyID0gIihudWxsKSI7Citjb25zdCBjaGFyICpudWxs
c3RyID0gIihudWxsKSI7CiBjb25zdCBjaGFyICpuZXdfc3RyKGNvbnN0IGNoYXIgKnN0cikKIHsK
ICAgICBpZighc3RyKQpAQCAtNjgsNyArNjgsNyBAQAogICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr
KCZtdHhfKTsKIH0KIAotX190aHJlYWQgY29uc3QgY2hhciAqbnVsbF9zdHIgPSAiKEVSUikiOwor
Y29uc3QgY2hhciAqbnVsbF9zdHIgPSAiKEVSUikiOwogY29uc3QgY2hhciAqIE5hbWVUYWJsZTo6
R2V0KEtleSBlbnRyeSkKIHsKICAgICBjaGFyICpuYW1lOwpkaWZmIC1yIDMyODllNzQ1MjM2ZCBy
cnByb2ZleHQvcnJwcm9mLmNwcAotLS0gYS9ycnByb2ZleHQvcnJwcm9mLmNwcAlXZWQgQXByIDA2
IDEzOjI1OjE3IDIwMTEgKzA5MDAKKysrIGIvcnJwcm9mZXh0L3JycHJvZi5jcHAJVHVlIEFwciAx
MiAwODo1NjozMSAyMDExICswOTAwCkBAIC02LDYgKzYsOSBAQAogI2luY2x1ZGUgPHVuaXN0ZC5o
PgogI2luY2x1ZGUgPGVycm5vLmg+CiAKKyNpZiAoZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmlu
ZWQoX19OZVhUX18pKSAmJiBkZWZpbmVkKF9fTUFDSF9fKQorI2luY2x1ZGUgPG1hY2gvbWFjaF90
aW1lLmg+CisjZW5kaWYKIAogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4KQEAgLTE5LDggKzIyLDYgQEAKICNpbmNsdWRlICJjYWxsX3RyZWUuaCIKICNpbmNsdWRl
ICJzZXJ2ZXIuaCIKIAotCi0KICNkZWZpbmUgUE9MTEZEX01BWAkyNTYKIAogCkBAIC00Niw5ICs0
NywxOSBAQAogKi8KIHRpbWVfdmFsX3QgR2V0Tm93VGltZV9jbG9ja19nZXR0aW1lX21vbm90b25p
YygpCiB7CisJLy9jbG9ja19nZXR0aW1lKENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCwgJnRwKTsK
IAlzdHJ1Y3QgdGltZXNwZWMgdHA7Ci0JLy9jbG9ja19nZXR0aW1lKENMT0NLX1BST0NFU1NfQ1BV
VElNRV9JRCwgJnRwKTsKKyNpZiAoZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19OZVhU
X18pKSAmJiBkZWZpbmVkKF9fTUFDSF9fKQorCS8vZ2V0dGltZW9mZGF5KCZ0cCwgTlVMTCk7CisJ
c3RhdGljIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QgdGkgPSB7MCwwfTsKKwlpZih0aS5kZW5v
bSA9PSAwKSBtYWNoX3RpbWViYXNlX2luZm8oJnRpKTsgCisJdWludDY0X3QgbmFubyA9IG1hY2hf
YWJzb2x1dGVfdGltZSgpICogKHRpLm51bWVyIC8gdGkuZGVub20pOworCisJdHAudHZfc2VjID0g
bmFubyAqIDFlLTk7ICAKKyAgICAgICAgdHAudHZfbnNlYyA9IG5hbm8gLSAodHAudHZfc2VjICog
MWU5KTsKKyNlbHNlCiAJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cCk7CisjZW5k
aWYKICAgICAKICAgICAvLyByZXR1cm4gKHRpbWVfdmFsX3QpdHAudHZfbnNlYzsKIAlyZXR1cm4g
KCh0aW1lX3ZhbF90KXRwLnR2X3NlYykqMTAwMCoxMDAwKjEwMDAgKyAoKHRpbWVfdmFsX3QpdHAu
dHZfbnNlYyk7Cg==