On 15-10-21 05:49 AM, Pedro Alves wrote: ... >> + char *note; // buffer holding the section contents > > Please use /**/ format for comments, and write full sentences - start > with uppercase, period at end. Usually that leads to putting the comment > above, e.g.: > > + /* Buffer holding the section contents. */ > + char *note; Done. > >> + unsigned int namelen; >> + const char *name; >> + >> + sectname = bfd_get_section_name (abfd, sect); >> + sectsize = bfd_section_size (abfd, sect); >> + >> + /* TODO: limit the note size here, for now limit is 128 bytes >> + (enough to check the name and type). */ > > This reads like limiting is left to do, but then it does > implement a limit. So this TODO comment is confusing. Comment removed. > > You should also make sure the section is the at least > the minimum size you expect though. Done. ... >> + { >> + note = alloca (sectsize); > > For C++, write: > > note = (char *) alloca (sectsize); Used XNEWVEC/XDELETEVEC instead. > > >> + bfd_get_section_contents (abfd, sect, note, 0, sectsize); >> + namelen = (unsigned int) bfd_h_get_32 (abfd, note); >> + name = note + 12; >> + >> + if (namelen > 0 >> + && (0 == strcmp (name, QNX_NOTE_NAME))) >> + *(enum gdb_osabi *) obj = GDB_OSABI_QNXNTO; >> + } >> +} >> + >> enum gdb_osabi >> nto_elf_osabi_sniffer (bfd *abfd) >> { >> - if (nto_is_nto_target) >> + enum gdb_osabi osabi = GDB_OSABI_UNKNOWN; >> + >> + bfd_map_over_sections (abfd, >> + nto_sniff_abi_note_section, >> + &osabi); >> + >> + if (osabi == GDB_OSABI_UNKNOWN && nto_is_nto_target) >> return nto_is_nto_target (abfd); > > ... > nto_is_nto_target = procfs_is_nto_target; > ... > > static enum gdb_osabi > procfs_is_nto_target (bfd *abfd) > { > return GDB_OSABI_QNXNTO; > } > > So that basically could be rewritten as: > > if (osabi == GDB_OSABI_UNKNOWN && nto_is_nto_target) > return GDB_OSABI_QNXNTO; > > > But, do we still need this nto_is_nto_target hack here? > Now with proper sniffing, can't we just remove it altogether? Removed. Rely on new sniffing only, no hard coded fallback. > >> - return GDB_OSABI_UNKNOWN; >> + return osabi; >> } >> >> static const char *nto_thread_state_str[] = >> > > > Thanks, > Pedro Alves > > New version of the patch attached. Thank you, Aleksandar Ristovski