2012-01-17 133 views
0

我有WinDBG 6.12.0002.633 x86,我正在使用它来查看Windows Mobile 6 ARMV4I应用程序的验尸kdmp。windbg冲突信息

当我去分析callstack时,我得到了很多未知数。在分析中,我可以在* FAULTING_IP *部分看到故障位于tcpstk模块中。 (为此我也有符号,但在* STACK_TEXT *部分,tcpstk地址只显示为地址,没有符号

另外,在* MODULE_NAME *部分中, 。该错误模块是tcpstk

!analyze -v命令的结果是:

1:128:armce> !analyze -v 
***snip!*** 
FAULTING_IP: 
tcpstk!_DerefIF+38 [\private\winceos\comm\tcpipw\ip\iproute.c @ 1032] 
01b0d6f0 ???????? ??? 
***snip!*** 
IP_ON_HEAP: 07b00090 
The fault address in not in any loaded module, please check your build's rebase 
log at <releasedir>\bin\build_logs\timebuild\ntrebase.log for module which may 
contain the address if it were loaded. 

FRAME_ONE_INVALID: 1 

STACK_TEXT: 
761efa6c 07b00090 : 7b858453 00000003 00000000 00000000 : 0x7b0d6f0 
761efa7c 07b0020c : 7b858453 506f010a 00000000 00000000 : 0x7b00090 
761efacc 78012d38 : 7b858453 506f010a 00000000 00000000 : 0x7b0020c 
761efaf4 78013cdc module_78010000!AdapterBindingManager::NetUp+0xb4 [bar.cpp @ 268] 
761efb34 78014b78 module_78010000!AdapterBindingManager::EnterState+0x5e4 [bar.cpp @ 1327] 
761efda4 78015c08 module_78010000!AdapterBindingManager::ProcessEvent+0x8e4 [bar.cpp @ 1298] 
761efdd8 03f668dc module_78010000!MediaSense+0x25c [foo.cpp @ 673] 
761efe94 00000000 coredll_3f49000!ThreadBaseFunc+0x98 [\private\winceos\coreos\core\dll\apis.c @ 633] 


MODULE_NAME: Unknown_Module 

IMAGE_NAME: Unknown_Image 

DEBUG_FLR_IMAGE_TIMESTAMP: 0 

STACK_COMMAND: ~128s ; kb 

FAILURE_BUCKET_ID: INVALID_POINTER_WRITE_c0000005_Unknown_Image!Unknown 

如果我切换到kp命令,我突然看到调用堆栈的一部分

1:128:armce> kp 
Child-SP RetAddr Call Site 
761efa6c 01b0d6e0 tcpstk!_DerefIF(struct Interface * IF = 0x7b858453)+0x38 [\private\winceos\comm\tcpipw\ip\iproute.c @ 1032] 
761efa6c 00000000 tcpstk!_DerefIF(struct Interface * IF = 0x7b858453)+0x28 [\private\winceos\comm\tcpipw\ip\iproute.c @ 1026] 

为什么!analyze -v命令不能显示完全解码的callstack?为什么它表现出如此多的未知数?

+0

您是否解决了所有窗口和应用程序符号?为了修复Windows的人,你可以只输入.symfix; .reload,然后为您的应用程序,你需要编译它无论是在调试或不从PDBS剥离专用符号释放,然后再重新连接WinDbg,看看调用堆栈更有意义 – EdChum

+0

如果只是一个符号未解决的问题,我仍然会看到模块名称,但不是函数的名称。我甚至在这里看不到模块名称。只是一个地址,不指向任何东西。 – PaulH

回答

0

我认为WinDBG无法调试ARM我还没有看到任何文档说明它能够调试ARM,只有x86和x64应用程序。

在ARM工具包中提供了一个Windbg,它是与microsoft WindDbg无关的armsd的加窗版本。

+0

是的,WinDBG支持WinCE和Windows Mobile调试。 http://support.microsoft.com/kb/264038 http://www.windowsfordevices.com/c/a/Windows-For-Devices-Articles/Finding-Windows-CE-bugs-with-help-from -DR-沃森/ http://nicolasbesson.blogspot.com/2009/10/post-mortem-debug-under-windows-mobile.html – PaulH

+0

@PaulH啊,OK,当你连接WinDbg它列出所有模块或抱怨它无法验证校验和或类似?您可以使用'lm'列出加载的模块 – EdChum