authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-02-10 17:19:19+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-02-20 19:41:29+01:00
log463f70443164ae602eb658c2bed557c289da020f
tree6f69e70abe8d162c6da06f00c36fce8b7f1ee73f
parent99649794e965ce76c81cb91a7ff78f3a42d533bc

wide


2 files changed, 9 insertions(+), 17 deletions(-)

lib/std/debug.zig+9-15
......@@ -1255,31 +1255,25 @@ pub const DebugInfo = struct {
12551255 const seg_end = seg_start + info.SizeOfImage;
12561256
12571257 if (address >= seg_start and address < seg_end) {
1258 var name_buffer: [windows.PATH_MAX_WIDE]u16 = [_]u16{0} ** windows.PATH_MAX_WIDE;
1259 // XXX Use W variant
1260 const len = windows.kernel32.K32GetModuleFileNameExW(
1258 var name_buffer: [windows.MAX_PATH]u8 = undefined;
1259 // XXX: Use W variant (#534)
1260 const len = windows.kernel32.K32GetModuleFileNameExA(
12611261 process_handle,
12621262 module,
1263 @ptrCast(windows.LPWSTR, &name_buffer),
1264 @sizeOf(@TypeOf(name_buffer)) / @sizeOf(u16),
1263 @ptrCast(windows.LPSTR, &name_buffer),
1264 @sizeOf(@TypeOf(name_buffer)) / @sizeOf(u8),
12651265 );
12661266 assert(len > 0);
1267 const name_slice = mem.toSlice(u16, name_buffer[0..:0]);
1268 warn("slice len {}\n", .{name_slice.len});
1269
1270 const x = try std.unicode.utf16leToUtf8Alloc(self.allocator, name_buffer[0..]);
1271 warn("ask for {s} len {}\n", .{ x, name_slice.len });
1272 self.allocator.free(x);
12731267
12741268 if (self.address_map.getValue(seg_start)) |obj_di| {
1275 warn("cache hit!\n", .{});
12761269 return obj_di;
12771270 }
12781271
1279 warn("loading?\n", .{});
1280 const file_obj = try fs.openFileAbsoluteW(name_slice, .{});
1272 // XXX: The compiler segfaults if the slicing is done as a
1273 // parameter
1274 const tmp = name_buffer[0..:0];
1275 const file_obj = try fs.cwd().openFileC(tmp, .{});
12811276 errdefer file_obj.close();
1282 warn("loaded!\n", .{});
12831277
12841278 const obj_di = try self.allocator.create(ObjectDebugInfo);
12851279 errdefer self.allocator.destroy(obj_di);
lib/std/fs.zig-2
......@@ -859,8 +859,6 @@ pub const Dir = struct {
859859 null,
860860 0,
861861 );
862 std.debug.warn("here? rc {x}\n", .{rc});
863
864862 switch (rc) {
865863 .SUCCESS => return result,
866864 .OBJECT_NAME_INVALID => unreachable,