题问
how to tackle and debug issues in scenarios where they only occur in production (or other remote environment) but not in development environment . as anybody who has been in this kind of situation would acknowledge.
当一些问题只在生产环境下出现,或者其他远程环境下出现,但是在本地上调试并没有出现,几乎每个开发人员都会面临的问题。一般我们的做法是查看系统的日志报错,然后根据报错进行猜测是哪里的原因,可是有时候是很难定位到原因的所在,而远程调试能帮我们快速的定位问题的所在。
什么是远程调试?
在计算机中远程调试是在本地上进行代码调试,而调试的并不是本地启动的服务器,而是测试环境或staging或者线上的某个生产环境,就像在本地启动服务调试一样。
配置过程
分为两部分进行,一部分是配置远程的tomcat可以进行远程调试,另一个部分就是配置我们的Intellij IDEA了。
一、第一部分设置JVM为可以远程调试
设置JVM可以远程调试有几种方式,JPDA_OPTS,CATALIN_OPTS ,JAVA_OPTS,我们一般不使用JAVA_OPTS,因为它会暴露所有的JVM应用,CATALIN_OPTS这种方式仅限在tomcat中使用。下面就一一介绍。
使用JPDA_OPTS