0:018> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
*** WARNING: Unable to verify checksum for OpenCover.Profiler.dll
*** WARNING: Unable to verify timestamp for mscoreei.dll
*** WARNING: Unable to verify timestamp for fbembed.dll
Unable to load image C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll, Win32 error 0n2
CONTEXT: (.ecxr)
rax=0000003e00c4cd78 rbx=00000000c0000374 rcx=0000000000000000
rdx=00007ff8ec8db858 rsi=0000000000000000 rdi=00007ff95558dd40
rip=00007ff955550f20 rsp=0000003e00c4d210 rbp=0000000000000000
r8=0000000000000003 r9=00007ff94cdf02b4 r10=00007ff9554b3e07
r11=000000000000000a r12=00007ff94be0e860 r13=0000003e00c4ebc0
r14=0000000000000008 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
ntdll!RtlReportCriticalFailure+0x8c:
00007ff9`55550f20 eb00 jmp ntdll!RtlReportCriticalFailure+0x8e (00007ff9`55550f22)
Resetting default scope
FAULTING_IP:
ntdll!RtlReportCriticalFailure+8c
00007ff9`55550f20 eb00 jmp ntdll!RtlReportCriticalFailure+0x8e (00007ff9`55550f22)
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ff955550f20 (ntdll!RtlReportCriticalFailure+0x000000000000008c)
ExceptionCode: c0000374
ExceptionFlags: 00000001
NumberParameters: 1
Parameter[0]: 00007ff95558dd40
PROCESS_NAME: vstest.executionengine.exe
ERROR_CODE: (NTSTATUS) 0xc0000374 - A heap has been corrupted.
EXCEPTION_CODE: (NTSTATUS) 0xc0000374 - A heap has been corrupted.
EXCEPTION_PARAMETER1: 00007ff95558dd40
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
APP: vstest.executionengine.exe
ANALYSIS_VERSION: 10.0.10075.9 amd64fre
MANAGED_CODE: 1
MANAGED_ENGINE_MODULE: clr
MANAGED_ANALYSIS_PROVIDER: SOS
MANAGED_THREAD_ID: a94
LAST_CONTROL_TRANSFER: from 00007ff955554162 to 00007ff955550f20
FAULTING_THREAD: ffffffff
BUGCHECK_STR: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy
DEFAULT_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy
STACK_TEXT:
00007ff9`5558dda8 00007ff9`5550af79 ntdll!RtlFreeHeap+0x75e49
00007ff9`5558ddb0 00007ff9`4cdb5ec0 opencover_profiler!free+0x1c
00007ff9`5558ddb8 00007ff9`4cda5a14 opencover_profiler!std::_Hash<std::_Umap_traits<unsigned long,_MSG_SendVisitPoints_Request * __ptr64,std::_Uhash_compare<unsigned long,std::hash<unsigned long>,std::equal_to<unsigned long> >,std::allocator<std::pair<unsigned long const ,_MSG_SendVisitPoints_R+0xf4
00007ff9`5558ddc0 00007ff9`4cda72bf opencover_profiler!std::unordered_map<unsigned long,_MSG_SendVisitPoints_Request * __ptr64,std::hash<unsigned long>,std::equal_to<unsigned long>,std::allocator<std::pair<unsigned long const ,_MSG_SendVisitPoints_Request * __ptr64> > >::operator[]+0x9f
00007ff9`5558ddc8 00007ff9`4cda7f47 opencover_profiler!ProfilerCommunication::GetVisitMapForOSThread+0x27
00007ff9`5558ddd0 00007ff9`4cda7b0c opencover_profiler!ProfilerCommunication::AddVisitPointToThreadBuffer+0x2c
00007ff9`5558ddd8 00007ff8`ee464c4d unknown!unknown+0x0
STACK_COMMAND: dps 7ff95558dda8 ; kb
FOLLOWUP_IP:
OpenCover_Profiler!std::_Hash<std::_Umap_traits<unsigned long,_MSG_SendVisitPoints_Request * __ptr64,std::_Uhash_compare<unsigned long,std::hash<unsigned long>,std::equal_to<unsigned long> >,std::allocator<std::pair<unsigned long const ,_MSG_SendVisitPoints_R+f4 [c:\program files (x86)\microsoft visual studio 12.0\vc\include\xhash @ 880]
00007ff9`4cda5a14 48891e mov qword ptr [rsi],rbx
FAULTING_SOURCE_LINE: c:\program files (x86)\microsoft visual studio 12.0\vc\include\xhash
FAULTING_SOURCE_FILE: c:\program files (x86)\microsoft visual studio 12.0\vc\include\xhash
FAULTING_SOURCE_LINE_NUMBER: 880
FAULTING_SOURCE_CODE:
876: }
877: else
878: { // discard new list element and return existing
879: _Destroy_if_not_nil(_Pnode);
> 880: return (_Pairib(_Make_iter(_Where), false));
881: }
882: _CATCH_ALL
883: _Destroy_if_not_nil(_Pnode);
884: _RERAISE;
885: _CATCH_END
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: opencover_profiler!std::_Hash<std::_Umap_traits<unsigned long,_MSG_SendVisitPoints_Request * __ptr64,std::_Uhash_compare<unsigned long,std::hash<unsigned long>,std::equal_to<unsigned long> >,std::allocator<std::pair<unsigned long const ,_MSG_SendVisitPoints_R+f4
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: OpenCover_Profiler
IMAGE_NAME: OpenCover.Profiler.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 55a9a9d7
BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy_opencover_profiler!std::_Hash_std::_Umap_traits_unsigned_long,_MSG_SendVisitPoints_Request_*___ptr64,std::_Uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocato
PRIMARY_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy_opencover_profiler!std::_Hash_std::_Umap_traits_unsigned_long,_MSG_SendVisitPoints_Request_*___ptr64,std::_Uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocato
FAILURE_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy
FAILURE_EXCEPTION_CODE: c0000374
FAILURE_IMAGE_NAME: OpenCover.Profiler.dll
FAILURE_FUNCTION_NAME: std::_Hash_std::_Umap_traits_unsigned_long,_MSG_SendVisitPoints_Request_*___ptr64,std::_Uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocator_std::pair_unsigned_long_const_,_MSG_SendVisitPoints_R
FAILURE_SYMBOL_NAME: OpenCover.Profiler.dll!std::_Hash_std::_Umap_traits_unsigned_long,_MSG_SendVisitPoints_Request_*___ptr64,std::_Uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocator_std::pair_unsigned_long_const_,_MSG_SendVisitPoints_R
FAILURE_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_block_not_busy_c0000374_OpenCover.Profiler.dll!std::_Hash_std::_Umap_traits_unsigned_long,_MSG_SendVisitPoints_Request_*___ptr64,std::_Uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocator_std::pair_unsigned_long_const_,_MSG_SendVisitPoints_R
ANALYSIS_SOURCE: UM
FAILURE_ID_HASH_STRING: um:actionable_heap_corruption_heap_failure_block_not_busy_c0000374_opencover.profiler.dll!std::_hash_std::_umap_traits_unsigned_long,_msg_sendvisitpoints_request_*___ptr64,std::_uhash_compare_unsigned_long,std::hash_unsigned_long_,std::equal_to_unsigned_long___,std::allocator_std::pair_unsigned_long_const_,_msg_sendvisitpoints_r
FAILURE_ID_HASH: {ce2456e6-e437-4195-1632-2dfe7ef0ae8f}
Followup: MachineOwner
---------
I'll try to add vstest.executionengine.exe to AppVerif to detect heap corruption at place where it occurs.
Feel free to ask any additional information, I'll try provide everything.
Can you try this release to see if it corrects your issue
https://www.nuget.org/packages/OpenCover/4.6.247-rc
https://github.com/OpenCover/opencover/releases/tag/4.6.247-rc
Run my tests with 4.6.247 under AppVerif causes next issue:
0:000> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
APPLICATION_VERIFIER_LOCKS_LOCK_NOT_INITIALIZED (210)
Critical section not initialized.
This stop is generated if a critical section is used without being
initialized or after it has been deleted. To debug this stop:
$ ln parameter1 - to show symbols near the address of the critical section.
This should help identify the critical section.
Arguments:
Arg1: 00000054f840fb30, Critical section address. Run !cs -s <address> to get more information.
Arg2: 00000054f8403fd0, Critical section debug info address.
Arg3: 0000000000000000, Not used.
Arg4: 0000000000000000, Not used.
DUMP_CLASS: 2
DUMP_QUALIFIER: 0
FAULTING_IP:
vrfcore!VerifierStopMessageEx+6d0
000007f9`5cf72190 cc int 3
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 000007f95cf72190 (vrfcore!VerifierStopMessageEx+0x00000000000006d0)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 1
Parameter[0]: 0000000000000000
FAULTING_THREAD: 00003c18
DEFAULT_BUCKET_ID: STATUS_BREAKPOINT_AVRF
PROCESS_NAME: vstest.executionengine.exe
CRITICAL_SECTION: 00000054f840fb30 -- (!cs -s 00000054f840fb30)
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid
EXCEPTION_CODE_STR: 80000003
EXCEPTION_PARAMETER1: 0000000000000000
WATSON_BKT_PROCSTAMP: 5011dfca
WATSON_BKT_PROCVER: 11.0.50727.1
PROCESS_VER_PRODUCT: Microsoft® Visual Studio® 2012
WATSON_BKT_MODULE: vrfcore.dll
WATSON_BKT_MODSTAMP: 564eacee
WATSON_BKT_MODOFFSET: 2190
WATSON_BKT_MODVER: 10.0.10586.15
MODULE_VER_PRODUCT: Microsoft® Windows® Operating System
BUILD_VERSION_STRING: 6.2.9200.17366 (win8_gdr.150508-1240)
MODLIST_WITH_TSCHKSUM_HASH: e13ecf9fdfacc8d1053e4cb3e1207ff725f0f41f
MODLIST_SHA1_HASH: 1b8134c790c069cc714adef021d632177734b463
NTGLOBALFLAG: 2000100
APPLICATION_VERIFIER_FLAGS: 81643027
PRODUCT_TYPE: 1
SUITE_MASK: 272
APPLICATION_VERIFIER_LOADED: 1
APP: vstest.executionengine.exe
MISSING_CLR_SYMBOL: 0
ANALYSIS_SESSION_HOST: ZABULUS-PC
ANALYSIS_SESSION_TIME: 12-25-2015 09:52:53.0379
ANALYSIS_VERSION: 10.0.10586.567 amd64fre
MANAGED_CODE: 1
MANAGED_ENGINE_MODULE: clr
MANAGED_ANALYSIS_PROVIDER: SOS
THREAD_ATTRIBUTES:
OS_LOCALE: ENU
PROBLEM_CLASSES:
BUGCHECK_STR: STATUS_BREAKPOINT_AVRF
LAST_CONTROL_TRANSFER: from 000007f95cc0657d to 000007f95cf72190
STACK_TEXT:
00000054`eb24b370 000007f9`5cc0657d : 00000054`f840fb30 00000000`00000001 00000000`00000001 00000000`00000068 : vrfcore!VerifierStopMessageEx+0x6d0
00000054`eb24b6d0 000007f9`5cc0771a : 00000054`f840fb30 000007f5`ff32e000 00000000`00000048 00000054`f840fb30 : vfbasics!AVrfpVerifyInitializedCriticalSection+0xf1
00000054`eb24b720 000007f9`5af67694 : 00000054`f840f9e0 00000054`f840f9e0 00000000`00000000 00000000`00000000 : vfbasics!AVrfpRtlEnterCriticalSection2+0x4a
00000054`eb24b760 000007f9`5af6ce2c : 00000054`f840fa48 00000054`f840f9e0 00000054`f840fa48 ffffffff`fffffffe : OpenCover_Profiler!ProfilerCommunication::RequestInformation<<lambda_1de3c181d51666a71cd58aaebb29214a>,<lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c> >+0x64
00000054`eb24b880 000007f9`5af6bf5b : 00000054`f840fa00 00000054`f840fa48 00000054`f840fa50 00000054`eb24c700 : OpenCover_Profiler!ProfilerCommunication::TrackProcess+0xac
00000054`eb24b900 000007f9`5af570eb : 00000054`eb24bc70 00000054`f83f3e90 00000054`f840f9d0 00000054`f840f9e0 : OpenCover_Profiler!ProfilerCommunication::Initialise+0x62b
00000054`eb24bb30 000007f9`8a0dd908 : 00000054`f0dcaef0 000007f5`ff32e000 00000000`00000000 00000000`ffffffff : OpenCover_Profiler!CCodeCoverage::OpenCoverInitialise+0x52b
00000054`eb24f750 000007f9`8a0a5d98 : 00000000`00000001 00000000`00000000 00000054`eb24f841 00000000`00000000 : clr!EEToProfInterfaceImpl::Initialize+0x79
00000054`eb24f7a0 000007f9`89e2ae33 : 00000000`00000000 00000054`eb24f900 00000000`00000000 00000000`00000000 : clr!ProfilingAPIUtility::LoadProfiler+0x33c
00000054`eb24f890 000007f9`89dd2133 : 00000000`00000021 00000000`00000000 00000000`00000000 00000000`00000000 : clr!ProfilingAPIUtility::AttemptLoadProfilerForStartup+0x15d
00000054`eb24f930 000007f9`89dcc19e : 00000000`00000000 00000000`00000021 00000000`00000002 00000000`00000000 : clr!ProfilingAPIUtility::InitializeProfiling+0x3f
00000054`eb24f960 000007f9`89dcbbfd : 00000000`00000000 000007f9`89dc5f43 00000000`0000060e 000007f9`8b1e20e8 : clr!EEStartupHelper+0x808
00000054`eb24fb80 000007f9`89dcbb97 : 00000000`00000002 00000000`00000002 00000000`00000000 00000000`00000000 : clr!EEStartup+0x15
00000054`eb24fbd0 000007f9`89dfe97a : 00000000`00000000 00000054`eb24fd50 00000000`00000000 000007f9`8b1e20e8 : clr!EnsureEEStarted+0xb3
00000054`eb24fc40 000007f9`89dfe8f4 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : clr!_CorExeMainInternal+0x7a
00000054`eb24fcd0 000007f9`8b186cf5 : 00000000`00000000 000007f9`00000091 00000000`00000000 00000054`eb24fcb8 : clr!CorExeMain+0x14
00000054`eb24fd10 000007f9`8b295b21 : 00000000`00000000 000007f9`89dfe8e0 00000000`00000000 00000000`00000000 : mscoreei!CorExeMain+0xe0
00000054`eb24fd60 000007f9`96311842 : 000007f9`8b180000 00000000`00000000 00000000`00000000 00000000`00000000 : MSCOREE!CorExeMain_Exported+0x57
00000054`eb24fd90 000007f9`96490dfd : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0x1a
00000054`eb24fdc0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d
THREAD_SHA1_HASH_MOD_FUNC: 857910095e0e1942334df52f7978b973d26184be
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: c9e9abd9eb7b1558584d4e4e66075dc19bf1f70d
THREAD_SHA1_HASH_MOD: 135bbbea1ec7d54afbcae4c1a5e2e35a778b7c47
FOLLOWUP_IP:
OpenCover_Profiler!ProfilerCommunication::RequestInformation<<lambda_1de3c181d51666a71cd58aaebb29214a>,<lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c> >+64 [c:\projects\opencover\main\opencover.profiler\profilercommunication.cpp @ 601]
000007f9`5af67694 c644245801 mov byte ptr [rsp+58h],1
FAULT_INSTR_CODE: 582444c6
FAULTING_SOURCE_LINE: c:\projects\opencover\main\opencover.profiler\profilercommunication.cpp
FAULTING_SOURCE_FILE: c:\projects\opencover\main\opencover.profiler\profilercommunication.cpp
FAULTING_SOURCE_LINE_NUMBER: 601
FAULTING_SOURCE_CODE:
No source found for 'c:\projects\opencover\main\opencover.profiler\profilercommunication.cpp'
SYMBOL_STACK_INDEX: 3
SYMBOL_NAME: opencover_profiler!ProfilerCommunication::RequestInformation<<lambda_1de3c181d51666a71cd58aaebb29214a>,<lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c> >+64
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: OpenCover_Profiler
IMAGE_NAME: OpenCover.Profiler.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 567b14ac
STACK_COMMAND: ~0s ; kb
BUCKET_ID: STATUS_BREAKPOINT_AVRF_opencover_profiler!ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___+64
PRIMARY_PROBLEM_CLASS: STATUS_BREAKPOINT_AVRF_opencover_profiler!ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___+64
BUCKET_ID_OFFSET: 64
BUCKET_ID_MODULE_STR: OpenCover_Profiler
BUCKET_ID_MODTIMEDATESTAMP: 567b14ac
BUCKET_ID_MODCHECKSUM: 0
BUCKET_ID_MODVER_STR: 4.6.247.0
BUCKET_ID_PREFIX_STR: STATUS_BREAKPOINT_AVRF_
FAILURE_PROBLEM_CLASS: STATUS_BREAKPOINT_AVRF
FAILURE_EXCEPTION_CODE: 80000003
FAILURE_IMAGE_NAME: OpenCover.Profiler.dll
FAILURE_FUNCTION_NAME: ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___
BUCKET_ID_FUNCTION_STR: ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___
FAILURE_SYMBOL_NAME: OpenCover.Profiler.dll!ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___
FAILURE_BUCKET_ID: STATUS_BREAKPOINT_AVRF_80000003_OpenCover.Profiler.dll!ProfilerCommunication::RequestInformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___
WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/vstest.executionengine.exe/11.0.50727.1/5011dfca/vrfcore.dll/10.0.10586.15/564eacee/80000003/00002190.htm?Retriage=1
TARGET_TIME: 2015-12-25T07:53:12.000Z
OSBUILD: 9200
OSSERVICEPACK: 0
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
OSPLATFORM_TYPE: x64
OSNAME: Windows 8
OSEDITION: Windows 8 WinNt SingleUserTS
USER_LCID: 0
OSBUILD_TIMESTAMP: 2014-03-01 09:35:47
BUILDDATESTAMP_STR: 150508-1240
BUILDLAB_STR: win8_gdr
BUILDOSVER_STR: 6.2.9200.17366
ANALYSIS_SESSION_ELAPSED_TIME: 4c56
ANALYSIS_SOURCE: UM
FAILURE_ID_HASH_STRING: um:status_breakpoint_avrf_80000003_opencover.profiler.dll!profilercommunication::requestinformation__lambda_1de3c181d51666a71cd58aaebb29214a_,_lambda_5b8e2333a3f8cbf3ce2dcf65eb0ee22c___
FAILURE_ID_HASH: {e7659fd4-cc84-5380-31fa-b2f7a7e4f329}
Followup: MachineOwner
---------
AFAIU,
_host = std::make_shared<ProfilerCommunication>(ProfilerCommunication(_shortwait));
Uses copy construction. You create ProfilerCommunication
object on stack, and then make_shared
forwards it to constructor of object on heap. Maybe it is the cause of AppVerif error?
When I replace
_host = std::make_shared<ProfilerCommunication>(ProfilerCommunication(_shortwait));
with code
_host = std::make_shared<ProfilerCommunication>(_shortwait);
AppVerif satisfies and runs normally.
As for original issue, looks like it is fixed in latest version built from sources.
Except AppVerif issue of course.
I think this issue can be closed.