设置调试linux下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/xinyuyuanm/p/3076815.html