@@ -28,12 +28,16 @@ impl Debug for Symbol {
2828
2929#[ derive( Debug , Clone ) ]
3030pub struct ModuleSymbols {
31+ load_bias : u64 ,
3132 symbols : Vec < Symbol > ,
3233}
3334
3435impl ModuleSymbols {
3536 pub fn from_symbols ( symbols : Vec < Symbol > ) -> Self {
36- Self { symbols }
37+ Self {
38+ symbols,
39+ load_bias : 0 ,
40+ }
3741 }
3842
3943 pub fn new < P : AsRef < Path > > (
@@ -78,11 +82,8 @@ impl ModuleSymbols {
7882 runtime_offset,
7983 & object,
8084 ) ?;
81- for symbol in & mut symbols {
82- symbol. addr = symbol. addr . wrapping_add ( load_bias) ;
83- }
8485
85- Ok ( Self { symbols } )
86+ Ok ( Self { load_bias , symbols } )
8687 }
8788
8889 pub fn append_to_file < P : AsRef < Path > > ( & self , path : P ) -> anyhow:: Result < ( ) > {
@@ -92,7 +93,13 @@ impl ModuleSymbols {
9293 . open ( path) ?;
9394
9495 for symbol in & self . symbols {
95- writeln ! ( file, "{:x} {:x} {}" , symbol. addr, symbol. size, symbol. name) ?;
96+ writeln ! (
97+ file,
98+ "{:x} {:x} {}" ,
99+ symbol. addr. wrapping_add( self . load_bias) ,
100+ symbol. size,
101+ symbol. name
102+ ) ?;
96103 }
97104
98105 Ok ( ( ) )
@@ -187,7 +194,7 @@ mod tests {
187194 file_offset,
188195 )
189196 . unwrap ( ) ;
190- insta:: assert_debug_snapshot!( module_symbols. symbols ) ;
197+ insta:: assert_debug_snapshot!( module_symbols) ;
191198 }
192199
193200 #[ test]
@@ -201,7 +208,7 @@ mod tests {
201208 file_offset,
202209 )
203210 . unwrap ( ) ;
204- insta:: assert_debug_snapshot!( module_symbols. symbols ) ;
211+ insta:: assert_debug_snapshot!( module_symbols) ;
205212 }
206213
207214 #[ test]
@@ -223,7 +230,7 @@ mod tests {
223230 let module_symbols =
224231 ModuleSymbols :: new ( MODULE_PATH , 0x00005555555a2000 , 0x0000555555692000 , 0x4d000 )
225232 . unwrap ( ) ;
226- insta:: assert_debug_snapshot!( module_symbols. symbols ) ;
233+ insta:: assert_debug_snapshot!( module_symbols) ;
227234 }
228235
229236 #[ test]
@@ -237,7 +244,7 @@ mod tests {
237244 0x00052000 ,
238245 )
239246 . unwrap ( ) ;
240- insta:: assert_debug_snapshot!( module_symbols. symbols ) ;
247+ insta:: assert_debug_snapshot!( module_symbols) ;
241248 }
242249
243250 #[ test]
@@ -248,6 +255,6 @@ mod tests {
248255 ( 0x0000555555e6d000_u64 , 0x0000555556813000_u64 , 0x918000 ) ;
249256 let module_symbols =
250257 ModuleSymbols :: new ( MODULE_PATH , start_addr, end_addr, file_offset) . unwrap ( ) ;
251- insta:: assert_debug_snapshot!( module_symbols. symbols ) ;
258+ insta:: assert_debug_snapshot!( module_symbols) ;
252259 }
253260}
0 commit comments