Adding stapsdt probe crashes Zig compiler #3

Open
opened 2025-11-09 06:59:46 +00:00 by geemili · 1 comment
Owner

5a4e7ea8

~/code/geemili/dynamic_linking_adventures> ~/code/ziglang.org/zig/zig-out/bin/zig build run:sprintf_segfault
run:sprintf_segfault
└─ run exe sprintf_segfault
   └─ compile exe sprintf_segfault Debug native-linux-none failure
error: Compiler crash context:
       (no context)
       
       thread 11335 panic: reached unreachable code
       /home/geemili/code/ziglang.org/zig/src/codegen.zig:755:56: 0x2849a36 in lowerPtr (main.zig)
           const zcu = pt.zcu;
                                                              ^
       /home/geemili/code/ziglang.org/zig/src/codegen.zig:444:29: 0x235aa0f in generateSymbol (main.zig)
               .ptr => try lowerPtr(bin_file, pt, src_loc, val.toIntern(), w, reloc_parent, 0),
                                   ^
       /home/geemili/code/ziglang.org/zig/src/codegen.zig:446:31: 0x235ab49 in generateSymbol (main.zig)
                   try generateSymbol(bin_file, pt, src_loc, Value.fromInterned(slice.ptr), w, reloc_parent);
                                     ^
       /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:2130:35: 0x40dc6fb in blockValue (main.zig)
               try codegen.generateSymbol(
                                         ^
       /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:4590:59: 0x448e27a in updateContainerTypeWriterError (main.zig)
                                           try wip_nav.blockValue(ty_src_loc, .fromInterned(field_init));
                                                                 ^
       /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:4391:48: 0x3c41576 in updateContainerType (main.zig)
           return dwarf.updateContainerTypeWriterError(pt, type_index) catch |err| switch (err) {
                                                      ^
       /home/geemili/code/ziglang.org/zig/src/link/Elf/ZigObject.zig:1718:59: 0x323e2ed in updateContainerType (main.zig)
           if (self.dwarf) |*dwarf| try dwarf.updateContainerType(pt, ty);
                                                                 ^
       /home/geemili/code/ziglang.org/zig/src/link/Elf.zig:1710:53: 0x323eb13 in updateContainerType (main.zig)
           return self.zigObjectPtr().?.updateContainerType(pt, ty) catch |err| switch (err) {
                                                           ^
       /home/geemili/code/ziglang.org/zig/src/link.zig:790:91: 0x2bface3 in updateContainerType (main.zig)
                       return @as(*tag.Type(), @fieldParentPtr("base", base)).updateContainerType(pt, ty);
                                                                                                 ^
       /home/geemili/code/ziglang.org/zig/src/link.zig:1547:43: 0x2794442 in doZcuTask (main.zig)
                           lf.updateContainerType(pt, ty) catch |err| switch (err) {
                                                 ^
       /home/geemili/code/ziglang.org/zig/src/link/Queue.zig:318:23: 0x2771a67 in flushTaskQueue (main.zig)
               link.doZcuTask(comp, tid, task);
                             ^
       /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread/Pool.zig:180:50: 0x2772213 in runFn (std.zig)
                   @call(.auto, func, .{id.?} ++ closure.arguments);
                                                        ^
       /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread/Pool.zig:293:27: 0x2237b50 in worker (std.zig)
                   runnable.runFn(runnable, id);
                                 ^
       /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread.zig:558:13: 0x2069d10 in callFn__anon_199601 (std.zig)
                   @call(.auto, f, args);
                   ^
       /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread.zig:1534:30: 0x1eff680 in entryFn (std.zig)
                       return callFn(f, self.fn_args);
                                    ^
       /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/os/linux/x86_64.zig:105:5: 0x1c7a405 in clone (std.zig)
           asm volatile (
           ^
       
error: process terminated unexpectedly
failed command: /home/geemili/code/ziglang.org/zig/zig-out/bin/zig build-exe -ODebug -target native-linux-none -mcpu native --dep ld -Mroot=/home/geemili/code/geemili/dynamic_linking_adventures/examples/sprintf_segfault.zig -ODebug -target native-linux-none -mcpu native -Mld=/home/geemili/code/geemili/dynamic_linking_adventures/dynamic_loader_library.zig --cache-dir .zig-cache --global-cache-dir /home/geemili/.cache/zig --name sprintf_segfault --zig-lib-dir /home/geemili/code/ziglang.org/zig/zig-out/lib/zig/ --listen=-

Build Summary: 0/3 steps succeeded (1 failed)
run:sprintf_segfault transitive failure
└─ run exe sprintf_segfault transitive failure
   └─ compile exe sprintf_segfault Debug native-linux-none failure

error: the following build command failed with exit code 1:
.zig-cache/o/c8131c02c1f629a70fec934bb46ae787/build /home/geemili/code/ziglang.org/zig/zig-out/bin/zig /home/geemili/code/ziglang.org/zig/zig-out/lib/zig /home/geemili/code/geemili/dynamic_linking_adventures .zig-cache /home/geemili/.cache/zig --seed 0x826c35f7 -Zb1de53fa30fcde4b run:sprintf_segfault
5a4e7ea8 ``` ~/code/geemili/dynamic_linking_adventures> ~/code/ziglang.org/zig/zig-out/bin/zig build run:sprintf_segfault run:sprintf_segfault └─ run exe sprintf_segfault └─ compile exe sprintf_segfault Debug native-linux-none failure error: Compiler crash context: (no context) thread 11335 panic: reached unreachable code /home/geemili/code/ziglang.org/zig/src/codegen.zig:755:56: 0x2849a36 in lowerPtr (main.zig) const zcu = pt.zcu; ^ /home/geemili/code/ziglang.org/zig/src/codegen.zig:444:29: 0x235aa0f in generateSymbol (main.zig) .ptr => try lowerPtr(bin_file, pt, src_loc, val.toIntern(), w, reloc_parent, 0), ^ /home/geemili/code/ziglang.org/zig/src/codegen.zig:446:31: 0x235ab49 in generateSymbol (main.zig) try generateSymbol(bin_file, pt, src_loc, Value.fromInterned(slice.ptr), w, reloc_parent); ^ /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:2130:35: 0x40dc6fb in blockValue (main.zig) try codegen.generateSymbol( ^ /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:4590:59: 0x448e27a in updateContainerTypeWriterError (main.zig) try wip_nav.blockValue(ty_src_loc, .fromInterned(field_init)); ^ /home/geemili/code/ziglang.org/zig/src/link/Dwarf.zig:4391:48: 0x3c41576 in updateContainerType (main.zig) return dwarf.updateContainerTypeWriterError(pt, type_index) catch |err| switch (err) { ^ /home/geemili/code/ziglang.org/zig/src/link/Elf/ZigObject.zig:1718:59: 0x323e2ed in updateContainerType (main.zig) if (self.dwarf) |*dwarf| try dwarf.updateContainerType(pt, ty); ^ /home/geemili/code/ziglang.org/zig/src/link/Elf.zig:1710:53: 0x323eb13 in updateContainerType (main.zig) return self.zigObjectPtr().?.updateContainerType(pt, ty) catch |err| switch (err) { ^ /home/geemili/code/ziglang.org/zig/src/link.zig:790:91: 0x2bface3 in updateContainerType (main.zig) return @as(*tag.Type(), @fieldParentPtr("base", base)).updateContainerType(pt, ty); ^ /home/geemili/code/ziglang.org/zig/src/link.zig:1547:43: 0x2794442 in doZcuTask (main.zig) lf.updateContainerType(pt, ty) catch |err| switch (err) { ^ /home/geemili/code/ziglang.org/zig/src/link/Queue.zig:318:23: 0x2771a67 in flushTaskQueue (main.zig) link.doZcuTask(comp, tid, task); ^ /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread/Pool.zig:180:50: 0x2772213 in runFn (std.zig) @call(.auto, func, .{id.?} ++ closure.arguments); ^ /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread/Pool.zig:293:27: 0x2237b50 in worker (std.zig) runnable.runFn(runnable, id); ^ /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread.zig:558:13: 0x2069d10 in callFn__anon_199601 (std.zig) @call(.auto, f, args); ^ /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/Thread.zig:1534:30: 0x1eff680 in entryFn (std.zig) return callFn(f, self.fn_args); ^ /home/geemili/.local/share/ziglang/0.16.0-dev.1220+95c76b1b4/lib/std/os/linux/x86_64.zig:105:5: 0x1c7a405 in clone (std.zig) asm volatile ( ^ error: process terminated unexpectedly failed command: /home/geemili/code/ziglang.org/zig/zig-out/bin/zig build-exe -ODebug -target native-linux-none -mcpu native --dep ld -Mroot=/home/geemili/code/geemili/dynamic_linking_adventures/examples/sprintf_segfault.zig -ODebug -target native-linux-none -mcpu native -Mld=/home/geemili/code/geemili/dynamic_linking_adventures/dynamic_loader_library.zig --cache-dir .zig-cache --global-cache-dir /home/geemili/.cache/zig --name sprintf_segfault --zig-lib-dir /home/geemili/code/ziglang.org/zig/zig-out/lib/zig/ --listen=- Build Summary: 0/3 steps succeeded (1 failed) run:sprintf_segfault transitive failure └─ run exe sprintf_segfault transitive failure └─ compile exe sprintf_segfault Debug native-linux-none failure error: the following build command failed with exit code 1: .zig-cache/o/c8131c02c1f629a70fec934bb46ae787/build /home/geemili/code/ziglang.org/zig/zig-out/bin/zig /home/geemili/code/ziglang.org/zig/zig-out/lib/zig /home/geemili/code/geemili/dynamic_linking_adventures .zig-cache /home/geemili/.cache/zig --seed 0x826c35f7 -Zb1de53fa30fcde4b run:sprintf_segfault ```
Author
Owner

Adding --debug-log codegen causes it to crash during the formatting of a comptime_alloc pointer value, full log (including some messing around in gdb) is attached.

Zig version is 0.16.0-dev.1227+ee4df4ad3

Adding `--debug-log codegen` causes it to crash during the formatting of a `comptime_alloc` pointer value, full log (including some messing around in gdb) is attached. Zig version is `0.16.0-dev.1227+ee4df4ad3`
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
geemili/dynamic_linking_adventures#3
No description provided.