Merge pull request #3683 from bytecodealliance/demangle-names-in-profiling
Try demangling names before forwarding them to the profiler
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -3560,10 +3560,12 @@ dependencies = [
|
|||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
|
"cpp_demangle",
|
||||||
"gimli",
|
"gimli",
|
||||||
"ittapi-rs",
|
"ittapi-rs",
|
||||||
"object",
|
"object",
|
||||||
"region",
|
"region",
|
||||||
|
"rustc-demangle",
|
||||||
"rustix",
|
"rustix",
|
||||||
"serde",
|
"serde",
|
||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ serde = { version = "1.0.94", features = ["derive"] }
|
|||||||
addr2line = { version = "0.17.0", default-features = false }
|
addr2line = { version = "0.17.0", default-features = false }
|
||||||
ittapi-rs = { version = "0.1.6", optional = true }
|
ittapi-rs = { version = "0.1.6", optional = true }
|
||||||
bincode = "1.2.1"
|
bincode = "1.2.1"
|
||||||
|
rustc-demangle = "0.1.16"
|
||||||
|
cpp_demangle = "0.3.2"
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.dependencies]
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
winapi = { version = "0.3.8", features = ["winnt", "impl-default"] }
|
winapi = { version = "0.3.8", features = ["winnt", "impl-default"] }
|
||||||
|
|||||||
@@ -65,7 +65,10 @@ impl ProfilingAgent for NullProfilerAgent {
|
|||||||
fn debug_name(module: &Module, index: DefinedFuncIndex) -> String {
|
fn debug_name(module: &Module, index: DefinedFuncIndex) -> String {
|
||||||
let index = module.func_index(index);
|
let index = module.func_index(index);
|
||||||
match module.func_names.get(&index) {
|
match module.func_names.get(&index) {
|
||||||
Some(s) => s.clone(),
|
Some(s) => rustc_demangle::try_demangle(s)
|
||||||
|
.map(|demangle| demangle.to_string())
|
||||||
|
.or_else(|_| cpp_demangle::Symbol::new(s).map(|sym| sym.to_string()))
|
||||||
|
.unwrap_or_else(|_| s.clone()),
|
||||||
None => format!("wasm::wasm-function[{}]", index.index()),
|
None => format!("wasm::wasm-function[{}]", index.index()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user