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
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to