Java 产生 core 文件分析
方法一
gdb $JAVA_HOME/bin/java core.118746
然后输入 bt 就可以看到进程退出时的线程栈
方法二
jstack $JAVA_HOME/bin/java core.118746
查看线程执行栈,
Thread 119385: (state = IN_NATIVE)
- com.timesten.jdbc.JdbcOdbcClient.freeStmt(long, int) @bci=0 (Compiled frame; information may be imprecise)
- com.timesten.jdbc.JdbcOdbc.SQLFreeStmt(long, int) @bci=45, line=1103 (Compiled frame)
- com.timesten.jdbc.JdbcOdbcConnection.dropOdbcStatement(long) @bci=62, line=2643 (Compiled frame)
- com.timesten.jdbc.JdbcOdbcStatement.close(boolean, boolean) @bci=184, line=556 (Compiled frame)
- com.timesten.jdbc.JdbcOdbcPreparedStatement.close(boolean, boolean) @bci=196, line=1771 (Compiled frame)
- com.timesten.jdbc.JdbcOdbcPreparedStatement.close() @bci=3, line=1723 (Compiled frame)
- org.apache.commons.dbcp.PoolingConnection.destroyObject(java.lang.Object, java.lang.Object) @bci=14, line=311 (Compiled frame)
- org.apache.commons.pool.impl.GenericKeyedObjectPool.destroy(java.util.Map) @bci=80, line=1450 (Compiled frame)
- org.apache.commons.pool.impl.GenericKeyedObjectPool.clear() @bci=168, line=1345 (Compiled frame)
- org.apache.commons.pool.impl.GenericKeyedObjectPool.close() @bci=9, line=1725 (Compiled frame)
- org.apache.commons.dbcp.PoolingConnection.close() @bci=19, line=84 (Compiled frame)
- org.apache.commons.dbcp.DelegatingConnection.close() @bci=8, line=247 (Interpreted frame)
- org.apache.commons.dbcp.PoolableConnection.reallyClose() @bci=1, line=122 (Interpreted frame)
- org.apache.commons.dbcp.PoolableConnectionFactory.destroyObject(java.lang.Object) @bci=11, line=628 (Interpreted frame)
- org.apache.commons.pool.impl.GenericObjectPool.returnObject(java.lang.Object) @bci=22, line=1346 (Compiled frame)
- org.apache.commons.dbcp.PoolableConnection.close() @bci=79, line=90 (Compiled frame)
- org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close() @bci=11, line=191 (Compiled frame)
- com.tydic.abm.common.db.JdbcManager.release() @bci=92, line=1088 (Compiled frame)
- com.tydic.abm.common.db.JdbcManager.rollback() @bci=182, line=1067 (Compiled frame)
方法三
用 jmap 命令将 core 文件转为 hprof 文件,用 MAT 或 VisualVM 进行 JVM 堆内存分析
jmap -dump:format=b,file=dump.hprof $JAVA_HOME/bin/java core.118746
展开阅读全文
版权声明:
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。