diff --git a/src/add-ons/kernel/debugger/demangle/demangle.h b/src/add-ons/kernel/debugger/demangle/demangle.h index b3c4237723..c84b113f72 100644 --- a/src/add-ons/kernel/debugger/demangle/demangle.h +++ b/src/add-ons/kernel/debugger/demangle/demangle.h @@ -22,6 +22,10 @@ const char* demangle_symbol_gcc3(const char* name, char* buffer, status_t get_next_argument_gcc3(uint32* _cookie, const char* symbol, char* name, size_t nameSize, int32* _type, size_t* _argumentLength); +#ifndef _KERNEL_MODE +const char* demangle_name_gcc3(const char* name, char* buffer, + size_t bufferSize); +#endif #endif // DEMANGLE_H diff --git a/src/add-ons/kernel/debugger/demangle/gcc3+.cpp b/src/add-ons/kernel/debugger/demangle/gcc3+.cpp index 590de881f0..3cc92016bf 100644 --- a/src/add-ons/kernel/debugger/demangle/gcc3+.cpp +++ b/src/add-ons/kernel/debugger/demangle/gcc3+.cpp @@ -3870,3 +3870,19 @@ get_next_argument_gcc3(uint32* _cookie, const char* mangledName, char* name, ++*_cookie; return B_OK; } + + +#ifndef _KERNEL_MODE + +const char* +demangle_name_gcc3(const char* mangledName, char* buffer, size_t bufferSize) +{ + + Demangler demangler; + DemanglingInfo info(false); + if (demangler.Demangle(mangledName, buffer, bufferSize, info) != ERROR_OK) + return NULL; + return buffer; +} + +#endif