什么会导致这样的 'doubled' 堆栈?
What can could cause a 'doubled' stack like this?
一位用户报告了使用我们的 SDK 构建的 ODBC 驱动程序崩溃,并提供了两个核心转储。我将在下面提供堆栈跟踪:
第一次崩溃:
RDFODBC_sb64.dll!_wassert(const wchar_t * expr, const wchar_t * filename, unsigned int lineno) Line 369 C
RDFODBC_sb64.dll!Simba::ODBC::ODBCTaskContainer::SetTask(Simba::ODBC::IODBCTask * in_taskPointer) Line 61 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::~Statement() Line 413 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::`scalar deleting destructor'(unsigned int) C++
RDFODBC_sb64.dll!`anonymous namespace'::DeleteAndRemove<std::vector<Simba::ODBC::Statement * __ptr64,std::allocator<Simba::ODBC::Statement * __ptr64> > >(std::vector<Simba::ODBC::Statement *,std::allocator<Simba::ODBC::Statement *> > & in_vector, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<Simba::ODBC::Statement *> > > in_toDeleteAndRemove) Line 429 C++
RDFODBC_sb64.dll!Simba::ODBC::Connection::DeleteStatement(Simba::ODBC::Statement * in_statement) Line 846 C++
RDFODBC_sb64.dll!Simba::ODBC::ConnectionState::SQLFreeHandle(Simba::ODBC::Connection * in_connection, short HandleType, void * Handle) Line 179 C++
RDFODBC_sb64.dll!Simba::ODBC::Connection::SQLFreeHandle(short HandleType, void * Handle) Line 1592 C++
RDFODBC_sb64.dll!SQLFreeHandle::__l346::<lambda>() Line 1931 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLFreeHandle(short HandleType, void * Handle) Line 2014 C++
MPAPlugin.dll!SQLFreeHandle(short HandleType, void * Handle) Line 1786 C++
odbc32.dll!FreeStmt() Unknown
odbc32.dll!SQLFreeHandle() Unknown
sasodb.dll!00000000064d7187() Unknown
sasodb.dll!00000000064c1b26() Unknown
sasioodb.dll!000000000638d6a6() Unknown
sasxdbi.dll!0000000006456fe3() Unknown
sasxdbi.dll!0000000006417fdf() Unknown
sasyh.dll!00000000053cec60() Unknown
sasyh.dll!00000000053c157a() Unknown
sasxkern.dll!0000000005155a2c() Unknown
sashost.dll!000000000383e9b2() Unknown
sashost.dll!000000000383b877() Unknown
sashost.dll!000000000383b375() Unknown
sashost.dll!000000000383d962() Unknown
sashost.dll!000000000384081f() Unknown
sashost.dll!000000000383c4e3() Unknown
sashost.dll!00000000038322c4() Unknown
sashost.dll!000000000384628f() Unknown
sashost.dll!0000000003849d10() Unknown
sashost.dll!000000000383d509() Unknown
sashost.dll!00000000038506f0() Unknown
sashost.dll!000000000384f649() Unknown
0000000004846610() Unknown
fe48daea1d7f4cf6() Unknown
cccccccccccccccc() Unknown
000000000d3683d0() Unknown
> RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142 C++
RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118 C++
RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22 C++
RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253 C++
RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211 C++
RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685 C++
RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061 C++
MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251 C++
odbc32.dll!SQLPrepareCover() Unknown
odbc32.dll!SQLPrepare() Unknown
sasodb.dll!00000000064d7ab9() Unknown
sasodb.dll!00000000064c3e06() Unknown
sasioodb.dll!00000000063c17a4() Unknown
sasxdbi.dll!000000000644e0fa() Unknown
sasxdbi.dll!0000000006415abb() Unknown
sasyoio.dll!000000000bdaad5f() Unknown
sasyoio.dll!000000000bda7597() Unknown
sassqlp.dll!000000000ba4a787() Unknown
sassqlp.dll!000000000ba49d8e() Unknown
sassqlp.dll!000000000ba36853() Unknown
sassqlp.dll!000000000ba30cd2() Unknown
sassqx.dll!000000000b8a54b3() Unknown
sassqx.dll!000000000b8a4c0e() Unknown
sassql.dll!00000000092c147c() Unknown
sashost.dll!000000000384a366() Unknown
sashost.dll!0000000003850574() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
第二次崩溃:
> kernel32.dll!IsBadReadPtr() Unknown
tkmk.dll!0000000010051baa() Unknown
tkmk.dll!000000001005383d() Unknown
tkmk.dll!0000000010053587() Unknown
tkmk.dll!0000000010054f63() Unknown
tkmk.dll!0000000010055713() Unknown
tkmk.dll!0000000010056894() Unknown
tkmk.dll!0000000010056715() Unknown
tkmk.dll!000000001005692b() Unknown
tkmk.dll!00000000100566f9() Unknown
tkmk.dll!000000001004aaaa() Unknown
sashost.dll!0000000003761589() Unknown
sashost.dll!00000000037521c4() Unknown
sashost.dll!000000000376628f() Unknown
sashost.dll!0000000003769d10() Unknown
sashost.dll!000000000375d509() Unknown
sashost.dll!00000000037706f0() Unknown
sashost.dll!000000000376f649() Unknown
0000000004844e40() Unknown
fe48daea1d7f4cf6() Unknown
cccccccccccccccc() Unknown
000000000cbd83d0() Unknown
RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142 C++
RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118 C++
RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22 C++
RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253 C++
RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211 C++
RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685 C++
RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061 C++
MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251 C++
odbc32.dll!SQLPrepareCover() Unknown
odbc32.dll!SQLPrepare() Unknown
sasodb.dll!00000000064a7ab9() Unknown
sasodb.dll!0000000006493e06() Unknown
sasioodb.dll!00000000063917a4() Unknown
sasxdbi.dll!000000000641e0fa() Unknown
sasxdbi.dll!00000000063e5abb() Unknown
sasyoio.dll!000000000a22ad5f() Unknown
sasyoio.dll!000000000a227597() Unknown
sassqlp.dll!000000000a18a787() Unknown
sassqlp.dll!000000000a189d8e() Unknown
sassqlp.dll!000000000a176853() Unknown
sassqlp.dll!000000000a170cd2() Unknown
sassqx.dll!0000000009fd54b3() Unknown
sassqx.dll!0000000009fd4c0e() Unknown
sassql.dll!0000000009f8147c() Unknown
sashost.dll!000000000376a366() Unknown
sashost.dll!0000000003770574() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
他们将驱动程序与 SAS 一起使用,并且在两个堆栈跟踪中,它看起来像是要调用 ICU(我们自己构建它并添加 'sb' 前缀),但它却以某种方式(通过这 4 帧垃圾[我假设调试器没有正确展开堆栈???])回调到 SAS?
我认为堆栈只是损坏了或什么的,但在第一个中,崩溃是由当前未使用给定语句的断言引起的(断言永远不会失败),但是,查看调试器,传递给 odbc32.dll!SQLPrepareCover() 'below' 的句柄与传递给 odbc32.dll!FreeStmt() 'above' 的句柄相同,因此断言会失败,因为我们能够再次锁定我们的互斥量(它们是递归的)并重新进入它不应该出现的地方。
除了 SAS 使用光纤或其他某种绿色线程外,我想不出任何会导致这种情况的原因?还是信号处理程序? (但我认为 windows 的工作方式不同,我认为它会出现在堆栈上)。 ICU 的某些函数指针 table 是否被损坏以某种方式指向 SAS? ICU & SAS 应该对彼此一无所知。
忘了这个问题。
问题最终是由 sas 安装的 seh 处理程序引起的,它被触发是因为 sas 启用了浮点异常,然后调用了驱动程序。 ICU没想到会启用fp异常,触发了一个,然后sas cleanup crash了进程
一位用户报告了使用我们的 SDK 构建的 ODBC 驱动程序崩溃,并提供了两个核心转储。我将在下面提供堆栈跟踪:
第一次崩溃:
RDFODBC_sb64.dll!_wassert(const wchar_t * expr, const wchar_t * filename, unsigned int lineno) Line 369 C
RDFODBC_sb64.dll!Simba::ODBC::ODBCTaskContainer::SetTask(Simba::ODBC::IODBCTask * in_taskPointer) Line 61 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::~Statement() Line 413 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::`scalar deleting destructor'(unsigned int) C++
RDFODBC_sb64.dll!`anonymous namespace'::DeleteAndRemove<std::vector<Simba::ODBC::Statement * __ptr64,std::allocator<Simba::ODBC::Statement * __ptr64> > >(std::vector<Simba::ODBC::Statement *,std::allocator<Simba::ODBC::Statement *> > & in_vector, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<Simba::ODBC::Statement *> > > in_toDeleteAndRemove) Line 429 C++
RDFODBC_sb64.dll!Simba::ODBC::Connection::DeleteStatement(Simba::ODBC::Statement * in_statement) Line 846 C++
RDFODBC_sb64.dll!Simba::ODBC::ConnectionState::SQLFreeHandle(Simba::ODBC::Connection * in_connection, short HandleType, void * Handle) Line 179 C++
RDFODBC_sb64.dll!Simba::ODBC::Connection::SQLFreeHandle(short HandleType, void * Handle) Line 1592 C++
RDFODBC_sb64.dll!SQLFreeHandle::__l346::<lambda>() Line 1931 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLFreeHandle(short HandleType, void * Handle) Line 2014 C++
MPAPlugin.dll!SQLFreeHandle(short HandleType, void * Handle) Line 1786 C++
odbc32.dll!FreeStmt() Unknown
odbc32.dll!SQLFreeHandle() Unknown
sasodb.dll!00000000064d7187() Unknown
sasodb.dll!00000000064c1b26() Unknown
sasioodb.dll!000000000638d6a6() Unknown
sasxdbi.dll!0000000006456fe3() Unknown
sasxdbi.dll!0000000006417fdf() Unknown
sasyh.dll!00000000053cec60() Unknown
sasyh.dll!00000000053c157a() Unknown
sasxkern.dll!0000000005155a2c() Unknown
sashost.dll!000000000383e9b2() Unknown
sashost.dll!000000000383b877() Unknown
sashost.dll!000000000383b375() Unknown
sashost.dll!000000000383d962() Unknown
sashost.dll!000000000384081f() Unknown
sashost.dll!000000000383c4e3() Unknown
sashost.dll!00000000038322c4() Unknown
sashost.dll!000000000384628f() Unknown
sashost.dll!0000000003849d10() Unknown
sashost.dll!000000000383d509() Unknown
sashost.dll!00000000038506f0() Unknown
sashost.dll!000000000384f649() Unknown
0000000004846610() Unknown
fe48daea1d7f4cf6() Unknown
cccccccccccccccc() Unknown
000000000d3683d0() Unknown
> RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142 C++
RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118 C++
RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22 C++
RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253 C++
RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211 C++
RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685 C++
RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061 C++
MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251 C++
odbc32.dll!SQLPrepareCover() Unknown
odbc32.dll!SQLPrepare() Unknown
sasodb.dll!00000000064d7ab9() Unknown
sasodb.dll!00000000064c3e06() Unknown
sasioodb.dll!00000000063c17a4() Unknown
sasxdbi.dll!000000000644e0fa() Unknown
sasxdbi.dll!0000000006415abb() Unknown
sasyoio.dll!000000000bdaad5f() Unknown
sasyoio.dll!000000000bda7597() Unknown
sassqlp.dll!000000000ba4a787() Unknown
sassqlp.dll!000000000ba49d8e() Unknown
sassqlp.dll!000000000ba36853() Unknown
sassqlp.dll!000000000ba30cd2() Unknown
sassqx.dll!000000000b8a54b3() Unknown
sassqx.dll!000000000b8a4c0e() Unknown
sassql.dll!00000000092c147c() Unknown
sashost.dll!000000000384a366() Unknown
sashost.dll!0000000003850574() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
第二次崩溃:
> kernel32.dll!IsBadReadPtr() Unknown
tkmk.dll!0000000010051baa() Unknown
tkmk.dll!000000001005383d() Unknown
tkmk.dll!0000000010053587() Unknown
tkmk.dll!0000000010054f63() Unknown
tkmk.dll!0000000010055713() Unknown
tkmk.dll!0000000010056894() Unknown
tkmk.dll!0000000010056715() Unknown
tkmk.dll!000000001005692b() Unknown
tkmk.dll!00000000100566f9() Unknown
tkmk.dll!000000001004aaaa() Unknown
sashost.dll!0000000003761589() Unknown
sashost.dll!00000000037521c4() Unknown
sashost.dll!000000000376628f() Unknown
sashost.dll!0000000003769d10() Unknown
sashost.dll!000000000375d509() Unknown
sashost.dll!00000000037706f0() Unknown
sashost.dll!000000000376f649() Unknown
0000000004844e40() Unknown
fe48daea1d7f4cf6() Unknown
cccccccccccccccc() Unknown
000000000cbd83d0() Unknown
RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142 C++
RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118 C++
RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72 C++
RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60 C++
RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22 C++
RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742 C++
RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43 C++
RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253 C++
RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211 C++
RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685 C++
RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061 C++
RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284 C++
RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229 C++
RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061 C++
MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251 C++
odbc32.dll!SQLPrepareCover() Unknown
odbc32.dll!SQLPrepare() Unknown
sasodb.dll!00000000064a7ab9() Unknown
sasodb.dll!0000000006493e06() Unknown
sasioodb.dll!00000000063917a4() Unknown
sasxdbi.dll!000000000641e0fa() Unknown
sasxdbi.dll!00000000063e5abb() Unknown
sasyoio.dll!000000000a22ad5f() Unknown
sasyoio.dll!000000000a227597() Unknown
sassqlp.dll!000000000a18a787() Unknown
sassqlp.dll!000000000a189d8e() Unknown
sassqlp.dll!000000000a176853() Unknown
sassqlp.dll!000000000a170cd2() Unknown
sassqx.dll!0000000009fd54b3() Unknown
sassqx.dll!0000000009fd4c0e() Unknown
sassql.dll!0000000009f8147c() Unknown
sashost.dll!000000000376a366() Unknown
sashost.dll!0000000003770574() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
他们将驱动程序与 SAS 一起使用,并且在两个堆栈跟踪中,它看起来像是要调用 ICU(我们自己构建它并添加 'sb' 前缀),但它却以某种方式(通过这 4 帧垃圾[我假设调试器没有正确展开堆栈???])回调到 SAS?
我认为堆栈只是损坏了或什么的,但在第一个中,崩溃是由当前未使用给定语句的断言引起的(断言永远不会失败),但是,查看调试器,传递给 odbc32.dll!SQLPrepareCover() 'below' 的句柄与传递给 odbc32.dll!FreeStmt() 'above' 的句柄相同,因此断言会失败,因为我们能够再次锁定我们的互斥量(它们是递归的)并重新进入它不应该出现的地方。
除了 SAS 使用光纤或其他某种绿色线程外,我想不出任何会导致这种情况的原因?还是信号处理程序? (但我认为 windows 的工作方式不同,我认为它会出现在堆栈上)。 ICU 的某些函数指针 table 是否被损坏以某种方式指向 SAS? ICU & SAS 应该对彼此一无所知。
忘了这个问题。
问题最终是由 sas 安装的 seh 处理程序引起的,它被触发是因为 sas 启用了浮点异常,然后调用了驱动程序。 ICU没想到会启用fp异常,触发了一个,然后sas cleanup crash了进程