Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JVM运行时诊断工具 HouseMD
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Lunfu Zhong
June 04, 2013
Programming
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JVM运行时诊断工具 HouseMD
Lunfu Zhong
June 04, 2013
More Decks by Lunfu Zhong
See All by Lunfu Zhong
spring-boot 在统一架构体系中的价值
zhongl
2
890
如何准备一场主题分享
zhongl
1
340
当配置遇到 Scala宏
zhongl
1
370
项目求生指南
zhongl
0
390
LEGO - let's build everything by scala
zhongl
1
290
Real-world Scala
zhongl
2
170
Art of The Code
zhongl
1
270
Other Decks in Programming
See All in Programming
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
7.1k
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
160
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
480
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.8k
その節約、円になってますか?
isamumumu
0
500
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
300
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
370
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
630
What's New in Android 2026
veronikapj
0
240
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
780
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
560
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
450
Designing Experiences People Love
moore
143
24k
How to build a perfect <img>
jonoalderson
1
5.8k
Statistics for Hackers
jakevdp
799
230k
WENDY [Excerpt]
tessaabrams
11
39k
First, design no harm
axbom
PRO
2
1.2k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Writing Fast Ruby
sferik
630
63k
Why Our Code Smells
bkeepers
PRO
340
58k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
H ouse .M.D
聚石@taobao.com https://github.com/zhongl
他是一位 诊断 技艺精湛的医生
话说 诊断 技艺精湛的 程序员会是...
System.out.println("debugging");
LOG.debug("debugging");
信息打印总不全有木有? 又要改代码 > 编译 > 部署, 有木有? 多来几次想屎的心有木有?
工欲善其事,必先利其器
BTrace 神器降临, 一秒钟变高富帅!
Invocation Interception Profile JStack Context DTrace JMap JInfo Histogram Memory
File Socket
甜蜜中略带苦涩, 幸福中稍显忧伤
https://gist.github.com/zhongl/5625338 ClassNotFoundException
https://gist.github.com/zhongl/5625366 StackOverflowError
不用IDE写脚本很苦逼, 有木有? 总是要调整几次脚本才见效, 有木有? 多来几次尿都憋不住了, 有木有?
HouseMD 交互式命令行
$ housemd <jvm pid> INFO : Welcome to HouseMD 0.2.4
INFO : connection established on 54321 housemd> _
`trace TraceTarget.addOne`
`trace TraceTarget$C+` trace sub class
`trace -d TraceTarget$C+` get args and return
`trace -s TraceTarget$C+` get invocation StackTrace
Demo
http://github.com/csug/housemd
Tips & Traps
limit < 100 timeout < 3 `trace` with `-l -t`
trace unknown sub class instance `trace` with `Xxx+`
SimpleName conflict `trace` with `-p com.xxx`
INFO: Ended by error `last` for error ending
class loaded by who from where `loaded` for class info
port conflict `housemd -p <port>`
Emacs edit mode, power by jline2 `Ctrl + r` for
history search
Backspace do not work Linux mode in SecureCRT
chmod +w /tmp No echo cause by privilege
housemd -h > help [command] test cases issues More help
!!!
https://github.com/CSUG/HouseMD/wiki/DevGuideCN Contribute to HouseMD
Intro CSUG
Thanks
Scala In HouseMD TODO