!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

651 Members
Rust147 Servers

Load older messages


SenderMessageTime
11 Jul 2025
@dramforever:matrix.orgdramforever i'm not sure if rust_panic is even a real thing, try rust_begin_panic? 17:27:53
@dramforever:matrix.orgdramforeverhuh17:28:42
@dramforever:matrix.orgdramforeverapparently it is supposed to be a thing17:28:48
@cpick:matrix.orgcpickNo joy (same result: neither lldb nor gdb can find the symbol).17:29:12
@dramforever:matrix.orgdramforeverummmmmm17:29:16
@dramforever:matrix.orgdramforeverhow did you build your thing? can you reproduce this with just a clean cargo bin crate?17:30:06
@dramforever:matrix.orgdramforever i just tried gdb and b rust_panic works 17:30:26
@dramforever:matrix.orgdramforevermakes me wonder if you've set some cargo config options to strip or otherwise mess with the symbol table17:30:54
@dramforever:matrix.orgdramforeveri'm on aarch64-linux17:31:10
@cpick:matrix.orgcpick OK, that's encouraging, thanks.
I just created a new NixOS VM, ran nix shell nixpkgs#{cargo,lldb,gcc,rustc,gdb} ran cargo init and replaced println in main.rs with panic, then did cargo build.
17:32:03
@cpick:matrix.orgcpickSo I shouldn't have any non-stock configuration?17:32:23
@dramforever:matrix.orgdramforeverthat sounds about right17:32:45
@dramforever:matrix.orgdramforever then gdb target/debug/whatever-the-name-is 17:33:08
@cpick:matrix.orgcpick I used rust-gdb, I'll try gdb itself... 17:33:23
@cpick:matrix.orgcpickYeah, same result.17:33:58
@dramforever:matrix.orgdramforeverthat's so weird17:38:28
@dramforever:matrix.orgdramforeverhow recent is this nixpkgs of yours17:38:38
@jose:storopoli.comJose Storopoli joined the room.17:52:23
@cpick:matrix.orgcpick

Good question...
I think this is it?

$ readlink -f /nix/var/nix/profiles/per-user/root/channels
/nix/store/in3n7rsk9rkhdfzsba2kfl1hzv13xbn3-nixos-25.11.20250708.9b008d6
17:54:06
@9hp71n:matrix.orgghpzin (moved to @ghpzin:envs.net) Are you on nixos-25.05 or unstable version before 2025-06-19 ?
I assume it does not work on rustc 1.87+ because of https://github.com/rust-lang/rust/issues/140821
17:57:23
@9hp71n:matrix.orgghpzin (moved to @ghpzin:envs.net) Are you on nixos-25.05 or unstable version before 2025-06-19 ?
I assume it does not work on rustc 1.87+ because of https://github.com/rust-lang/rust/issues/140821
rustc 1.86 (from nixos-25.05)
(gdb) b rust_panic
Breakpoint 1 at 0x30ff4
rustc 1.87 (from nixos-unstable):
(gdb) b rust_panic
Function "rust_panic" not defined.
18:02:23
@cpick:matrix.orgcpick

Aha! As suggested
rbreak rust_panic worked for me in gdb (no joy with the suggested b s -r rust_panic in lldb, though).

Still that works well for my purposes. Thank you!

18:02:36
@dramforever:matrix.orgdramforeverah, that must be it, i'm on a newer rustc but i forgot that the thing i was debugging was an older one18:10:18
@dramforever:matrix.orgdramforever* ah, that must be it, i'm on a newer rustc but i forgot that the thing i was debugging was compiled with an older one18:10:28
@cpick:matrix.orgcpick

It looks like I just needed to use br s -r rust_panic (not b) in lldb and that works just fine.

Thank you both!

18:11:30
@tomasajt:matrix.orgToma

Oh, I was wrong about cargoDepsName not being used, I just misremembered. The important thing is: it no longer affects the hash. The old fetchCargoTarball implementation generated a tarball that had a directory name inside it dependent on the name of the package.
Now, with fetchCargoVendor, we no longer care about the names, the only thing that matters now is the exact contents of the Cargo.lock file: if anything changes in it, the hash will have to be regenerated.
This is because the Cargo.lock is copied into the FOD for later validation.
So, because the Cargo.lock file usually contains the version of the package, even if no deps were changed, the changed version value would lead to a new hash.

If we removed the Cargo.lock integrity check (where it checks if cargoDeps's Cargo.lock and src's Cargo.lock match), we'd no longer have to copy Cargo.lock into our FOD, so we'd only get a new hash if the dependency list changed.
This is not worth it compared to the integrity check, which is pretty important.

20:02:39
12 Jul 2025
@setthemfree:matrix.orgundltd Thanks for the explanation. 06:50:06
@setthemfree:matrix.orgundltd I wonder what's the use case for setting cargoDepsName explicitly then? Like, why would anyone need to set that when defining a package? 12:56:37
@tomasajt:matrix.orgTomaI think we just forgot to remove it. idk12:57:07
@setthemfree:matrix.orgundltdgotcha12:57:31

Show newer messages


Back to Room ListRoom Version: 6