[Lldb-commits] [PATCH] D155117: Platform qemu-user: Build path to qemu automatically if not specified
Ted Woodward via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Jul 18 07:13:06 PDT 2023
ted added a comment.
In D155117#4505538 <https://reviews.llvm.org/D155117#4505538>, @labath wrote:
> I am wondering if we actually need the second step (the architecture setting) here. The main reason it exists is the usage in `GetSupportedArchitectures` (which is called before a target is created) it seems like the value derived from the target should always be more correct. WDYT? What are the values you get in steps 2 and 3 for your use case?
I don't think we need to specify the architecture, because I think we can always get it from the triple. There might be a case where someone is using a qemu that isn't named the same as the Triple ArchName, but that case could be covered by emulator-path.
In my case, I'm loading a target, then running, letting the platform get ArchName from the target Triple, then turning that into qemu-riscv32 (or riscv64), and launching that from my PATH.
An example (with my experimental RISC-V ABI plugin):
> bin/lldb
(lldb) platform select qemu-user
Platform: qemu-user
Triple: x86_64-*-linux-gnu
OS Version: 5.4.0 (5.4.0-136-generic)
Hostname: 127.0.0.1
WorkingDir: /local/mnt/ted/8.8/riscv
Kernel: #153~18.04.1-Ubuntu SMP Wed Nov 30 15:47:57 UTC 2022
(lldb) file ~/lldb_test/factrv32
Current executable set to '/usr2/tedwood/lldb_test/factrv32' (riscv32).
(lldb) b main
Breakpoint 1: where = factrv32`main + 28 at factorial.c:32:8, address = 0x000104ea
(lldb) r
Process 1 launched: '/usr2/tedwood/lldb_test/factrv32' (riscv32)
Process 1 stopped
- thread #1, stop reason = breakpoint 1.1 frame #0: 0x000104ea factrv32`main(argc=1, argv=0x408005a4) at factorial.c:32:8 29 } 30 */ 31
-> 32 base = 10;
33
34 printf("Factorial of %d is %d\n", base, factorial(base));
35 return 0;
(lldb) target list
Current targets:
- target #0: /usr2/tedwood/lldb_test/factrv32 ( arch=riscv32-*-linux, platform=qemu-user, pid=1, state=stopped )
(lldb)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155117/new/
https://reviews.llvm.org/D155117
More information about the lldb-commits
mailing list