mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 22:04:21 +00:00
fix bad merge
The API of `std.debug.Pdb` changed.
This commit is contained in:
parent
02a0ade138
commit
7601b397ef
1 changed files with 22 additions and 5 deletions
|
|
@ -154,17 +154,29 @@ fn loadDebugInfo(module: *const WindowsModule, gpa: Allocator, di: *DebugInfo) !
|
||||||
};
|
};
|
||||||
defer if (path.ptr != raw_path.ptr) gpa.free(path);
|
defer if (path.ptr != raw_path.ptr) gpa.free(path);
|
||||||
|
|
||||||
di.pdb = Pdb.init(gpa, path) catch |err| switch (err) {
|
const pdb_file = std.fs.cwd().openFile(path, .{}) catch |err| switch (err) {
|
||||||
error.FileNotFound, error.IsDir => break :pdb,
|
error.FileNotFound, error.IsDir => break :pdb,
|
||||||
else => |e| return e,
|
else => |e| return e,
|
||||||
};
|
};
|
||||||
try di.pdb.?.parseInfoStream();
|
errdefer pdb_file.close();
|
||||||
try di.pdb.?.parseDbiStream();
|
|
||||||
|
|
||||||
if (!mem.eql(u8, &coff_obj.guid, &di.pdb.?.guid) or coff_obj.age != di.pdb.?.age)
|
const pdb_reader = try gpa.create(std.fs.File.Reader);
|
||||||
|
errdefer gpa.destroy(pdb_reader);
|
||||||
|
|
||||||
|
pdb_reader.* = pdb_file.reader(try gpa.alloc(u8, 4096));
|
||||||
|
errdefer gpa.free(pdb_reader.interface.buffer);
|
||||||
|
|
||||||
|
var pdb: Pdb = try .init(gpa, pdb_reader);
|
||||||
|
errdefer pdb.deinit();
|
||||||
|
try pdb.parseInfoStream();
|
||||||
|
try pdb.parseDbiStream();
|
||||||
|
|
||||||
|
if (!mem.eql(u8, &coff_obj.guid, &pdb.guid) or coff_obj.age != pdb.age)
|
||||||
return error.InvalidDebugInfo;
|
return error.InvalidDebugInfo;
|
||||||
|
|
||||||
di.coff_section_headers = try coff_obj.getSectionHeadersAlloc(gpa);
|
di.coff_section_headers = try coff_obj.getSectionHeadersAlloc(gpa);
|
||||||
|
|
||||||
|
di.pdb = pdb;
|
||||||
}
|
}
|
||||||
|
|
||||||
di.loaded = true;
|
di.loaded = true;
|
||||||
|
|
@ -204,7 +216,12 @@ pub const DebugInfo = struct {
|
||||||
pub fn deinit(di: *DebugInfo, gpa: Allocator) void {
|
pub fn deinit(di: *DebugInfo, gpa: Allocator) void {
|
||||||
if (!di.loaded) return;
|
if (!di.loaded) return;
|
||||||
if (di.dwarf) |*dwarf| dwarf.deinit(gpa);
|
if (di.dwarf) |*dwarf| dwarf.deinit(gpa);
|
||||||
if (di.pdb) |*pdb| pdb.deinit();
|
if (di.pdb) |*pdb| {
|
||||||
|
pdb.file_reader.file.close();
|
||||||
|
gpa.free(pdb.file_reader.interface.buffer);
|
||||||
|
gpa.destroy(pdb.file_reader);
|
||||||
|
pdb.deinit();
|
||||||
|
}
|
||||||
gpa.free(di.coff_section_headers);
|
gpa.free(di.coff_section_headers);
|
||||||
if (di.mapped_file) |mapped| {
|
if (di.mapped_file) |mapped| {
|
||||||
const process_handle = windows.GetCurrentProcess();
|
const process_handle = windows.GetCurrentProcess();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue