c++ - 什么会导致这样的“双倍”堆栈?
问题描述
用户报告了使用我们的 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的某些函数指针表是否被损坏以某种方式指向SAS?ICU 和 SAS 应该对彼此一无所知。
解决方案
忘记了这个问题。
该问题最终是由 sas 安装的 seh 处理程序引起的,该处理程序因 sas 启用浮点异常而被触发,然后调用驱动程序。ICU没想到fp异常被启用,触发了一个,然后sas cleanup使进程崩溃
推荐阅读
- php - php artisan migrate:install - php cli: 找不到驱动程序
- angular - Angular (Ionic) - API - 如何发布已订购的数据
- javascript - 如何使用 JQUERY 搜索 html 中的文本?
- awk - 如何复制包含特定单词和多个连续行的行,例如:使用 awk 或 sed?
- c# - 为什么子弹每次碰到墙壁时弹跳的速度都不一样?
- c - 全局变量在 C 中的紧密循环内读取
- javascript - 是否可以检查我将 c# 代码转换为 javascript
- python - 从 SQLite 游标对象访问数据 (Python)
- lua - 如何从Lua中的字符串中删除最后一行?
- javascript - Rxjs 在第一次从多个订阅发出时做一些事情