Description
Related to swiftlang#9141
Overview
My local build of this test produces a binary whose realign_stack
and call_func
symbols are not visible to lldb
so the test fails to match to the expected output of thread backtrace
as these symbol names appear as empty strings in the stack trace output.
To make this test pass, I had to create this local patch which is certainly not the correct way to fix things but demonstrates my problem well.
Background
In particular, here are the problems I observe:
- lld-link does not produce a binary that exports the
realign_stack
andcall_func
symbols which are defined as.globl
in windows-unaligned-x86_64-asm.s, even thoughlldb-pdbutil
indicates that these symbols are “public” in the final executable (The commands below are run in powershell but I built and ran these tests in cmd.exe):
PS C:\workspace\llvm-project> C:\workspace\llvm-project\build\bin\llvm-pdbutil.exe pretty --externals C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.pdb | Select-String -Pattern realign_stack
public [0x0000104e] realign_stack
PS C:\workspace\llvm-project> C:\workspace\llvm-project\build\bin\llvm-pdbutil.exe pretty --externals C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.pdb | Select-String -Pattern call_func
public [0x00001040] call_func
LLDB's image lookup
command fails to find these symbols by address or name.
As a workaround I’ve manually exported the symbols in build.py using e.g. /EXPORT:realign_stack
-
LLDB doesn’t appear to load PDB symbols from a separate
.pdb
file automatically. It’s unclear if the original test author ran into this problem from their PR discussion so as a workaround I added an explicitadd-dsym ...
call to load the symbols. -
LLDB seems to have a hard time parsing PDB files and crashes when
add-dsym
is called. I believe this is a known issue [1], [2]. Given that there are 2 PDB readers to choose from: LLDB’s implementation (default) and the Windows Native reader, as a workaround I’ve used the native one by settingLLDB_USE_NATIVE_PDB_READER=1
.
Without my local patch, the full failure output with verbose information is below. As you can see, func
and main
are symbolized in lldb, but the two frames between those calls have no symbol name. The Clang and lld-link invocations are also shown below.
-- Testing: 1 tests, 1 workers --
FAIL: lldb-shell :: Unwind/windows-unaligned-x86_64.test (1 of 1)
******************** TEST 'lldb-shell :: Unwind/windows-unaligned-x86_64.test' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 7
'C:\Program Files\Python312\python.exe' C:\workspace\llvm-project\lldb\test\Shell\helper\build.py --compiler=any --arch=64 --tools-dir=C:/workspace/llvm-project/build/./bin --libs-dir=C:/workspace/llvm-project/build/./lib --verbose C:\workspace\llvm-project\lldb\test\Shell\Unwind/Inputs/windows-unaligned-x86_64.cpp C:\workspace\llvm-project\lldb\test\Shell\Unwind/Inputs/windows-unaligned-x86_64-asm.s -o C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp
# executed command: 'C:\Program Files\Python312\python.exe' 'C:\workspace\llvm-project\lldb\test\Shell\helper\build.py' --compiler=any --arch=64 --tools-dir=C:/workspace/llvm-project/build/./bin --libs-dir=C:/workspace/llvm-project/build/./lib --verbose 'C:\workspace\llvm-project\lldb\test\Shell\Unwind/Inputs/windows-unaligned-x86_64.cpp' 'C:\workspace\llvm-project\lldb\test\Shell\Unwind/Inputs/windows-unaligned-x86_64-asm.s' -o 'C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp'
# .---command stdout------------
# | Script Arguments:
# | Arch: 64
# | Compiler: any
# | Outdir: C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output
# | Output: C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp
# | Nodefaultlib: False
# | Opt: none
# | Mode: compile-and-link
# | Clean: True
# | Verbose: True
# | Dryrun: False
# | Inputs: C:\workspace\llvm-project\lldb\test\Shell\Unwind\Inputs\windows-unaligned-x86_64.cpp
# | C:\workspace\llvm-project\lldb\test\Shell\Unwind\Inputs\windows-unaligned-x86_64-asm.s
# | C/C++ Standard: None
# | Script Environment:
# | COMSPEC = C:\WINDOWS\system32\cmd.exe
# | INCLUDE = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\include
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\ATLMFC\include
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt
# | C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\um
# | C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\shared
# | C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\winrt
# | C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\cppwinrt
# | C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um
# | LD_LIBRARY_PATH = c:\workspace\llvm-project\build\bin
# | c:\workspace\llvm-project\build\lib
# | LIB = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\ATLMFC\lib\x64
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\lib\x64
# | C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64
# | C:\Program Files (x86)\Windows Kits\10\lib\10.0.26100.0\ucrt\x64
# | C:\Program Files (x86)\Windows Kits\10\\lib\10.0.26100.0\\um\x64
# | LLVM_DISABLE_CRASH_REPORT = 1
# | PATH = c:\workspace\llvm-project\build\bin
# | c:\program files\git\usr\bin
# | c:\program files\microsoft visual studio\2022\community\vc\tools\llvm\x64\bin
# | c:\program files\microsoft visual studio\2022\community\dia sdk\bin\amd64
# | c:\program files\microsoft visual studio\2022\community\dia sdk\bin
# | c:\binarycache\llvm\clang\bin
# | c:\workspace\llvm-project\build\bin
# | c:\program files\microsoft visual studio\2022\community\vc\tools\llvm\x64\bin
# | c:\program files\microsoft visual studio\2022\community\dia sdk\bin\amd64
# | c:\program files\microsoft visual studio\2022\community\vc\tools\msvc\14.40.33807\bin\hostx64\x64
# | c:\program files\microsoft visual studio\2022\community\common7\ide\vc\vcpackages
# | c:\program files\microsoft visual studio\2022\community\common7\ide\commonextensions\microsoft\teamfoundation\team explorer
# | c:\program files (x86)\microsoft sdks\windows\v10.0a\bin\netfx 4.8 tools\x64
# | c:\program files (x86)\windows kits\10\bin\10.0.26100.0\x64
# | c:\program files (x86)\windows kits\10\bin\x64
# | c:\program files\microsoft visual studio\2022\community\msbuild\current\bin\amd64
# | c:\windows\microsoft.net\framework64\v4.0.30319
# | c:\program files\microsoft visual studio\2022\community\common7\ide
# | c:\program files\microsoft visual studio\2022\community\common7\tools
# | c:\program files\python312\scripts
# | c:\program files\python312
# | c:\program files (x86)\microsoft sdks\azure\cli2\wbin
# | c:\windows\system32
# | c:\windows
# | c:\windows\system32\wbem
# | c:\windows\system32\windowspowershell\v1.0
# | c:\windows\system32\openssh
# | c:\program files\dotnet
# | c:\program files\github cli
# | c:\programdata\chocolatey\bin
# | c:\program files\microsoft sql server\150\tools\binn
# | c:\program files\nodejs
# | c:\program files\cmake\bin
# | c:\program files\amazon\awscliv2
# | c:\program files\yubico\yubikey manager cli
# | c:\program files\tailscale
# | c:\program files (x86)\windows kits\10\windows performance toolkit
# | c:\program files\nicklockwood\swiftformat\usr\bin
# | c:\program files\mongodb\swiftlint\usr\bin
# | c:\program files\git\cmd
# | c:\program files\powershell\7
# | c:\users\kenda\appdata\local\microsoft\windowsapps
# | c:\program files\neovim\bin
# | c:\users\kenda\appdata\local\microsoft\winget\packages\jqlang.jq_microsoft.winget.source_8wekyb3d8bbwe
# | c:\users\kenda\appdata\roaming\npm
# | c:\users\kenda\appdata\local\microsoft\winget\packages\microsoft.nuget_microsoft.winget.source_8wekyb3d8bbwe
# | c:\users\kenda\appdata\local\programs\microsoft vs code\bin
# | c:\users\kenda\appdata\local\microsoft\winget\links
# | c:\program files\gnuwin\bin
# | c:\program files\swig\swigwin-4.2.1
# | c:\users\kenda\.dotnet\tools
# | c:\users\kenda\bin
# | c:\program files\perl\perl\bin
# | c:\program files\microsoft visual studio\2022\community\vc\tools\msvc\14.40.33807\bin\hostx64\x64
# | .
# | c:\program files\microsoft visual studio\2022\community\vc\tools\llvm\x64\bin
# | c:\program files\microsoft visual studio\2022\community\common7\ide\commonextensions\microsoft\cmake\cmake\bin
# | c:\program files\microsoft visual studio\2022\community\common7\ide\commonextensions\microsoft\cmake\ninja
# | PATHEXT = .COM
# | .EXE
# | .BAT
# | .CMD
# | .VBS
# | .VBE
# | .JS
# | .JSE
# | .WSF
# | .WSH
# | .MSC
# | .PY
# | .PYW
# | PYTHONBUFFERED = 1
# | SYSTEMDRIVE = C:
# | SYSTEMROOT = C:\WINDOWS
# | TEMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TEMPDIR = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TMPDIR = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | USERPROFILE = C:\Users\Kenda
# | VCINSTALLDIR = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\
# | VCTOOLSINSTALLDIR = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\
# | VSINSTALLDIR = C:\Program Files\Microsoft Visual Studio\2022\Community\
# | WINDOWSSDKDIR = C:\Program Files (x86)\Windows Kits\10\
# | WINDOWSSDKLIBVERSION = 10.0.26100.0\
# | __COMPAT_LAYER = RunAsInvoker
# | Using %VCToolsInstallDir% C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\
# | Using %WindowsSdkDir% C:\Program Files (x86)\Windows Kits\10\
# | Using %WindowsSDKLibVersion% 10.0.26100.0
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.ilk
# | The file does not exist.
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64-asm.ilk
# | The file does not exist.
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64.obj
# | The file was successfully cleaned.
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64-asm.obj
# | The file was successfully cleaned.
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.pdb
# | The file was successfully cleaned.
# | Cleaning C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp
# | The file was successfully cleaned.
# |
# |
# |
# | compiling windows-unaligned-x86_64.cpp -> windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64.obj
# | Command Line: C:\workspace\llvm-project\build\bin\clang-cl.EXE -m64 /Od /Z7 -Xclang -fkeep-static-consts -fms-compatibility-version=19 /c /FoC:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64.obj -- C:\workspace\llvm-project\lldb\test\Shell\Unwind\Inputs\windows-unaligned-x86_64.cpp
# | Env:
# | INCLUDE = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\ATLMFC\include
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\include
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\shared
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\um
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\winrt
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\cppwinrt
# | SystemDrive = C:
# | SystemRoot = C:\WINDOWS
# | TMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TEMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | STDOUT:
# |
# |
# |
# |
# | compiling windows-unaligned-x86_64-asm.s -> windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64-asm.obj
# | Command Line: C:\workspace\llvm-project\build\bin\clang-cl.EXE -m64 /Od /Z7 -Xclang -fkeep-static-consts -fms-compatibility-version=19 /c /FoC:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64-asm.obj -- C:\workspace\llvm-project\lldb\test\Shell\Unwind\Inputs\windows-unaligned-x86_64-asm.s
# | Env:
# | INCLUDE = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\ATLMFC\include
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\include
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\shared
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\um
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\winrt
# | C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\cppwinrt
# | SystemDrive = C:
# | SystemRoot = C:\WINDOWS
# | TMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TEMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | STDOUT:
# |
# |
# |
# |
# | linking windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64.obj+windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64-asm.obj -> windows-unaligned-x86_64.test.tmp
# | Command Line: C:\workspace\llvm-project\build\bin\lld-link.EXE /DEBUG:FULL /INCREMENTAL:NO /PDB:C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.pdb /OUT:C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64.obj C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp-windows-unaligned-x86_64-asm.obj
# | Env:
# | LIB = C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\ATLMFC\lib\x64
# | C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\lib\x64
# | C:\Program Files (x86)\Windows Kits\10\lib\10.0.26100.0\ucrt\x64
# | C:\Program Files (x86)\Windows Kits\10\lib\10.0.26100.0\um\x64
# | SystemDrive = C:
# | SystemRoot = C:\WINDOWS
# | TMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | TEMP = C:\Users\Kenda\AppData\Local\Temp\lit-tmp-cu8fy0m1
# | STDOUT:
# |
# `-----------------------------
# RUN: at line 8
env LLDB_USE_NATIVE_PDB_READER=1 c:\workspace\llvm-project\build\bin\lldb.exe --no-lldbinit -S C:/workspace/llvm-project/build/tools/lldb\test\Shell\lit-lldb-init-quiet C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp -s C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test -o exit | c:\workspace\llvm-project\build\bin\filecheck.exe C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test
# executed command: env LLDB_USE_NATIVE_PDB_READER=1 'c:\workspace\llvm-project\build\bin\lldb.exe' --no-lldbinit -S 'C:/workspace/llvm-project/build/tools/lldb\test\Shell\lit-lldb-init-quiet' 'C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp' -s 'C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test' -o exit
# note: command had no output on stdout or stderr
# executed command: 'c:\workspace\llvm-project\build\bin\filecheck.exe' 'C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test'
# .---command stderr------------
# | C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test:26:10: error: CHECK: expected string not found in input
# | # CHECK: frame #1: {{.*}}`realign_stack
# | ^
# | <stdin>:16:69: note: scanning from here
# | frame #0: 0x00007ff79aba1000 windows-unaligned-x86_64.test.tmp`func(arg=<unavailable>) at windows-unaligned-x86_64.cpp:3
# | ^
# | <stdin>:27:2: note: possible intended match here
# | frame #1: 0x00007ff79aba1059 windows-unaligned-x86_64.test.tmp
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\workspace\llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11: Breakpoint 1: where = windows-unaligned-x86_64.test.tmp`func at windows-unaligned-x86_64.cpp:3, address = 0x0000000140001000
# | 12: (lldb) process launch
# | 13: Process 49344 launched: 'C:\workspace\llvm-project\build\tools\lldb\test\Shell\Unwind\Output\windows-unaligned-x86_64.test.tmp' (x86_64)
# | 14: Process 49344 stopped
# | 15: * thread #1, stop reason = breakpoint 1.1
# | 16: frame #0: 0x00007ff79aba1000 windows-unaligned-x86_64.test.tmp`func(arg=<unavailable>) at windows-unaligned-x86_64.cpp:3
# | check:26'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 17: 1 extern "C" void call_func(void (*ptr)(int a), int a);
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: 2
# | check:26'0 ~~~~
# | 19: -> 3 extern "C" void func(int arg) { }
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: 4
# | check:26'0 ~~~~
# | 21: 5 int main(int argc, char **argv) {
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 22: 6 call_func(func, 42);
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 23: 7 return 0;
# | check:26'0 ~~~~~~~~~~~~~
# | 24: (lldb) thread backtrace
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 25: * thread #1, stop reason = breakpoint 1.1
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 26: * frame #0: 0x00007ff79aba1000 windows-unaligned-x86_64.test.tmp`func(arg=<unavailable>) at windows-unaligned-x86_64.cpp:3
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 27: frame #1: 0x00007ff79aba1059 windows-unaligned-x86_64.test.tmp
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:26'1 ? possible intended match
# | 28: frame #2: 0x00007ff79aba1049 windows-unaligned-x86_64.test.tmp
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 29: frame #3: 0x00007ff79aba1036 windows-unaligned-x86_64.test.tmp`main(argc=1, argv=0x000001d785f4da20) at windows-unaligned-x86_64.cpp:6
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 30: frame #4: 0x00007ff79aba12e0 windows-unaligned-x86_64.test.tmp`__scrt_common_main_seh [inlined] invoke_main at exe_common.inl:288
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 31: frame #5: 0x00007ff79aba12be windows-unaligned-x86_64.test.tmp`__scrt_common_main_seh at exe_common.inl:288
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 32: frame #6: 0x00007ffb47eb257d kernel32.dll`BaseThreadInitThunk + 29
# | check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
Questions
- Is there any contributor that is currently running this test in their CI, and if so does it pass? (Perhaps @dzhidzhoev).
- What toolchain differences would cause the
realign_stack
andcall_func
symbols not to exported in one build vs another? Different assembler? Compiler version? Linker version? I would like to fix this locally and then update the test'sREQUIRES
statement if possible. - What needs to be done to make LLDB's built in PDB reader function locally? If this test is running in someone's CI without
LLDB_USE_NATIVE_PBD_READER=1
, there must be some steps I skipped in setting up PDB support and I'd like to document these.