Случайные сбои в приложении Windows. Анализ дампа не помогает

Один из наших клиентов сталкивается со случайными сбоями (приложение просто исчезает) в нашем приложении. Я использовал ADPLUS для получения аварийных дампов. Каждый раз на свалке показываются разные места как часть аварии. когда я анализирую дамп, я уверен, что приложение не должно аварийно завершить работу в этом месте.

Та же версия нашего приложения работает в другом месте клиента в аналогичной среде, и никаких сбоев не наблюдается. Что еще я могу сделать, чтобы узнать об аварии.

Ниже приведены журналы просмотра событий (2 набора): они показывают MSVCR90.dll и несколько случаев mfc90.dll в качестве неисправных модулей. Как я уже говорил, сбои происходят случайно. И не в состоянии воспроизвести тот же сбой, если я выполняю те же шаги, которые закончились сбоями некоторое время назад.

Приложение: Windows 32-битное приложение.

ОС: Windows 7 Enterprise Edition, 64-разрядная

RAM: 16 ГБ

Intel (R) Xeon (R) CPU E5-2650 v2 @ 2.60GHz, Количество процессоров 32

Видеокарта: Nvidia NVS310 Версия драйвера: 9.18.13.3221 (Да, нашему приложению нужна хорошая видеокарта, так как в установке будет 2 5-Мп монитора).

Один из следов стека, как показано ниже:

0b7ae8a8 74bd3cb2 03d13d74 ccd24bf2 0000009f msvcr90!__sbh_alloc_block+0x200
0b7ae8e0 74bd3d9d 000000a0 0000009f 000000a0 msvcr90!V6_HeapAlloc+0x2d
0b7ae8f8 74bd3eb8 000000a0 03d68ee4 03d68d2c msvcr90!malloc+0x5e
0b7ae910 100062d0 000000a0 1000953f 000000a0 msvcr90!operator new+0x1f
0b7ae918 1000953f 000000a0 3c5ffb60 03d68d40 ace!ACE_New_Allocator::malloc+0x10
0b7ae930 1000d685 3c60d3c0 0000009f 00000001 ace!ACE_String_Base<char>::set+0x2f
0b7ae94c 68002d06 3c5ffb60 ccd24909 0b7ae9fd ace!ACE_String_Base<char>::ACE_String_Base<char>+0x35
0b7ae978 680030ce 3c5ffb38 ccd249d5 0b7ae9fd xml!XmlAttributes::Attribute::Attribute+0x37
0b7ae9a4 680031bd 03d68d18 3c5ffb38 ccd249a9 xml!std::_Construct<XmlAttributes::Attribute,XmlAttributes::Attribute>+0x25
0b7ae9d8 68003382 3c5ff9d0 3c5ffcdc 03d68d18 xml!std::_Uninit_copy<XmlAttributes::Attribute *,XmlAttributes::Attribute *,std::allocator<XmlAttributes::Attribute> >+0x27
0b7aea00 680036ac 3c5ff9d0 3c5ffcdc 03d68bb0 xml!stdext::unchecked_uninitialized_copy<XmlAttributes::Attribute *,XmlAttributes::Attribute *,std::allocator<XmlAttributes::Attribute> >+0x22
0b7aea14 680037c3 3c5ff9d0 3c5ffcdc 03d68bb0 xml!std::vector<XmlAttributes::Attribute,std::allocator<XmlAttributes::Attribute> >::_Umove<XmlAttributes::Attribute *>+0x15
0b7aead0 68003a39 3c635420 3c5ffcdc 00000001 xml!std::vector<XmlAttributes::Attribute,std::allocator<XmlAttributes::Attribute> >::_Insert_n+0xb2
0b7aeaf8 68003aad 0b7aeb1c 3c635420 3c5ffcdc xml!std::vector<XmlAttributes::Attribute,std::allocator<XmlAttributes::Attribute> >::insert+0x49
0b7aeb24 68003ae0 0b7aeb40 ccd24bf9 0000000d xml!std::vector<XmlAttributes::Attribute,std::allocator<XmlAttributes::Attribute> >::push_back+0x53
0b7aeb88 68006a59 3c6095a0 680200f0 3c60e5a0 xml!XmlAttributes::push+0x2c
0b7aebf4 1203ed95 3c5f5320 3c60e5a0 3c6045c0 xml!XmlHandler::startElement+0xd9
0b7aec10 1202d508 3c5f0fc0 00000000 00000000 xerces_c_1_5_1!SAXParser::startElement+0x45
0b7aec98 1202e5a0 0b7aecc3 ccd24c92 3c604630 xerces_c_1_5_1!XMLScanner::scanStartTag+0x8a8
0b7aecd4 1202e759 00000000 ccd24d4e 68020420 xerces_c_1_5_1!XMLScanner::scanContent+0x110
0b7aed08 1203e710 3c605b00 00000000 ccd24d16 xerces_c_1_5_1!XMLScanner::scanDocument+0x89
0b7aed50 6800a43e 3c605b00 00000000 1000d6d0 xerces_c_1_5_1!SAXParser::parse+0x70
0b7aed64 68004320 0b7aee70 ccd24e7d 1000d6d0 xml!XmlParser::parse+0x19
0b7aee0c 6801569a ccd24efd 1000d6d0 347df220 xml!XmlBaseBuilder::build+0x72
0b7aee8c 02343a77 0b7aefe4 0b7aef88 0b7af020 xml!SOS::XmlUtils::streamIn+0x39
0b7af05c 02348cb2 0b7af0b0 08dfbafc 1000d6d0 HTTPTransport!HTTPClient::HttpMessageFactory::decodeMessage+0x327
0b7af218 02348ab9 ffffffff 006ba586 08dfba70 HTTPTransport!HTTPClient::HttpTransport::receiveMessage+0x1f2
0b7af220 006ba586 08dfba70 3c638448 00000000 HTTPTransport!HTTPClient::HttpTransport::receiveMessage+0x9
0b7af3e0 0088ed30 0b7af964 0b7af484 08dfbafc Framework!BaseHttpTransport::MakeHttpRequest+0x246
0b7af49c 0089ab92 0b7af964 0b7afacc 0b7afaac Framework!StentorTransport::CallMethod+0x60
0b7afad8 006897be 3915cdc8 3c63a768 0b7afd60 Framework!Worklist::QueryForImageKeys+0x212

Здесь был сделан запрос, чтобы получить детали изображения в закодированном формате, который будет конвертирован в xml. Я проверил строку, для которой создается элемент xml. Это допустимая строка. malloc не удалось не уверен почему. Если я перезапущу приложение и открою то же самое приложение, проблем не будет, и те же закодированные данные будут обработаны и преобразованы в XML без каких-либо проблем.

Журналы просмотра событий Set 1:

Faulting application name: DiagnosticAPP.exe, version: 4.4.3215.0, time stamp: 0x58ccb3cc
Faulting module name: MSVCR90.dll, version: 9.0.30729.6161, time stamp: 0x4dace5b9
Exception code: 0xc0000005
Fault offset: 0x00065b9c
Faulting process id: 0x1d50
Faulting application start time: 0x01d2a330474b10c8
Faulting application path: C:\Program Files (x86)\Philips\IntelliSpace Diagnostic\4.4\DiagnosticAPP.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll

Details :
System
- Provider
[ Name]  Application Error
- EventID 1000
[ Qualifiers]  0
Level 2
Task 100
Keywords 0x80000000000000
- TimeCreated
[ SystemTime]  2017-03-22T17:58:47.000000000Z
EventRecordID 77414
Channel Application
Computer PC01234.org
Security

- EventData
DiagnosticAPP.exe
4.4.3215.0
58ccb3cc
MSVCR90.dll
9.0.30729.6161
4dace5b9
c0000005
00065b9c
1d50
01d2a330474b10c8
C:\Program Files (x86)\Philips\IntelliSpace Diagnostic\4.4\DiagnosticAPP.exe        C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll
3204d55c-0f29-11e7-ada3-4439c4510287
Report Id: 3204d55c-0f29-11e7-ada3-4439c4510287

Журналы просмотра событий Set 2:

Faulting application name: DiagnosticAPP.exe, version: 4.4.3215.0, time stamp: 0x58ccb3cc
Faulting module name: mfc90.dll, version: 9.0.30729.6161, time stamp: 0x4dad06e0
Exception code: 0xc0000005
Fault offset: 0x0020ec1b
Faulting process id: 0x296c
Faulting application start time: 0x01d2a31ee4f9cffa
Faulting application path: C:\Program Files (x86)\Philips\IntelliSpace Diagnostic\4.4\DiagnosticAPP.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.6161_none_4bf7e3e2bf9ada4c\mfc90.dll
Report Id: 79873702-0f23-11e7-ada3-4439c4510287Details :

System
- Provider
[ Name]  Application Error
- EventID 1000
[ Qualifiers]  0
Level 2
Task 100
Keywords 0x80000000000000
- TimeCreated
[ SystemTime]  2017-03-22T17:17:50.000000000Z
EventRecordID 77397
Channel Application
Computer PC01234
Security

- EventData
DiagnosticAPP.exe
4.4.3215.0
58ccb3cc
mfc90.dll
9.0.30729.6161
4dad06e0
c0000005
0020ec1b
296c
01d2a31ee4f9cffa
C:\Program Files (x86)\Philips\IntelliSpace Diagnostic\4.4\DiagnosticAPP.exe        C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.6161_none_4bf7e3e2bf9ada4c\mfc90.dll
79873702-0f23-11e7-ada3-4439c4510287

-7

Решение

Код состояния 0xc0000005 показывает, что это ошибка сегментации, возможно, из-за повреждения памяти (перезапись блоков смежных байтов). Даже я столкнулся с этой проблемой недавно, когда мне довелось выполнять memcpy над большим размером, чем выделенный, что повредило память кучи.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]