wide
This commit is contained in:
parent
99649794e9
commit
463f704431
|
@ -1255,31 +1255,25 @@ pub const DebugInfo = struct {
|
|||
const seg_end = seg_start + info.SizeOfImage;
|
||||
|
||||
if (address >= seg_start and address < seg_end) {
|
||||
var name_buffer: [windows.PATH_MAX_WIDE]u16 = [_]u16{0} ** windows.PATH_MAX_WIDE;
|
||||
// XXX Use W variant
|
||||
const len = windows.kernel32.K32GetModuleFileNameExW(
|
||||
var name_buffer: [windows.MAX_PATH]u8 = undefined;
|
||||
// XXX: Use W variant (#534)
|
||||
const len = windows.kernel32.K32GetModuleFileNameExA(
|
||||
process_handle,
|
||||
module,
|
||||
@ptrCast(windows.LPWSTR, &name_buffer),
|
||||
@sizeOf(@TypeOf(name_buffer)) / @sizeOf(u16),
|
||||
@ptrCast(windows.LPSTR, &name_buffer),
|
||||
@sizeOf(@TypeOf(name_buffer)) / @sizeOf(u8),
|
||||
);
|
||||
assert(len > 0);
|
||||
const name_slice = mem.toSlice(u16, name_buffer[0..:0]);
|
||||
warn("slice len {}\n", .{name_slice.len});
|
||||
|
||||
const x = try std.unicode.utf16leToUtf8Alloc(self.allocator, name_buffer[0..]);
|
||||
warn("ask for {s} len {}\n", .{ x, name_slice.len });
|
||||
self.allocator.free(x);
|
||||
|
||||
if (self.address_map.getValue(seg_start)) |obj_di| {
|
||||
warn("cache hit!\n", .{});
|
||||
return obj_di;
|
||||
}
|
||||
|
||||
warn("loading?\n", .{});
|
||||
const file_obj = try fs.openFileAbsoluteW(name_slice, .{});
|
||||
// XXX: The compiler segfaults if the slicing is done as a
|
||||
// parameter
|
||||
const tmp = name_buffer[0..:0];
|
||||
const file_obj = try fs.cwd().openFileC(tmp, .{});
|
||||
errdefer file_obj.close();
|
||||
warn("loaded!\n", .{});
|
||||
|
||||
const obj_di = try self.allocator.create(ObjectDebugInfo);
|
||||
errdefer self.allocator.destroy(obj_di);
|
||||
|
|
|
@ -859,8 +859,6 @@ pub const Dir = struct {
|
|||
null,
|
||||
0,
|
||||
);
|
||||
std.debug.warn("here? rc {x}\n", .{rc});
|
||||
|
||||
switch (rc) {
|
||||
.SUCCESS => return result,
|
||||
.OBJECT_NAME_INVALID => unreachable,
|
||||
|
|
Loading…
Reference in New Issue
Block a user