diff --git a/src/add-ons/kernel/debugger/demangle/demangle.cpp b/src/add-ons/kernel/debugger/demangle/demangle.cpp index 60c3626176..f6e0584bb4 100644 --- a/src/add-ons/kernel/debugger/demangle/demangle.cpp +++ b/src/add-ons/kernel/debugger/demangle/demangle.cpp @@ -46,8 +46,8 @@ get_next_argument(uint32* _cookie, const char* mangledName, char* name, if (looks_like_gcc3_symbol(mangledName)) { status_t error = get_next_argument_gcc3(_cookie, mangledName, name, nameSize, _type, _argumentLength); - if (error == B_OK) - return B_OK; + if (error == B_OK || error == B_BAD_INDEX) + return error; } // fallback is gcc2 diff --git a/src/add-ons/kernel/debugger/demangle/gcc3+.cpp b/src/add-ons/kernel/debugger/demangle/gcc3+.cpp index 46419a7714..bfa3a2edf2 100644 --- a/src/add-ons/kernel/debugger/demangle/gcc3+.cpp +++ b/src/add-ons/kernel/debugger/demangle/gcc3+.cpp @@ -3726,6 +3726,8 @@ get_next_argument_gcc3(uint32* _cookie, const char* mangledName, char* name, return B_BUFFER_OVERFLOW; case ERROR_NO_MEMORY: return B_NO_MEMORY; + case ERROR_INVALID_PARAMETER_INDEX: + return B_BAD_INDEX; case ERROR_INTERNAL: default: return B_ERROR;