History log of /haiku/src/add-ons/kernel/debugger/demangle/gcc3+.cpp
Revision Date Author Comments
# 0945c7e4 09-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

demangle/GCC3+: Improve/fix behavior of ClonedNode.

Most of the ClonedNode methods just forward calls as appropriate to
fNode or fClonedNode, but missed that fNode is itself always an ObjectNode.
Now we store that, and forward on the two relevant ObjectNode calls.

This fixes kernel stack trace function demangling where the symbols
contained clones (e.g. "[clone .localalias]", etc.). Before this commit,
such symbols would just appear as "()" and no more.

The "[clone...]" block will in such cases appear after the function name
and not after all the function parameters, as the two are returned
separately and there is no way to indicate how they should be printed
in the kernel's API usage of these functions.

ClonedNode was only introduced a few months ago in hrev55147,
so this has not been broken for too long.


# 1b0f948e 10-Jun-2021 Jérôme Duval <jerome.duval@gmail.com>

demangler/gcc3+: handle vendor-specific suffix

fix bug #13720

Change-Id: I3363572b88aaa674f5ee7cf69866b9f2bbb4e84c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4084
Reviewed-by: Rene Gollent <rene@gollent.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 4bba0571 01-Dec-2018 Jérôme Duval <jerome.duval@gmail.com>

demangler/gcc3+: when the parameter isn't found, return a useful error.

after the last argument, get_next_argument() would call get_next_argument_gcc3(),
see a failure, then call get_next_argument_gcc2(). Ideally we could make
different cookies for gcc2 and gcc3+ demanglers, thus avoiding this issue.

Change-Id: I3904e008a0b6ba627940fb9bca1d44ddbafbcbd0
Reviewed-on: https://review.haiku-os.org/742
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 4535495d 10-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged the signals branch into trunk, with these changes:
* The team and thread kernel structures have been renamed to Team and Thread
respectively and moved into the new BKernel namespace.
* Several (kernel add-on) sources have been converted from C to C++ since
private kernel headers are included that are no longer C compatible.

Changes after merging:
* Fixed gcc 2 build (warnings mainly in the scary firewire bus manager).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f5f9d47 25-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Allow calling with NULL _isObjectMethod parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31245 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cd32d5b 20-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added function demangle_name_gcc3() not used in the add-on. The whole demangler
should better be moved to a shared location. Eventually...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15394881 03-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented demangling support for the current gcc ABI. Looks good so far
save for the additional '&'/'*' print_demangled_call() is printing for
reference/pointer arguments.
* Moved the new demangler and the gcc 2 demangler into the same module
always supporting both (the right one is chosen). In mixed gcc 2/gcc 4
environments we obviously need both of them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30954 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ddecb4a7 12-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed the way the demangle functionality works: instead of having a kernel
debugger add-on set a demangle hook, all modules under debugger/demangle/ are
now considered demangle modules.
* Added another function to the demangle module interface that gives you access
to the arguments.
* Implemented a demangling module for GCC2.
* The older demangling module is now called "gcc3+", but doesn't support
getting the arguments yet.
* The "call" KDL command is now using demangling to automatically show you
the arguments of a call from a stack crawl.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28018 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4535495d80c86e19e2610e7444a4fcefe3e0f8e6 10-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged the signals branch into trunk, with these changes:
* The team and thread kernel structures have been renamed to Team and Thread
respectively and moved into the new BKernel namespace.
* Several (kernel add-on) sources have been converted from C to C++ since
private kernel headers are included that are no longer C compatible.

Changes after merging:
* Fixed gcc 2 build (warnings mainly in the scary firewire bus manager).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f5f9d47b98666a80dfb18477f093cd7044abc96 25-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Allow calling with NULL _isObjectMethod parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31245 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cd32d5b065fd7262e50edbe0b64cc32c7d5121c 20-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added function demangle_name_gcc3() not used in the add-on. The whole demangler
should better be moved to a shared location. Eventually...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15394881a8c01f82f125af797a5c63cd40c71527 03-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented demangling support for the current gcc ABI. Looks good so far
save for the additional '&'/'*' print_demangled_call() is printing for
reference/pointer arguments.
* Moved the new demangler and the gcc 2 demangler into the same module
always supporting both (the right one is chosen). In mixed gcc 2/gcc 4
environments we obviously need both of them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30954 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ddecb4a7da1e8c56af7f319cbb26f5e47e65f6f6 12-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed the way the demangle functionality works: instead of having a kernel
debugger add-on set a demangle hook, all modules under debugger/demangle/ are
now considered demangle modules.
* Added another function to the demangle module interface that gives you access
to the arguments.
* Implemented a demangling module for GCC2.
* The older demangling module is now called "gcc3+", but doesn't support
getting the arguments yet.
* The "call" KDL command is now using demangling to automatically show you
the arguments of a call from a stack crawl.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28018 a95241bf-73f2-0310-859d-f6bbb57e9c96