zoukankan      html  css  js  c++  java
  • jdb

      jdb 是一个简单的命令行调试器,可以调试本地或远程 Java Virtual Machine。

    jdb [ options ] [ class ] [ arguments ]
    options 命令行参数
    class  调试的类名称
    arguments main函数的参数
    
    1. 开始调试
      有两种方式启动调试,一个是新启动一个 JVM 加载指定的类,然后在开始执行指令时停止;另一个是连接到一个正在运行的 JVM。具体方法如下。
    (1) C:> jdb MyClass
    (2) C:> java -agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n MyClass  C:> jdb -attach jdbconn
    2. jdb 基本操作命令
    help, or ?  显示帮助信息
    run [class [args]]    执行 main 方法
    threads 列出正在运行的线程
    thread <thread id>  设置默认线程
    where   转储线程堆栈
    
    print  显示Java对象(简短描述)或原始数据类型值,若要显示本地变量在编译时需添加 -g 参数
      print 支持简单的Java表达式,如下:
        print MyClass.myStaticField
        print myObj.myInstanceField
        print i + j + k (i, j, k are primities and either fields or local variables)
        print myObj.myMethod() (if myMethod returns a non-null)
        print new java.lang.String("Hello").length()
    dump    原始类型打印值,对象打印每个字段(静态和实例)的当前值,同print也支持表达式
    locals 输出当前栈帧本地变量
    
    classes 列出当前已知的类
    class <class id>    显示类详细信息
    methods <class id>  列出类方法
    fields <class id>   列出类字段
    
    stop in <class id>.<method>[(argument_type,...)]  在方法中设置断点
    stop at <class id>:<line> 在某一行设置断点
      stop at MyClass:22 (在 MyClass 第22行设置断点)
      stop in java.lang.String.length (在String.length方法设置断点)
      stop in MyClass.<init>   (MyClass 构造函数)
      stop in MyClass.<clinit> (MyClass 静态块初始化方法)
    clear <class id>.<method>[(argument_type,...)]  清除一个方法的断点
    clear <class id>:<line>   清除某一行断点
    clear                     列出所有断点
     
    step  执行到下一行
    next  执行当前栈帧下一行
    cont   从断点处继续执行
    exit 退出
    3. 命令行选项
    # jdb 也识别许多java命令选项,如-D,-classpath,-X<option>(非标准 VM 选项)
    -help  显示帮助信息
    -sourcepath <dir1:dir2:...>  在指定路径下搜索源文件,默认在当前目录下
    -connect <connector-name>:<name1>=<value1>,...  附带参数连接到目标 JVM
    -tclient  Java HotSpot™ VM (Client)
    -tserver  Java HotSpot™ VM (Server)
    -Joption  将选项传递给JVM,以运行jdb,如-J-Xms48m 设置堆大小
    4. 调试 Hello World

    更多信息,请参考:jdb

    作 者:创心coder
    QQ群:361982568
    订阅号:cxcoder
    文章不足之处,还请谅解!本文会不断完善更新,转载请保留出处。如果帮到了您,烦请点赞,以资鼓励。
  • 相关阅读:
    宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)
    朱辉(茶水): Linux Kernel iowait 时间的代码原理
    宋宝华:Linux设备驱动框架里的设计模式之——模板方法(Template Method)
    宋宝华:论程序员的时代焦虑与焦虑的缓解
    邵国际: C 语言对象化设计实例 —— 命令解析器
    让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型
    宋宝华:关于Ftrace的一个完整案例
    php采集页面指定标签里面的内容
    js调用video的播放时长
    php解析url并得到url中的参数
  • 原文地址:https://www.cnblogs.com/cwane/p/6129324.html
Copyright © 2011-2022 走看看