Giter Club home page Giter Club logo

housemd's Introduction

中文使用指南

HouseMD is a interactive command-line tool for dianosing Java process in runtime. It's inspiration came from BTrace, but more easier to use and more safer.

Features

  • Display loaded classes information
    • name
    • source file(.class or .jar)
    • classloaders
  • Display invocation trace summary
    • method full name and sign
    • class loader of method declaring class
    • total invoked times
    • avg elapse millis
    • self instance
  • Output invocation detail
    • timestamp
    • elapse millis
    • call thread
    • this object
    • class name
    • method name
    • arguments
    • result or exception
  • Output invocation stack trace
  • Display object field value
  • Display enviroment variable
  • Auto-completion by typing Tab
  • navigate command history by up and down, and support Ctrl + R for searching
  • Awesome features you can provide by forking me

Test cases would show more specification details.

Getting started

Pre-requirement

Install from jenv

  • install jenv
  • execute command line: $ jenv install housemd

Caution: Windows are not supported yet.

How to use

> housemd -h

A help infomation shows up like:

Usage: housemd [OPTIONS] pid
	a runtime diagnosis tool of JVM.
Options:
	-h, --help
		show help infomation of this command.
	-p, --port=[INT]
		set console local socket server port number.
		default: 54321
Parameters:
	pid
		id of process to be diagnosing.

Suppost your target pid is 1234 (you can use jps or ps get it), and then input:

> ./housemd 1234

After seen prompt housemd>, input help then you get help infomation like this:

housemd> help

quit      terminate the process.
help      display this infomation.
trace     display or output infomation of method invocaton.
loaded    display loaded classes information.
env        display system env.
inspect    display fields of a class.

You can also input help loaded and get help infomation of loaded as blow:

housemd> help loaded
Usage: loaded [OPTIONS] name
    display loaded classes information.
Options:
    -h, --classloader-hierarchies
        display classloader hierarchies of loaded class.
Parameters:
    name
        class name without package name.

More about commands

Click here to see the use cases.

Build from code

$ git clone https://github.com/zhongl/HouseMD.git housemd
$ cd housemd
$ sbt proguard

A runnable jar named housemd_x.x.x-x.x.x.min.jar should be generated blow target/scala-x.x.x/

Run it

$ java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd_x.x.x-x.x.x.min.jar [OPTIONS] <pid>

Caution: In Mac OSX, the -Xbootclasspath is no needed. You can created launch script as a shortcut.

Having fun!

housemd's People

Contributors

zhongl avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.