5 demanglersrc="/tmp/demangler.cpp"
6 demanglerfile="/tmp/demangler"
12 int main(int argc, char** argv) {
14 char* demangled = abi::__cxa_demangle(argv[1], nullptr, nullptr, &status);
16 ::printf(\"%%s\\\n\", demangled);
22 g++ "$demanglersrc" -o "$demanglerfile"
25 sobase="$(basename $sofile)"
26 sosym="/tmp/$sobase.sym"
27 usosym="/tmp/uniq_$sobase.sym"
28 stripfile="/tmp/stripped_$sobase"
29 stripsym="/tmp/stripped_$sobase.sym"
30 ustripsym="/tmp/uniq_stripped_$sobase.sym"
32 readelf -s -W "$sofile" | awk -F' ' '{print $8}' > "$sosym"
34 objcopy -v -g --strip-unneeded "$sofile" "$stripfile"
35 readelf -s -W "$stripfile" | awk -F' ' '{print $8}' > "$stripsym"
37 uniq "$sosym" "$usosym"
38 uniq "$stripsym" "$ustripsym"
40 grep -q "^${line}$" "$ustripsym" || "$demanglerfile" "$line"
43 rm -vf "$demanglersrc" "$demanglerfile" "$stripfile" "$sosym" "$usosym" "$stripsym" "$ustripsym"