jasonmolenda wrote:
Hi sorry @kovdan01 I missed this one in the emails. You're using an lldb which
was built without the `LLVM_TARGETS_TO_BUILD` including X86, and running that
lldb on an x86 corefile, got it. I have low confidence how well lldb will work
in this situation, e.g. inferior function calls are obviously going to fail
completely, and possibly not in a graceful way, but that doesn't impact
corefiles. I'm less thrilled about adding a 570kb corefile to the repository
to check this combination doesn't crash the unwinder. In
lldb/unittest/UnwindAssembly we build the `x86` directory when
```
if ("X86" IN_LIST LLVM_TARGETS_TO_BUILD)
add_subdirectory(x86)
endif()
```
In Testx86AssemblyInspectionEngine.cpp we initialize llvm state in
`Testx86AssemblyInspectionEngine::SetUpTestCase` and then run individual tests
in the `TEST_F()` entries, creating a byte stream of prologues like
```
// 'int main() { }' compiled for x86_64-apple-macosx with clang
uint8_t data[] = {
0x55, // offset 0 -- pushq %rbp
0x48, 0x89, 0xe5, // offset 1 -- movq %rsp, %rbp
0x31, 0xc0, // offset 4 -- xorl %eax, %eax
0x5d, // offset 6 -- popq %rbp
0xc3 // offset 7 -- retq
};
```
and run the unwind engine on those bytes.
Could we add a `x86-but-no-x86-target` directory, write one test to see that
the unwind engine can run against a byte buffer like this and not crash instead
maybe?
https://github.com/llvm/llvm-project/pull/82603
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits