Skip to content

Commit af0cb64

Browse files
committed
fix: dont immediately add load_bias to symbol offset
1 parent 44b7e6b commit af0cb64

6 files changed

+10757
-10738
lines changed

src/run/runner/wall_time/perf/perf_map.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,16 @@ impl Debug for Symbol {
2828

2929
#[derive(Debug, Clone)]
3030
pub struct ModuleSymbols {
31+
load_bias: u64,
3132
symbols: Vec<Symbol>,
3233
}
3334

3435
impl 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

Comments
 (0)