mstorsjo added a comment. In D67954#1680536 <https://reviews.llvm.org/D67954#1680536>, @labath wrote:
> Have you considered going the "native" route directly? My understanding is > that this route is already functional on x86 (modulo watchpoints, which I > need to get around to reviewing). It would be great to be able to delete the > in-process route soon, as it's not good to have both for a long time, and for > that we need to ensure that the lldb-server route does not lag behind in > features. I'm not really sure what's needed to enable the lldb-server > mechanism, but @aleksandr.urakov should. I haven't dug in to see what's needed to enable it (if it maybe is enabled separately per arch somewhere?) - I just built lldb for arm64, tested using it and noting that it crashed due to `m_thread_reg_ctx` being unset, made a first proof of concept implementation of the missing class, and noted that it actually worked for getting usable debug info from my testcase. > One of the advantages of lldb-server is that is possible to test it by > cross-debugging. The mechanism for doing that is a bit complicated, and I'm > not entirely sure how that works after all the lit changes, but it goes > approximately like this: > > 1. build lldb for the host > 2. build lldb-server for the target (either on the target, or via > cross-compile) > 3. run `lldb-server platform --server *:1234` on the target > 4. run the `dotest` test suite arguments suitable for cross-compilation. This > means: > - setting the test compiler to be a cross compiler (cmake > -DLLDB_TEST_C(XX)_COMPILER) > - choosing a suitable test architecture (-DLLDB_TEST_ARCH) > - telling it how to connect to the target > (-DLLDB_TEST_USER_ARGS=--platform-name remote-windows --platform-url > connect://remote:1234 --platform-working-dir=c:\tmp) > - crossing your fingers :) Interesting - sounds sensible but also sounds like a bit more effort to get going than just running the usual lit tests. Will look into that at some point. > But, of course the easiest way to test this would be to build and test > natively. The usual obstacle for that is that the arm device is too small to > comfortably work on it, but you say you don't have the full build environment > *yet*, so it's not clear to me whether that is the problem you're running > into... Well, I cross build as the environment on the target device is a bit bare, and as it's a new architecture and all, there's not much available when it comes to prebuilt packages (for everything you need for building) - I do have a working compiler on that device, but nothing else. The devices do support running i386 binaries emulated, so I could install such a version of msys2 and do building there, but even more slowly... In general as well, I think building llvm/lldb on such a device requires quite a bit of patience, and rebuilding after fetching newer upstream commits would be pretty painful as well. I think the most practical setup, at least for lit-style tests that don't require any compilation in themselves, is cross-building all the binaries needed, moving them over to the target device, and running them with llvm-lit there. But that still requires having python available for running llvm-lit. The alternative is probably to leverage WSL for a mess-free environment with python, shells and everything available, but I'm not sure if that messes things up (like llvm-lit thinks it runs on linux even though the binaries it should execute will run are windows ones). Repository: rLLDB LLDB CHANGES SINCE LAST ACTION https://reviews.llvm.org/D67954/new/ https://reviews.llvm.org/D67954 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits