2009-07-14 05:01:06 +00:00
|
|
|
#!/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
|
2009-08-13 14:03:12 +00:00
|
|
|
nm "$@"
|
2009-07-14 05:01:06 +00:00
|
|
|
else
|
2017-03-04 13:04:58 +00:00
|
|
|
nm "$@" | sed -n "s/\([0-9a-fA-F]\{8,16\}\) [iItT] \(.*\)/\\1 \\2/p"\
|
|
|
|
| c++filt -p -i
|
2009-07-14 05:01:06 +00:00
|
|
|
fi
|