Symbol tables in Mach-Os can contain all kinds of junk, including symbolic debug entries and entries without actual names. This can result in a lot of unnecessary work, since we end up scanning symbols that don't actually correspond to the CPython ABI being linked against.
The solution here is to filter the symbol table, and only audit symbols that correspond to function or data entries and that are marked as "undefined" (meaning external, not local).