in macho.go [88:114]
func (f *machoFile) goSymbols(stdlib bool) ([]string, error) {
tab, err := f.pclnTable()
if err != nil {
return nil, err
}
imports := make([]string, 0, len(f.objFile.Symtab.Syms))
for _, sym := range f.objFile.Symtab.Syms {
if sym.Sect == 0 || int(sym.Sect) > len(f.objFile.Sections) {
continue
}
sect := f.objFile.Sections[sym.Sect-1]
if sect.Seg != "__TEXT" || sect.Name != "__text" {
continue
}
if strings.HasPrefix(sym.Name, "type..") {
continue
}
if !stdlib && isStdlib(sym.Name, sym.Value, tab) {
continue
}
imports = append(imports, sym.Name)
}
if len(imports) == 0 {
imports = nil
}
return imports, nil
}