jdb-usage

在 java 进程有一些莫名其妙的问题,可以通过 jdb 来处理问题。

在上周在通过 HttpClient 访问时,有发现代码里的 NPE,从源码日志看逻辑是没有问题,运行的进程的 jar 包又不好替换,就使用 jdb 命令发现 getContentLength 方法返回值为 -1(后来发现另一个可以使用的接口里没有判断这个值,并且这个值也为 -1,我猜想是从 stream中获取导致不需要这个值),会导致 NPE。在这种情况下使用 jdb 命令非常方便的看到是怎么回事。

具体使用方法有两个博客可以参考,这里记录一下:

  1. https://www.ibm.com/developerworks/cn/java/joy-jdb/index.html
  2. https://blog.csdn.net/arkblue/article/details/39718947