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
    文章不足之处,还请谅解!本文会不断完善更新,转载请保留出处。如果帮到了您,烦请点赞,以资鼓励。
  • 相关阅读:
    一些你可能用到的代码
    iOS 键盘下去的方法
    iOS设计模式汇总
    随笔
    Spring cloud config 分布式配置中心 (三) 总结
    Spring cloud config 分布式配置中心(二) 客户端
    Spring cloud config 分布式配置中心(一) 服务端
    jdbcUrl is required with driverClassName spring boot 2.0版本
    JpaRepository接口找不到 spring boot 项目
    解决IntelliJ “Initialization failed for 'https://start.spring.io'
  • 原文地址:https://www.cnblogs.com/cwane/p/6129324.html
Copyright © 2011-2022 走看看