2012-01-17 5 views
0

У меня есть WinDBG 6.12.0002.633 x86, и я использую его для просмотра post-mortem kdmp из приложения Windows Mobile 6 ARMV4I.windbg противоречивая информация

Когда я перехожу к анализу вызова, я получаю много неизвестных. В анализе я вижу в разделе * 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 не может показать полностью декодированный столбец? Почему это так много неизвестных?

+0

Вы разрешили все окна и символы приложения? Чтобы исправить окна, вы можете ввести только .symfix ;.reload, то для вашего приложения вам нужно скомпилировать его либо в отладке, либо в выпуске без личных символов, удаленных из pdbs, затем повторно присоедините WinDbg и посмотрите, – EdChum

+0

Если бы это было просто вопрос о том, что символы не будут разрешены, я все равно буду видеть имя модуля, но не имя функции. Я даже не вижу здесь имени модуля. Просто адрес, который не указывает ни на что. – PaulH

ответ

0

Я думаю, что WinDBG не может отлаживать ARM. Я не видел никакой документации, в которой говорится, что она способна отлаживать ARM, только приложения x86 и x64.

В наборе инструментов ARM есть Windbg, который является оконной версией armd, которая не связана с Microsoft WindDbg.

+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-Watson/ http://nicolasbesson.blogspot.com/2009/10/post-mortem-debug-under-windows-mobile.html – PaulH

+0

@PaulH ах, хорошо, когда вы присоединяете WinDbg, он перечисляет все модули или жалуются, что он не может проверить контрольную сумму или что-то подобное? вы можете перечислить загруженные модули с помощью 'lm' – EdChum

Смежные вопросы