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 {...@@ -828,19 +828,21 @@ const coff = struct {
828 defer gpa.free(string_table);828 defer gpa.free(string_table);
829829
830 if (d.opts.strings) {830 if (d.opts.strings) {
831 if (d.element(.@"table-header"))831 if (string_table.len > 0) {
832 try w.print(832 if (d.element(.@"table-header"))
833 \\String Table (0x{x} bytes):833 try w.print(
834 \\834 \\String Table (0x{x} bytes):
835 , .{string_table.len});835 \\
836 , .{string_table.len});
836837
837 var sr = Io.Reader.fixed(string_table[@sizeOf(u32)..]);838 var sr = Io.Reader.fixed(string_table[@sizeOf(u32)..]);
838 while (try sr.takeDelimiter(0)) |str| {839 while (try sr.takeDelimiter(0)) |str| {
839 try w.writeAll(str);840 try w.writeAll(str);
840 try w.writeByte('\n');841 try w.writeByte('\n');
841 }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");
844 }846 }
845847
846 var sections: std.ArrayList(Section) = .empty;848 var sections: std.ArrayList(Section) = .empty;