Save 37% off PRO during our Black Friday Sale! »

JVM运行时诊断工具 HouseMD

JVM运行时诊断工具 HouseMD

Ece2256cd4c3709ecd5cdcf014f5910e?s=128

Lunfu Zhong

June 04, 2013
Tweet

Transcript

  1. H ouse .M.D

  2. 聚石@taobao.com https://github.com/zhongl

  3. 他是一位 诊断 技艺精湛的医生

  4. 话说 诊断 技艺精湛的 程序员会是...

  5. System.out.println("debugging");

  6. LOG.debug("debugging");

  7. 信息打印总不全有木有? 又要改代码 > 编译 > 部署, 有木有? 多来几次想屎的心有木有?

  8. 工欲善其事,必先利其器

  9. BTrace 神器降临, 一秒钟变高富帅!

  10. Invocation Interception Profile JStack Context DTrace JMap JInfo Histogram Memory

    File Socket
  11. 甜蜜中略带苦涩, 幸福中稍显忧伤

  12. https://gist.github.com/zhongl/5625338 ClassNotFoundException

  13. https://gist.github.com/zhongl/5625366 StackOverflowError

  14. 不用IDE写脚本很苦逼, 有木有? 总是要调整几次脚本才见效, 有木有? 多来几次尿都憋不住了, 有木有?

  15. HouseMD 交互式命令行

  16. $ housemd <jvm pid> INFO : Welcome to HouseMD 0.2.4

    INFO : connection established on 54321 housemd> _
  17. `trace TraceTarget.addOne`

  18. `trace TraceTarget$C+` trace sub class

  19. `trace -d TraceTarget$C+` get args and return

  20. `trace -s TraceTarget$C+` get invocation StackTrace

  21. Demo

  22. http://github.com/csug/housemd

  23. Tips & Traps

  24. limit < 100 timeout < 3 `trace` with `-l -t`

  25. trace unknown sub class instance `trace` with `Xxx+`

  26. SimpleName conflict `trace` with `-p com.xxx`

  27. INFO: Ended by error `last` for error ending

  28. class loaded by who from where `loaded` for class info

  29. port conflict `housemd -p <port>`

  30. Emacs edit mode, power by jline2 `Ctrl + r` for

    history search
  31. Backspace do not work Linux mode in SecureCRT

  32. chmod +w /tmp No echo cause by privilege

  33. housemd -h > help [command] test cases issues More help

    !!!
  34. https://github.com/CSUG/HouseMD/wiki/DevGuideCN Contribute to HouseMD

  35. Intro CSUG

  36. Thanks

  37. Scala In HouseMD TODO