I am working with a C++ application in IDA and whenever I name a function with a :: or a ~ symbol it shows up in the function window as an underscore which is very hard to read (ex. Class::Function shows up as Class__Function)

How can I make it so that in the function window it will show the actual symbols and not underscores? Every database that I open shows the function names like this except mine.

I am using IDA Pro 7.0

  • Hi and welcome to RE.SE. These names are invalid in IDA, so that's why. However, I think you can enable the demangled names in comments. I'll have a look when I have an actual IDA in front of me.
    – 0xC0000022L
    Commented May 15, 2020 at 14:53

1 Answer 1


You can't simply name a function with these characters.

However, IDA can read mangled names and "demangle" them, showing their prototype with the C++ original symbols.

Basically, you want to write mangled names yourself, so that IDA will demangle them to show what you want to see.

There are different, sometimes complex, rules for mangling names. Here is an example for Visual Studio applications: https://en.wikiversity.org/wiki/Visual_C%2B%2B_name_mangling

Just a basic example: Name a function: ??1@ClassName@@@Z will be translated into ClassName::~ClassName()

Edit: Names will show as comment. If you want them to show as actual names, open Options menu, Demangled names and choose "names".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.