You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I run the following program, to_string seems to panic, while the unwrap succeeds. I'm not sure if this is intentional or not.
use cpp_demangle::Symbol;fnmain(){let n = Symbol::new("RC4").unwrap();let b = n.to_string();}
Upon further inspection, the fmt function from the Display trait throws the following error when compiled with logging which causes the to_string implementation to panic.
Error getting leaf name: reference to a leaf name in a context where there is no current leaf name
When demangling it without using to_string, demangle correctly returns the Error
use cpp_demangle::Symbol;fnmain(){let n = Symbol::new("RC4").unwrap();let options = DemangleOptions::default();ifletErr(e) = n.demangle(&options){println!("{}", e);}}
And prints the following:
an error occurred when formatting an argument
The text was updated successfully, but these errors were encountered:
Yeah, this is because Symbol's Display implementation can return an error for internal reasons (which is technically a violation of Display's contract). The solution to this is to remove the Display impl entirely and instead rely on Symbol::demangle, but that requires a major version bump.
khuey
changed the title
Panic in to_string only
Remove impl Display for SymbolJan 3, 2022
When I run the following program, to_string seems to panic, while the unwrap succeeds. I'm not sure if this is intentional or not.
Upon further inspection, the fmt function from the Display trait throws the following error when compiled with logging which causes the to_string implementation to panic.
When demangling it without using
to_string
,demangle
correctly returns the ErrorAnd prints the following:
The text was updated successfully, but these errors were encountered: