Я сейчас пытаюсь докопаться до сбоя клиента с помощью одного из наших приложений. Я завернул приложение в обработчик исключений, который создает мини-дамп при возникновении сбоя.
Приложение аварийно завершает работу, за исключением c0000139 (документации о нем не так уж много).
CallCack выглядит так
ntdll.dll!_RtlRaiseStatus@4() + 0x26 bytes
ntdll.dll!_LdrpSnapThunk@32() + 0x26f48 bytes
ntdll.dll!_LdrpSnapIAT@16() + 0xd9 bytes
ntdll.dll!_LdrpHandleOneOldFormatImportDescriptor@16() + 0x7a bytes
ntdll.dll!_LdrpHandleOldFormatImportDescriptors@16() + 0x2e bytes
ntdll.dll!_LdrpWalkImportDescriptor@8() + 0x11d bytes
ntdll.dll!_LdrpLoadDll@24() - 0x265 bytes
ntdll.dll!_LdrLoadDll@16() + 0x110 bytes
kernel32.dll!_LoadLibraryExW@12() + 0xc8 bytes
odbc32.dll!_ODBCLoadLibraryEx@12() + 0x29 bytes
odbc32.dll!_LoadDriver@12() + 0x119f bytes
odbc32.dll!_SQLDriverConnectW@32() + 0x1be bytes
odbc32.dll!_SQLDriverConnect@32() + 0x125 bytes
Похоже, что программа пытается создать соединение с базой данных (к Oracle через ODBC) и каким-то образом не может найти DLL или обнаружила DLL с неверной точкой входа.
Мне было интересно, может ли кто-нибудь дать совет, как отследить эту проблему дальше, или если у кого-то возникла эта проблема, мне было бы интересно узнать, как вы ее решили.
Заранее спасибо
Рич