Символ аварийного дампа VB6 не разрешается

Я не могу разобраться в этой проблеме. Символ не разрешается

Развертывание

На сетевом пути развернуто несколько исполняемых файлов моей системы. Все пользователи запускают эти исполняемые файлы с этого общего сетевого пути. Две недели назад это работало нормально, но теперь некоторые из этих исполняемых файлов начали падать. Не существует шаблона исправления сбоя, это происходит с любым пользователем в любое время во время любой деятельности.

Устранение неполадок

У меня есть дамп одного из них, я попробовал WinDbg и получил следующее

Microsoft (R) Windows Debugger Version 6.2.9200.16384 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\crash\RNS1000.exe.mdmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: SRV*c:\crash*http://msdl.microsoft.com/download/symbols;c:\crash
Executable search path is: 
Windows XP Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
Machine Name:
Debug session time: Wed Oct 10 15:36:36.000 2012 (UTC + 5:00)
System Uptime: not available
Process Uptime: 0 days 7:12:54.000
................................................................
.........................................................
Loading unloaded module list
.......
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(924.85c): In-page I/O error ffffffffc000020c - code c0000006 (first/second chance not available)
eax=02060000 ebx=7c90fe01 ecx=00001000 edx=7c90e4f4 esi=000003a0 edi=00000000
eip=7c90e4f4 esp=0013afdc ebp=0013b040 iopl=0         nv up ei ng nz ac pe cy
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200297
ntdll!KiFastSystemCallRet:
7c90e4f4 c3              ret
0:000> !analyze -v 
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

GetUrlPageData2 (WinHttp) failed: 12007.

FAULTING_IP: 
RNS1000+55f610
0095f610 ??              ???

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0095f610 (RNS1000+0x0055f610)
   ExceptionCode: c0000006 (In-page I/O error)
  ExceptionFlags: 00000000
NumberParameters: 3
   Parameter[0]: 00000008
   Parameter[1]: 0095f610
   Parameter[2]: c000020c
Inpage operation failed at 0095f610, due to I/O error c000020c

DEFAULT_BUCKET_ID:  SOFTWARE_NX_FAULT

PROCESS_NAME:  RNS1000.exe

ERROR_CODE: (NTSTATUS) 0xc0000006 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The required data was not placed into memory because of an I/O error status of "0x%08lx".

EXCEPTION_CODE: (NTSTATUS) 0xc0000006 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The required data was not placed into memory because of an I/O error status of "0x%08lx".

EXCEPTION_PARAMETER1:  00000008

EXCEPTION_PARAMETER2:  0095f610

EXCEPTION_PARAMETER3:  c000020c

IO_ERROR: (NTSTATUS) 0xc000020c - The transport connection is now disconnected.

ADDITIONAL_DEBUG_TEXT:  Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD]

LAST_CONTROL_TRANSFER:  from 00000000 to 00000000

APP:  rns1000.exe

FAULTING_THREAD:  ffffffff

PRIMARY_PROBLEM_CLASS:  SOFTWARE_NX_FAULT

BUGCHECK_STR:  APPLICATION_FAULT_SOFTWARE_NX_FAULT

STACK_TEXT:  
00000000 00000000 hardware_disk!Unknown+0x0


SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  hardware_disk!Unknown

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: hardware_disk

DEBUG_FLR_IMAGE_TIMESTAMP:  0

STACK_COMMAND:  ** Pseudo Context ** ; kb

FAILURE_BUCKET_ID:  SOFTWARE_NX_FAULT_c0000006_hardware_disk!Unknown

BUCKET_ID:  APPLICATION_FAULT_SOFTWARE_NX_FAULT_hardware_disk!Unknown

IMAGE_NAME:  hardware_disk

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/RNS1000_exe/2_0_0_5/4f17b9d2/RNS1000_exe/2_0_0_5/4f17b9d2/c0000006/0055f610.htm?Retriage=1

Followup: MachineOwner
---------

Я ожидаю, что RNS1000+55f610 будет разрешен для одной из моих программных функций, но это не было разрешено. Путь sysmbol содержит exe, pdb и mdmp.

Подскажите, пожалуйста, почему не решилась? что я делаю не так?


person bjan    schedule 11.10.2012    source источник
comment
@Deanna, у меня были разрешены символы на другом компьютере, у меня могут быть проблемы с конфигурацией на моем компьютере, я не вдавался в подробности. Хотя вы были полезны тем, что это подсистема Windows дает сбой, и я ничего не могу сделать.   -  person bjan    schedule 30.11.2012


Ответы (1)


Ключевой частью здесь является In-page I/O error. Базовый диск/сетевой диск исчез. Сбой происходит через некоторое время, когда он пытается вернуться к части исполняемого файла, но у него больше нет допустимого дескриптора файла/соединения.

Единственное исправление — запустить его локально или убедиться, что диск не исчезает во время их работы.

В более общем случае вы можете заставить VB создавать информационные файлы для собственной отладки, используя параметр «Создать символическую отладочную информацию» в настройках компиляции проекта. Однако это можно сделать только заранее, и это не поможет при отладке существующей сборки.

person Deanna    schedule 11.10.2012
comment
Да, я планирую развернуть его локально для некоторых пользователей. Но я также хочу знать, какая из функций дает сбой, будь то при доступе к базе данных или что-то еще - person bjan; 11.10.2012
comment
@bjan: Это может быть абсолютно где угодно, вы никак не сможете справиться или исправить эту ситуацию в исполняемом файле. Он дошел до того, что не может запустить часть исполняемого файла, и единственный вариант — сбой и завершение работы. - person Deanna; 11.10.2012
comment
Я согласен с вами в том, что единственный вариант - сбой и завершение работы, но я видел такие приложения, которые очень хорошо обрабатывают сбой сети, поэтому мне интересно, можно ли с этим справиться, потому что это очень плохо для наших отношений с клиентами для чего-то, что, по крайней мере, их собственная ошибка/неудача. - person bjan; 11.10.2012
comment
@bjan Это зависит от того, в чем заключается ошибка, и от контекста. Если ваше приложение пытается получить доступ к чему-то и это не удалось, хорошо, обработайте это, повторите попытку. В этом случае это подсистема Windows, которая дает сбой при доступе к вашему исполняемому файлу. Ваш код даже не вступает в игру при сбое, потому что он не может его загрузить. - person Deanna; 11.10.2012