mirror of
https://github.com/ziglang/zig.git
synced 2025-12-26 08:03:08 +00:00
macho: re-enable emitting empty dSYM bundle
This commit is contained in:
parent
3ae4c3cc36
commit
d53cb284de
@ -256,32 +256,36 @@ pub fn createEmpty(
|
||||
.program_code_size_hint = options.program_code_size_hint,
|
||||
});
|
||||
|
||||
// TODO init dwarf
|
||||
switch (comp.config.debug_format) {
|
||||
.strip => {},
|
||||
.dwarf => {
|
||||
// Create dSYM bundle.
|
||||
log.debug("creating {s}.dSYM bundle", .{emit.sub_path});
|
||||
|
||||
// if (comp.config.debug_format != .strip) {
|
||||
// // Create dSYM bundle.
|
||||
// log.debug("creating {s}.dSYM bundle", .{emit.sub_path});
|
||||
const sep = fs.path.sep_str;
|
||||
const d_sym_path = try std.fmt.allocPrint(
|
||||
arena,
|
||||
"{s}.dSYM" ++ sep ++ "Contents" ++ sep ++ "Resources" ++ sep ++ "DWARF",
|
||||
.{emit.sub_path},
|
||||
);
|
||||
|
||||
// const d_sym_path = try std.fmt.allocPrint(
|
||||
// arena,
|
||||
// "{s}.dSYM" ++ fs.path.sep_str ++ "Contents" ++ fs.path.sep_str ++ "Resources" ++ fs.path.sep_str ++ "DWARF",
|
||||
// .{emit.sub_path},
|
||||
// );
|
||||
var d_sym_bundle = try emit.directory.handle.makeOpenPath(d_sym_path, .{});
|
||||
defer d_sym_bundle.close();
|
||||
|
||||
// var d_sym_bundle = try emit.directory.handle.makeOpenPath(d_sym_path, .{});
|
||||
// defer d_sym_bundle.close();
|
||||
const d_sym_file = try d_sym_bundle.createFile(emit.sub_path, .{
|
||||
.truncate = false,
|
||||
.read = true,
|
||||
});
|
||||
|
||||
// const d_sym_file = try d_sym_bundle.createFile(emit.sub_path, .{
|
||||
// .truncate = false,
|
||||
// .read = true,
|
||||
// });
|
||||
|
||||
// self.d_sym = .{
|
||||
// .allocator = gpa,
|
||||
// .dwarf = link.File.Dwarf.init(&self.base, .dwarf32),
|
||||
// .file = d_sym_file,
|
||||
// };
|
||||
// }
|
||||
self.d_sym = .{
|
||||
.allocator = gpa,
|
||||
.dwarf = link.File.Dwarf.init(&self.base, .dwarf32),
|
||||
.file = d_sym_file,
|
||||
};
|
||||
try self.d_sym.?.initMetadata(self);
|
||||
},
|
||||
.code_view => unreachable,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3906,9 +3910,8 @@ fn reportDuplicates(self: *MachO, dupes: anytype) error{ HasDuplicates, OutOfMem
|
||||
}
|
||||
|
||||
pub fn getDebugSymbols(self: *MachO) ?*DebugSymbols {
|
||||
if (self.d_sym) |*ds| {
|
||||
return ds;
|
||||
} else return null;
|
||||
if (self.d_sym) |*ds| return ds;
|
||||
return null;
|
||||
}
|
||||
|
||||
pub fn ptraceAttach(self: *MachO, pid: std.os.pid_t) !void {
|
||||
|
||||
@ -36,15 +36,13 @@ pub const Reloc = struct {
|
||||
prev_vaddr: u64,
|
||||
};
|
||||
|
||||
/// You must call this function *after* `MachO.populateMissingMetadata()`
|
||||
/// You must call this function *after* `ZigObject.initMetadata()`
|
||||
/// has been called to get a viable debug symbols output.
|
||||
pub fn populateMissingMetadata(self: *DebugSymbols, macho_file: *MachO) !void {
|
||||
const target = macho_file.base.comp.root_mod.resolved_target.result;
|
||||
|
||||
pub fn initMetadata(self: *DebugSymbols, macho_file: *MachO) !void {
|
||||
if (self.dwarf_segment_cmd_index == null) {
|
||||
self.dwarf_segment_cmd_index = @as(u8, @intCast(self.segments.items.len));
|
||||
|
||||
const page_size = MachO.getPageSize(target.cpu.arch);
|
||||
const page_size = macho_file.getPageSize();
|
||||
const off = @as(u64, @intCast(page_size));
|
||||
const ideal_size: u16 = 200 + 128 + 160 + 250;
|
||||
const needed_size = mem.alignForward(u64, padToIdeal(ideal_size), page_size);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user