Multiple points of failure in drsyms-test with VS2017
We're trying to move to VS2017 but it is causing multiple failures in drsyms-test. I wanted to document them separately from #2924 (closed).
name_available is strangely 4 bytes too large:
158: name=|_wctype| sz=7 vs avail=7
158: name=|TrailingUpVec| sz=13 vs avail=13
158: name=|TrailingUpVec| sz=13 vs avail=13
158: name=|__acrt_multibyte_initializer| sz=28 vs avail=28
158: name=|__acrt_locale_changed_data| sz=26 vs avail=26
158: name=|Two52| sz=5 vs avail=5
158: name=|parse_command_line<>| sz=20 vs avail=24 parse_command_line<>_da
Then we have lots of type mismatches:
158: mismatch: |uninitialize_global_state_isolation| id=1201 type=3,1084 prev=|_isatty|
158: mismatch: |uninitialize_c| id=1287 type=3,1084 prev=|__crt_strtox::parse_integer<>|
158: mismatch: |report_memory_leaks| id=1201 type=3,1084 prev=|page_size|
158: mismatch: |free_environment<>| id=1677 type=3,1499 prev=|__security_check_cookie|
158: mismatch: |`<>::operator()'::`2'::c_exit_complete| id=0 type=1,465 prev=|_imp__ExitProcess|
158: mismatch: |`__local_stdio_scanf_options'::`2'::_OptionsStorage| id=0 type=1,3989 prev=|_NULL_IMPORT_DESCRIPTOR|
And finally:
158: symbol had wrong mangling:
158: expected: dll_export
158: actual: _dll_export
Wait, one more: compound arg `anonymous-namespace'::Foo and ::HasFields at the top of the expected output are in the reverse order.
The last one is understandable and is our test being too rigid, but the others all seem like bugs or flakiness or at the least undesirable behavior in dbghelp.dll. I'm using '/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/Remote Debugger/x86/dbghelp.dll'.