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
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
330
当配置遇到 Scala宏
zhongl
1
370
项目求生指南
zhongl
0
380
LEGO - let's build everything by scala
zhongl
1
290
Real-world Scala
zhongl
2
170
Art of The Code
zhongl
1
260
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
470
Oxlintのカスタムルールの現況
syumai
6
1k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
190
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
120
The NotImplementedError Problem in Ruby
koic
1
650
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
My Coaching Mixtape
mlcsv
0
140
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
The Cost Of JavaScript in 2023
addyosmani
55
10k
Paper Plane (Part 1)
katiecoart
PRO
0
8.7k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
Facilitating Awesome Meetings
lara
57
6.9k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
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