mirror of
https://github.com/encounter/objdiff.git
synced 2025-06-07 15:13:47 +00:00
mips: Add C++ symbol demangling (CW & modern GCC)
This commit is contained in:
parent
809e2ffddc
commit
9358d8ec60
@ -81,6 +81,8 @@ std = [
|
|||||||
]
|
]
|
||||||
mips = [
|
mips = [
|
||||||
"any-arch",
|
"any-arch",
|
||||||
|
"dep:cpp_demangle",
|
||||||
|
"dep:cwdemangle",
|
||||||
"dep:rabbitizer",
|
"dep:rabbitizer",
|
||||||
]
|
]
|
||||||
ppc = [
|
ppc = [
|
||||||
|
@ -286,6 +286,13 @@ impl Arch for ArchMips {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn demangle(&self, name: &str) -> Option<String> {
|
||||||
|
cpp_demangle::Symbol::new(name)
|
||||||
|
.ok()
|
||||||
|
.and_then(|s| s.demangle(&cpp_demangle::DemangleOptions::default()).ok())
|
||||||
|
.or_else(|| cwdemangle::demangle(name, &cwdemangle::DemangleOptions::default()))
|
||||||
|
}
|
||||||
|
|
||||||
fn reloc_name(&self, flags: RelocationFlags) -> Option<&'static str> {
|
fn reloc_name(&self, flags: RelocationFlags) -> Option<&'static str> {
|
||||||
match flags {
|
match flags {
|
||||||
RelocationFlags::Elf(r_type) => match r_type {
|
RelocationFlags::Elf(r_type) => match r_type {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user