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==