nodejs/deps/v8/tools/mac-nm
Michaël Zasso 6bd756d7c6
deps: update V8 to 10.7.193.13
PR-URL: https://github.com/nodejs/node/pull/44741
Fixes: https://github.com/nodejs/node/issues/44650
Fixes: https://github.com/nodejs/node/issues/37472
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2022-10-11 07:24:33 +02:00

20 lines
807 B
Bash
Executable File

#!/bin/sh
# This script is a wrapper for OS X nm(1) tool. nm(1) perform C++ function
# names demangling, so we're piping its output to c++filt(1) tool which does it.
# But c++filt(1) comes with XCode (as a part of GNU binutils), so it doesn't
# guaranteed to exist on a system.
#
# An alternative approach is to perform demangling in tick processor, but
# for GNU C++ ABI this is a complex process (see cp-demangle.c sources), and
# can't be done partially, because term boundaries are plain text symbols, such
# as 'N', 'E', so one can't just do a search through a function name, it really
# needs to be parsed, which requires a lot of knowledge to be coded in.
if [ "`which c++filt`" == "" ]; then
nm "$@"
else
nm "$@" | sed -n "s/\([0-9a-fA-F]\{8,16\}\) [iItT] \(.*\)/\\1 \\2/p"\
| c++filt
fi