java - 寻找 java .pdb 文件,分析崩溃的 hdmp 文件

标签 java windbg crash-dumps jvm-crash

我正在尝试分析包含 Java 崩溃的 .hdmp 文件(Windows 崩溃转储)。 我看到堆栈转储崩溃和所有 dll/模块,但没有看到 java 的,例如(jvm、nio 等)。

当我使用 windbg 或 Visual Studio 时,它会提示缺少 jdk/jre 中不存在的 java symbols/.pdb 文件。我在互联网上看到一些关于获取我找不到的调试 jdk 版本的答案..

任何人都知道如何获取 java .pdb 文件?或者在没有这些的情况下以其他方式分析此文件?

这里是分析-v

windbg -z foo.hdmp
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
The stored exception information can be accessed via .ecxr.
!analyze -v
APPLICATION_FAULT_STATUS_HEAP_CORRUPTION_AFTER_CALL


Microsoft (R) Windows Debugger Version 6.2.8400.0 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [D:\oded\appcrash\WER24CD.tmp.hdmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Version 7600 MP (8 procs) Free x64
Product: Server, suite: Enterprise TerminalServer SingleUserTS
Machine Name:
Debug session time: Mon Jun  4 22:42:31.000 2012 (UTC + 3:00)
System Uptime: 76 days 3:25:16.239
Process Uptime: 0 days 8:44:33.000
.............................................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(25c8.12b0): Unknown exception - code c0000374 (first/second chance not available)
ntdll!NtWaitForSingleObject+0xa:
00000000`77a5f6fa c3              ret
0:077> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for nio.dll -
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for jvm.dll -
*** ERROR: Module load completed but symbols could not be loaded for java.exe
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for net.dll -
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for java.dll -

FAULTING_IP:
ntdll!RtlReportCriticalFailure+62
00000000`77ad6ab2 eb00            jmp     ntdll!RtlReportCriticalFailure+0x64 (00000000`77ad6ab4)

EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000077ad6ab2 (ntdll!RtlReportCriticalFailure+0x0000000000000062)
   ExceptionCode: c0000374
  ExceptionFlags: 00000001
NumberParameters: 1
   Parameter[0]: 0000000077b4d430

PROCESS_NAME:  java.exe

ERROR_CODE: (NTSTATUS) 0xc0000374 - A heap has been corrupted.

EXCEPTION_CODE: (NTSTATUS) 0xc0000374 - A heap has been corrupted.

EXCEPTION_PARAMETER1:  0000000077b4d430

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

APP:  java.exe

LAST_CONTROL_TRANSFER:  from 0000000077ad7176 to 0000000077ad6ab2

FAULTING_THREAD:  ffffffffffffffff

BUGCHECK_STR:  APPLICATION_FAULT_STATUS_HEAP_CORRUPTION_AFTER_CALL

PRIMARY_PROBLEM_CLASS:  STATUS_HEAP_CORRUPTION_AFTER_CALL

DEFAULT_BUCKET_ID:  STATUS_HEAP_CORRUPTION_AFTER_CALL

STACK_TEXT: 
00000000`59fef390 00000000`77ad7176 : 00000000`00000002 00000008`00000023 00000000`00000000 00000007`00000003 : ntdll!RtlReportCriticalFailure+0x62
00000000`59fef460 00000000`77ad84a2 : 00000000`5578d000 00000000`5578d000 00000007`1e5a91c8 00000000`59fef660 : ntdll!RtlpReportHeapFailure+0x26
00000000`59fef490 00000000`77ad9e34 : 00000000`525d0000 00000000`00000000 00000000`00000000 00000008`00000003 : ntdll!RtlpHeapHandleError+0x12
00000000`59fef4c0 00000000`77a7c05d : 00000000`66ff4fc0 00000000`525d0000 00000000`66ff4fd0 00000000`5578d000 : ntdll!RtlpLogHeapFailure+0xa4
00000000`59fef4f0 000007fe`ff306db6 : 00000000`0000225c 00000000`66ff4fd0 00000000`66ff4fd0 000007fe`ff30353b : ntdll! ?? ::FNODOBFM::`string'+0x11e74
00000000`59fef570 000007fe`ff306d93 : 00000000`00000007 00000000`8004667e 00000000`0000225c 00000000`00000004 : ws2_32!DSOCKET::`scalar deleting destructor'+0x16
00000000`59fef5a0 000007fe`ff310ad3 : 00000000`0000225c 00000000`526472a0 00000000`59fef718 00000000`00000004 : ws2_32!DSOCKET::DestroyDSocket+0x13
00000000`59fef5d0 000007fe`ff305312 : 00000007`1e5a9200 00000000`59fef760 00000000`5578d1d0 00000000`0000225c : ws2_32!alloca_probe+0x46e0
00000000`59fef660 00000000`6d6c28e3 : 00000002`1907e440 00000000`007083d7 00000001`00000401 00000001`00000000 : ws2_32!ioctlsocket+0x32
00000000`59fef6c0 00000000`029575f3 : 00000007`1e5a91c8 00000002`19081008 00000001`18c2c480 00000000`00000001 : nio!Java_sun_nio_ch_IOUtil_configureBlocking+0x5b
00000000`59fef700 00000007`1e5a91c8 : 00000002`19081008 00000001`18c2c480 00000000`00000001 00000007`1e5a9198 : 0x29575f3
00000000`59fef708 00000002`19081008 : 00000001`18c2c480 00000000`00000001 00000007`1e5a9198 00000000`02def73c : 0x00000007`1e5a91c8
00000000`59fef710 00000001`18c2c480 : 00000000`00000001 00000007`1e5a9198 00000000`02def73c 00000000`000003e8 : 0x00000002`19081008
00000000`59fef718 00000000`00000001 : 00000007`1e5a9198 00000000`02def73c 00000000`000003e8 00000000`02634ed5 : 0x00000001`18c2c480
00000000`59fef720 00000007`1e5a9198 : 00000000`02def73c 00000000`000003e8 00000000`02634ed5 00000002`19498520 : 0x1
00000000`59fef728 00000000`02def73c : 00000000`000003e8 00000000`02634ed5 00000002`19498520 00000000`59fef7a0 : 0x00000007`1e5a9198
00000000`59fef730 00000000`000003e8 : 00000000`02634ed5 00000002`19498520 00000000`59fef7a0 00000001`18c2c480 : 0x2def73c
00000000`59fef738 00000000`02634ed5 : 00000002`19498520 00000000`59fef7a0 00000001`18c2c480 00000002`1907bca8 : 0x3e8
00000000`59fef740 00000002`19498520 : 00000000`59fef7a0 00000001`18c2c480 00000002`1907bca8 00000007`1e5a9218 : 0x2634ed5
00000000`59fef748 00000000`59fef7a0 : 00000001`18c2c480 00000002`1907bca8 00000007`1e5a9218 00000000`02d514e4 : 0x00000002`19498520
00000000`59fef750 00000001`18c2c480 : 00000002`1907bca8 00000007`1e5a9218 00000000`02d514e4 00000002`1907bbd0 : 0x59fef7a0
00000000`59fef758 00000002`1907bca8 : 00000007`1e5a9218 00000000`02d514e4 00000002`1907bbd0 00000002`4320f795 : 0x00000001`18c2c480
00000000`59fef760 00000007`1e5a9218 : 00000000`02d514e4 00000002`1907bbd0 00000002`4320f795 00000000`4320f7ba : 0x00000002`1907bca8
00000000`59fef768 00000000`02d514e4 : 00000002`1907bbd0 00000002`4320f795 00000000`4320f7ba 00000007`1e5a8f90 : 0x00000007`1e5a9218
00000000`59fef770 00000002`1907bbd0 : 00000002`4320f795 00000000`4320f7ba 00000007`1e5a8f90 00000007`00000000 : 0x2d514e4
00000000`59fef778 00000002`4320f795 : 00000000`4320f7ba 00000007`1e5a8f90 00000007`00000000 00000007`1e5a92a8 : 0x00000002`1907bbd0
00000000`59fef780 00000000`4320f7ba : 00000007`1e5a8f90 00000007`00000000 00000007`1e5a92a8 00000000`e3cb5255 : 0x00000002`4320f795
00000000`59fef788 00000007`1e5a8f90 : 00000007`00000000 00000007`1e5a92a8 00000000`e3cb5255 00000007`1e5a9218 : 0x4320f7ba
00000000`59fef790 00000007`00000000 : 00000007`1e5a92a8 00000000`e3cb5255 00000007`1e5a9218 00000000`00000001 : 0x00000007`1e5a8f90
00000000`59fef798 00000007`1e5a92a8 : 00000000`e3cb5255 00000007`1e5a9218 00000000`00000001 00000000`4329305b : 0x00000007`00000000
00000000`59fef7a0 00000000`e3cb5255 : 00000007`1e5a9218 00000000`00000001 00000000`4329305b 00000002`19497a88 : 0x00000007`1e5a92a8
00000000`59fef7a8 00000007`1e5a9218 : 00000000`00000001 00000000`4329305b 00000002`19497a88 00000000`01d189f8 : 0xe3cb5255
00000000`59fef7b0 00000000`00000001 : 00000000`4329305b 00000002`19497a88 00000000`01d189f8 01cd428a`2c12330a : 0x00000007`1e5a9218
00000000`59fef7b8 00000000`4329305b : 00000002`19497a88 00000000`01d189f8 01cd428a`2c12330a 00000000`00000000 : 0x1
00000000`59fef7c0 00000002`19497a88 : 00000000`01d189f8 01cd428a`2c12330a 00000000`00000000 00000002`19497bc0 : 0x4329305b
00000000`59fef7c8 00000000`01d189f8 : 01cd428a`2c12330a 00000000`00000000 00000002`19497bc0 00000007`18038448 : 0x00000002`19497a88
00000000`59fef7d0 01cd428a`2c12330a : 00000000`00000000 00000002`19497bc0 00000007`18038448 4320f726`3f400000 : 0x1d189f8
00000000`59fef7d8 00000000`00000000 : 00000002`19497bc0 00000007`18038448 4320f726`3f400000 00000007`1e5a9170 : 0x01cd428a`2c12330a


FOLLOWUP_IP:
ws2_32!DSOCKET::DestroyDSocket+13
000007fe`ff306d93 4883c428        add     rsp,28h

SYMBOL_STACK_INDEX:  2

SYMBOL_NAME:  ws2_32!DSOCKET::DestroyDSocket+13

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ws2_32

IMAGE_NAME:  ws2_32.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  4a5be095

STACK_COMMAND:  ~77s; .ecxr ; kb

FAILURE_BUCKET_ID:  STATUS_HEAP_CORRUPTION_AFTER_CALL_c0000374_ws2_32.dll!DSOCKET::DestroyDSocket

BUCKET_ID:  X64_APPLICATION_FAULT_STATUS_HEAP_CORRUPTION_AFTER_CALL_ws2_32!DSOCKET::DestroyDSocket+13

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/java_exe/6_0_270_7/4e253d37/ntdll_dll/6_1_7600_16695/4cc7b325/c0000374/000c6ab2.htm?Retriage=1

我怀疑 NIO 或 Jetty 是这次崩溃的原因,我希望能够读取丢失的堆栈行(在这一行下面:nio!Java_sun_nio_ch_IOUtil_configureBlocking+0x5b),以了解哪个类/函数正在调用它,看到:错误:找不到符号文件..

谢谢。

最佳答案

您可以尝试 OpenJDK 的调试版本.它有 pdb 用于 Windows 构建的文件。 但是,这些构建不是官方的,可能无法重现您遇到的确切错误。

https://github.com/alexkasko/openjdk-unofficial-builds

关于java - 寻找 java .pdb 文件,分析崩溃的 hdmp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12265573/

相关文章:

c++ - 在 WinDBG 中名称包含空格的重载函数处设置断点

macos - 在 Mac OS X 上本地存储内核核心转储

windbg - WinDbg 应该慢得令人难以忍受吗?

java - 对大量网站运行相同的测试

java - Tomcat 阀门设置

java - 如何使用 Java 中的 POI 在不同列上写入现有的 Excel (*.xlsx) 文件?

java - 如何在我想要返回的方法中从 lambda 返回值?

c# - Visual Studio 2013 调试崩溃

c# - 时间旅行调试 : How to do it in C#?

windows - 如何使用 procdump -t -- 在进程终止时转储?