You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ uname -a
Darwin Ramos-M1 23.2.0 Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:18 PST 2023; root:xnu-10002.61.3~2/RELEASE_ARM64_T6000 arm64
As expected, this produces a binary that appears to contain debug symbols:
$ file ../../target/lambda/bootstrap/bootstrap
../../target/lambda/bootstrap/bootstrap: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 2.0.0, with debug_info, not stripped
However, all of the backtraces I generate via the backtrace crate look like:
thread 'main' panicked at 'not yet implemented', src/lib.rs:173:5
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Interestingly, everything works fine when I directly build the Lambda via the Homebrew musl-cross toolchain:
Zig Version
0.11.0
Steps to Reproduce and Observed Behavior
I originally filed this issue as cargo-lambda/cargo-lambda#577, then rust-cross/cargo-zigbuild#204, but the issue is probably within the Zig toolchain somewhere.
I'm building an AWS Lambda function by invoking:
$ RUSTFLAGS="-C strip=none" cargo lambda build --arm64
I'm running on ARM64 MacOS:
$ uname -a Darwin Ramos-M1 23.2.0 Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:18 PST 2023; root:xnu-10002.61.3~2/RELEASE_ARM64_T6000 arm64
As expected, this produces a binary that appears to contain debug symbols:
$ file ../../target/lambda/bootstrap/bootstrap ../../target/lambda/bootstrap/bootstrap: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 2.0.0, with debug_info, not stripped
However, all of the backtraces I generate via the
backtrace
crate look like:Panics with
RUST_BACKTRACE=1
are similarly empty:Interestingly, everything works fine when I directly build the Lambda via the Homebrew
musl-cross
toolchain:$ export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc $ cargo build --target aarch64-unknown-linux-musl --release
Even in release mode, the Lambda built with
musl-cross
prints backtrace symbols.I searched but wasn't able to find any relevant Zig issues related to missing debug symbols when cross-compiling from aarch64 Darwin to aarch64 Linux.
Expected Behavior
Stack trace should print symbol names
The text was updated successfully, but these errors were encountered: