Closed fwsGonzo closed 4 days ago
Can you sketch a design?
Closing as complete?
No, it needs integration for people without addr2line installed on their system. It doesn't use docker either, atm.
https://packages.msys2.org/package/mingw-w64-x86_64-binutils addr2line exists here.
I'm sure we can easily get it for other operating systems.
See also https://github.com/godotengine/buildroot/releases/tag/godot-2023.08.x-4
It's even more specific: It's the riscv64-linux-gnu-addr2line
version. That said, maybe clang has a version that is more architecture independent? Or perhaps there's an open source utility that just does it without needing a custom version. Definitely worth investigating.
I think for now, we should just try to reach the docker version.
https://llvm.org/docs/CommandGuide/llvm-symbolizer.html
--default-arch
?
See /clang64/bin/riscv64-unknown-elf-addr2line.exe
https://packages.msys2.org/package/mingw-w64-clang-x86_64-riscv64-unknown-elf-binutils?repo=clang64
That might work yes
Note to self: We can know the language of the ELF now, due to versioning. That said, we really only need one container with the --addr
parameter to build.sh. It might be possible to always use the CPP container for addr2line, in which case we can consider this solved.
We have access to RISC-V addr2line from the docker containers, and using that we should be able to produce code lines from the call stack of an exception