New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vdso unwinding doesn't work properly on GCE #25712
Comments
The section headers present in the vdso mapped by the kernel seems to be corrupted, I dumped the vdso to a file and tried to analyse it using readelf and found this -> $ readelf --sections ../llvm/tools/lldb/packages/Python/lldbsuite/test/functionalities/inferior-assert/vdso Section Headers: which is why LLDB is not able to properly read the file. |
• The vdso libraries on the GCE have a fake_shshtrtab section (see below section 8) So initially LLDB allocates Start of section header + Number of section headers x Size of section headers = 1292 bytes of data for the vdso but the fake_shstrtab section offset is not in the limit calculated by lldb. Whereas in my case the shstrtab section is not fake and is within the limits of the formula I specified. Although the shstrtab section is at the place where the table reports it, so I think the vdso file is ok but there is a problem with lldb for reading ELF files. This is the situation for both the instances u shared with me. |
Extended Description
Although vdso handling was fixed in http://reviews.llvm.org/D14118 related TestHelloWorld and TestInferiorAssert are still failing on Google Compute Engine.
runCmd: run
output: Process 19010 stopped
frame #0: 0xf7fd9d80
-> 0xf7fd9d80: popl %ebp
0xf7fd9d81: popl %edx
0xf7fd9d82: popl %ecx
0xf7fd9d83: retl
Process 19010 launched: '/lldb-buildbot/lldbSlave/buildWorkingDir/llvm/tools/lldb/test/functionalities/inferior-assert/a.out' (i386)
runCmd: thread list
output: Process 19010 stopped
Expecting sub string: stopped
Matched
Expecting sub string: stop reason = signal SIGABRT
Matched
runCmd: thread backtrace all
output: * thread #1: tid = 19010, 0xf7fd9d80, name = 'a.out', stop reason = signal SIGABRT
frame #1: 0xf7e38a83 libc.so.6`__libc_start_main + 243
frame #2: 0x08048371 a.out
frame #3: 0x08048550 a.out
Expecting sub string: stop reason = signal SIGABRT
Matched
Expecting sub string: main
Matched
Expecting sub string: argc
Not matched
FAIL
The text was updated successfully, but these errors were encountered: