authorgravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-09-19 15:35:47-04:00
committergravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-09-19 15:35:47-04:00
log5dab6a4533dbb5222be5b6309eea25115659bacf
tree0c2809ecfacce90ab2e68e7c2a929c6c248e2444
parent6ec487d91da45787cf94f02997fe195aac58aef5

objdump: instead of crashing when using --strings and there is no string table, print a message


1 files changed, 13 insertions(+), 11 deletions(-)

lib/compiler/objdump.zig+13-11
......@@ -828,19 +828,21 @@ const coff = struct {
828828 defer gpa.free(string_table);
829829
830830 if (d.opts.strings) {
831 if (d.element(.@"table-header"))
832 try w.print(
833 \\String Table (0x{x} bytes):
834 \\
835 , .{string_table.len});
831 if (string_table.len > 0) {
832 if (d.element(.@"table-header"))
833 try w.print(
834 \\String Table (0x{x} bytes):
835 \\
836 , .{string_table.len});
836837
837 var sr = Io.Reader.fixed(string_table[@sizeOf(u32)..]);
838 while (try sr.takeDelimiter(0)) |str| {
839 try w.writeAll(str);
840 try w.writeByte('\n');
841 }
838 var sr = Io.Reader.fixed(string_table[@sizeOf(u32)..]);
839 while (try sr.takeDelimiter(0)) |str| {
840 try w.writeAll(str);
841 try w.writeByte('\n');
842 }
842843
843 if (d.element(.newlines)) try w.writeByte('\n');
844 if (d.element(.newlines)) try w.writeByte('\n');
845 } else try w.writeAll("String table not present\n");
844846 }
845847
846848 var sections: std.ArrayList(Section) = .empty;