当前位置: 首页 > news >正文

linux下jdb远程调试tomcat源码

jdb远程调试tomcat

  • 在tomcat打开调试设置jvm参数

    -Xrunjdwp:transport=dt_socket,server=y,address=9090,suspend=y
    
  • 在linux命令行jdb连接9090端口

    jdb -attach ip:9090 -sourcepath /softwares/apache-tomcat-7.0.40-src/java
    
  • 设置断点

    stop at org.apache.tomcat.util.IntrospectionUtils:402
    stop at org.apache.tomcat.util.IntrospectionUtils:406
    stop at org.apache.tomcat.util.IntrospectionUtils:408
    stop at org.apache.tomcat.util.IntrospectionUtils:412 
    
  • 执行程序

    main[1] run
    > Set deferred breakpoint org.apache.tomcat.util.IntrospectionUtils:412
    Set deferred breakpoint org.apache.tomcat.util.IntrospectionUtils:412
    Set deferred breakpoint org.apache.tomcat.util.IntrospectionUtils:408
    Unable to set deferred breakpoint org.apache.tomcat.util.IntrospectionUtils:406 
    
    
    : No code at line 406 in org.apache.tomcat.util.IntrospectionUtils
    
    
    Stopping due to deferred breakpoint errors.
    Set deferred breakpoint org.apache.tomcat.util.IntrospectionUtils:402
    
    
    Breakpoint hit: 
    Breakpoint hit: "thread=main", 
    
    
    org.apache.tomcat.util.IntrospectionUtils.setProperty(), line=412 bci=849
    412                ExceptionUtils.handleThrowable(ie.getCause());
    
  • 打印变量

    main[1] locals
    Method arguments:
    o = instance of x.x.x.JNDIRealm(id=1156) 
    name = "connectionPassword"
    value = "1234"
    invokeSetProperty = true
    Local variables:
    setter = "setConnectionPassword"
    ie = instance of java.lang.reflect.InvocationTargetException(id=1160)
    main[1] dump ie.target 
     ie.target = {
        serialVersionUID: -7034897190745766939
        java.lang.Exception.serialVersionUID: -3387516993124229948
        java.lang.Throwable.serialVersionUID: -3042686055658047285
        java.lang.Throwable.detailMessage: "password decrypt is error!"
        java.lang.Throwable.cause: instance of java.lang.RuntimeException(id=1163)
        java.lang.Throwable.stackTrace: null
    }
    
  • 打印变量dump信息

    main[1] dump ie.target.cause
    ie.target.cause = {
        serialVersionUID: -7034897190745766939
        java.lang.Exception.serialVersionUID: -3387516993124229948
        java.lang.Throwable.serialVersionUID: -3042686055658047285
        java.lang.Throwable.detailMessage: "get content from cyberark error"
        java.lang.Throwable.cause: instance of 
    
    
    javapasswordsdk.exceptions.PSDKException(id=1165)
        java.lang.Throwable.stackTrace: null
    }
    
  • ctrl+c 退出

    main[1]

转载于:https://www.cnblogs.com/yangjun1120/archive/2013/05/13/3076297.html

相关文章:

  • PostgreSQL 11 preview - pgbench 支持大于1000链接(ppoll()代替select())
  • 数字操作符九度OJ 1019 简单计算器
  • NO1 ip-systemctl-fdisk
  • 执行对象cocos2d-x 2.x action动作整理集合
  • MySQL主从复制介绍
  • C# 使用GDI+绘制漂亮的ToolStrip和StatusStrip皮肤(转载)
  • Win32编程点滴3 - 简单ActiveX控件的使用
  • 禁止鼠标选中文字
  • HDU2553 N皇后问题
  • [转]给年轻工程师的十大忠告
  • Flutter 安装
  • CYQ.Data V5 批量插入与批量更新示例
  • Java知识点总结(JavaIO-打印流)
  • 在Java中使用Lua脚本语言
  • python正则
  • 03Go 类型总结
  • CSS3 变换
  • ES学习笔记(12)--Symbol
  • Java 内存分配及垃圾回收机制初探
  • Java 最常见的 200+ 面试题:面试必备
  • Java面向对象及其三大特征
  • Laravel Telescope:优雅的应用调试工具
  • mysql innodb 索引使用指南
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue2.x学习三:事件处理生命周期钩子
  • Vue官网教程学习过程中值得记录的一些事情
  • 翻译--Thinking in React
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于webpack 的 vue 多页架构
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 实战|智能家居行业移动应用性能分析
  • 使用权重正则化较少模型过拟合
  • 微信支付JSAPI,实测!终极方案
  • 主流的CSS水平和垂直居中技术大全
  • k8s使用glusterfs实现动态持久化存储
  • Mac 上flink的安装与启动
  • #每天一道面试题# 什么是MySQL的回表查询
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (转)3D模板阴影原理
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • *2 echo、printf、mkdir命令的应用
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net - 类的介绍
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .NET中统一的存储过程调用方法(收藏)
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @Autowired标签与 @Resource标签 的区别
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务