@@ -26,7 +26,7 @@ const Info = @This();
26
26
const root = @import ("root" );
27
27
28
28
allocator : Allocator ,
29
- address_map : std .AutoHashMap (usize , * ModuleDebugInfo ),
29
+ address_map : std .AutoHashMap (usize , * Module ),
30
30
modules : if (native_os == .windows ) std .ArrayListUnmanaged (WindowsModuleInfo ) else void ,
31
31
32
32
pub const OpenSelfError = error {
@@ -58,9 +58,9 @@ pub fn openSelf(allocator: Allocator) OpenSelfError!Info {
58
58
}
59
59
60
60
pub fn init (allocator : Allocator ) ! Info {
61
- var debug_info = Info {
61
+ var debug_info : Info = . {
62
62
.allocator = allocator ,
63
- .address_map = std .AutoHashMap (usize , * ModuleDebugInfo ).init (allocator ),
63
+ .address_map = std .AutoHashMap (usize , * Module ).init (allocator ),
64
64
.modules = if (native_os == .windows ) .{} else {},
65
65
};
66
66
@@ -118,7 +118,7 @@ pub fn deinit(self: *Info) void {
118
118
}
119
119
}
120
120
121
- pub fn getModuleForAddress (self : * Info , address : usize ) ! * ModuleDebugInfo {
121
+ pub fn getModuleForAddress (self : * Info , address : usize ) ! * Module {
122
122
if (comptime builtin .target .isDarwin ()) {
123
123
return self .lookupModuleDyld (address );
124
124
} else if (native_os == .windows ) {
@@ -149,7 +149,7 @@ pub fn getModuleNameForAddress(self: *Info, address: usize) ?[]const u8 {
149
149
}
150
150
}
151
151
152
- fn lookupModuleDyld (self : * Info , address : usize ) ! * ModuleDebugInfo {
152
+ fn lookupModuleDyld (self : * Info , address : usize ) ! * Module {
153
153
const image_count = std .c ._dyld_image_count ();
154
154
155
155
var i : u32 = 0 ;
@@ -189,7 +189,7 @@ fn lookupModuleDyld(self: *Info, address: usize) !*ModuleDebugInfo {
189
189
}
190
190
}
191
191
192
- const obj_di = try self .allocator .create (ModuleDebugInfo );
192
+ const obj_di = try self .allocator .create (Module );
193
193
errdefer self .allocator .destroy (obj_di );
194
194
195
195
const macho_path = mem .sliceTo (std .c ._dyld_get_image_name (i ), 0 );
@@ -253,14 +253,14 @@ fn lookupModuleNameDyld(self: *Info, address: usize) ?[]const u8 {
253
253
return null ;
254
254
}
255
255
256
- fn lookupModuleWin32 (self : * Info , address : usize ) ! * ModuleDebugInfo {
256
+ fn lookupModuleWin32 (self : * Info , address : usize ) ! * Module {
257
257
for (self .modules .items ) | * module | {
258
258
if (address >= module .base_address and address < module .base_address + module .size ) {
259
259
if (self .address_map .get (module .base_address )) | obj_di | {
260
260
return obj_di ;
261
261
}
262
262
263
- const obj_di = try self .allocator .create (ModuleDebugInfo );
263
+ const obj_di = try self .allocator .create (Module );
264
264
errdefer self .allocator .destroy (obj_di );
265
265
266
266
const mapped_module = @as ([* ]const u8 , @ptrFromInt (module .base_address ))[0.. module .size ];
@@ -390,7 +390,7 @@ fn lookupModuleNameDl(self: *Info, address: usize) ?[]const u8 {
390
390
return null ;
391
391
}
392
392
393
- fn lookupModuleDl (self : * Info , address : usize ) ! * ModuleDebugInfo {
393
+ fn lookupModuleDl (self : * Info , address : usize ) ! * Module {
394
394
var ctx : struct {
395
395
// Input
396
396
address : usize ,
@@ -458,7 +458,7 @@ fn lookupModuleDl(self: *Info, address: usize) !*ModuleDebugInfo {
458
458
return obj_di ;
459
459
}
460
460
461
- const obj_di = try self .allocator .create (ModuleDebugInfo );
461
+ const obj_di = try self .allocator .create (Module );
462
462
errdefer self .allocator .destroy (obj_di );
463
463
464
464
var sections : Dwarf.SectionArray = Dwarf .null_section_array ;
@@ -484,19 +484,19 @@ fn lookupModuleDl(self: *Info, address: usize) !*ModuleDebugInfo {
484
484
return obj_di ;
485
485
}
486
486
487
- fn lookupModuleHaiku (self : * Info , address : usize ) ! * ModuleDebugInfo {
487
+ fn lookupModuleHaiku (self : * Info , address : usize ) ! * Module {
488
488
_ = self ;
489
489
_ = address ;
490
490
@panic ("TODO implement lookup module for Haiku" );
491
491
}
492
492
493
- fn lookupModuleWasm (self : * Info , address : usize ) ! * ModuleDebugInfo {
493
+ fn lookupModuleWasm (self : * Info , address : usize ) ! * Module {
494
494
_ = self ;
495
495
_ = address ;
496
496
@panic ("TODO implement lookup module for Wasm" );
497
497
}
498
498
499
- pub const ModuleDebugInfo = switch (native_os ) {
499
+ pub const Module = switch (native_os ) {
500
500
.macos , .ios , .watchos , .tvos , .visionos = > struct {
501
501
base_address : usize ,
502
502
vmaddr_slide : usize ,
@@ -861,7 +861,7 @@ pub const WindowsModuleInfo = struct {
861
861
/// This takes ownership of macho_file: users of this function should not close
862
862
/// it themselves, even on error.
863
863
/// TODO it's weird to take ownership even on error, rework this code.
864
- fn readMachODebugInfo (allocator : Allocator , macho_file : File ) ! ModuleDebugInfo {
864
+ fn readMachODebugInfo (allocator : Allocator , macho_file : File ) ! Module {
865
865
const mapped_mem = try mapWholeFile (macho_file );
866
866
867
867
const hdr : * const macho.mach_header_64 = @ptrCast (@alignCast (mapped_mem .ptr ));
@@ -975,19 +975,19 @@ fn readMachODebugInfo(allocator: Allocator, macho_file: File) !ModuleDebugInfo {
975
975
// This sort is so that we can binary search later.
976
976
mem .sort (MachoSymbol , symbols , {}, MachoSymbol .addressLessThan );
977
977
978
- return ModuleDebugInfo {
978
+ return . {
979
979
.base_address = undefined ,
980
980
.vmaddr_slide = undefined ,
981
981
.mapped_memory = mapped_mem ,
982
- .ofiles = ModuleDebugInfo .OFileTable .init (allocator ),
982
+ .ofiles = Module .OFileTable .init (allocator ),
983
983
.symbols = symbols ,
984
984
.strings = strings ,
985
985
};
986
986
}
987
987
988
- fn readCoffDebugInfo (allocator : Allocator , coff_obj : * coff.Coff ) ! ModuleDebugInfo {
988
+ fn readCoffDebugInfo (allocator : Allocator , coff_obj : * coff.Coff ) ! Module {
989
989
nosuspend {
990
- var di = ModuleDebugInfo {
990
+ var di : Module = . {
991
991
.base_address = undefined ,
992
992
.coff_image_base = coff_obj .getImageBase (),
993
993
.coff_section_headers = undefined ,
@@ -1062,7 +1062,7 @@ pub fn readElfDebugInfo(
1062
1062
expected_crc : ? u32 ,
1063
1063
parent_sections : * Dwarf.SectionArray ,
1064
1064
parent_mapped_mem : ? []align (mem.page_size ) const u8 ,
1065
- ) ! ModuleDebugInfo {
1065
+ ) ! Module {
1066
1066
nosuspend {
1067
1067
const elf_file = (if (elf_filename ) | filename | blk : {
1068
1068
break :blk fs .cwd ().openFile (filename , .{});
@@ -1236,7 +1236,7 @@ pub fn readElfDebugInfo(
1236
1236
1237
1237
try Dwarf .open (& di , allocator );
1238
1238
1239
- return ModuleDebugInfo {
1239
+ return . {
1240
1240
.base_address = undefined ,
1241
1241
.dwarf = di ,
1242
1242
.mapped_memory = parent_mapped_mem orelse mapped_mem ,
0 commit comments