mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
Move gdb_bfd_errmsg to gdb_bfd.c
gdb_bfd.c contains most of gdb's BFD-related utility functions. However, gdb_bfd_errmsg is in utils.c. It seemed better to me to move this out of util.[ch] and into the BFD-related file instead. Tested by rebuilding.
This commit is contained in:
@ -1059,6 +1059,36 @@ gdb_bfd_get_full_section_contents (bfd *abfd, asection *section,
|
||||
section_size);
|
||||
}
|
||||
|
||||
#define AMBIGUOUS_MESS1 ".\nMatching formats:"
|
||||
#define AMBIGUOUS_MESS2 \
|
||||
".\nUse \"set gnutarget format-name\" to specify the format."
|
||||
|
||||
/* See gdb_bfd.h. */
|
||||
|
||||
std::string
|
||||
gdb_bfd_errmsg (bfd_error_type error_tag, char **matching)
|
||||
{
|
||||
char **p;
|
||||
|
||||
/* Check if errmsg just need simple return. */
|
||||
if (error_tag != bfd_error_file_ambiguously_recognized || matching == NULL)
|
||||
return bfd_errmsg (error_tag);
|
||||
|
||||
std::string ret (bfd_errmsg (error_tag));
|
||||
ret += AMBIGUOUS_MESS1;
|
||||
|
||||
for (p = matching; *p; p++)
|
||||
{
|
||||
ret += " ";
|
||||
ret += *p;
|
||||
}
|
||||
ret += AMBIGUOUS_MESS2;
|
||||
|
||||
xfree (matching);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* A callback for htab_traverse that prints a single BFD. */
|
||||
|
||||
static int
|
||||
|
@ -223,4 +223,11 @@ gdb_bfd_sections (const gdb_bfd_ref_ptr &abfd)
|
||||
return gdb_bfd_section_range (abfd->sections);
|
||||
};
|
||||
|
||||
/* A wrapper for bfd_errmsg to produce a more helpful error message
|
||||
in the case of bfd_error_file_ambiguously recognized.
|
||||
MATCHING, if non-NULL, is the corresponding argument to
|
||||
bfd_check_format_matches, and will be freed. */
|
||||
|
||||
extern std::string gdb_bfd_errmsg (bfd_error_type error_tag, char **matching);
|
||||
|
||||
#endif /* GDB_BFD_H */
|
||||
|
28
gdb/utils.c
28
gdb/utils.c
@ -3026,34 +3026,6 @@ gdb_argv::reset (const char *s)
|
||||
m_argv = argv;
|
||||
}
|
||||
|
||||
#define AMBIGUOUS_MESS1 ".\nMatching formats:"
|
||||
#define AMBIGUOUS_MESS2 \
|
||||
".\nUse \"set gnutarget format-name\" to specify the format."
|
||||
|
||||
std::string
|
||||
gdb_bfd_errmsg (bfd_error_type error_tag, char **matching)
|
||||
{
|
||||
char **p;
|
||||
|
||||
/* Check if errmsg just need simple return. */
|
||||
if (error_tag != bfd_error_file_ambiguously_recognized || matching == NULL)
|
||||
return bfd_errmsg (error_tag);
|
||||
|
||||
std::string ret (bfd_errmsg (error_tag));
|
||||
ret += AMBIGUOUS_MESS1;
|
||||
|
||||
for (p = matching; *p; p++)
|
||||
{
|
||||
ret += " ";
|
||||
ret += *p;
|
||||
}
|
||||
ret += AMBIGUOUS_MESS2;
|
||||
|
||||
xfree (matching);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Return ARGS parsed as a valid pid, or throw an error. */
|
||||
|
||||
int
|
||||
|
@ -109,13 +109,6 @@ compare_cstrings (const char *str1, const char *str2)
|
||||
return strcmp (str1, str2) < 0;
|
||||
}
|
||||
|
||||
/* A wrapper for bfd_errmsg to produce a more helpful error message
|
||||
in the case of bfd_error_file_ambiguously recognized.
|
||||
MATCHING, if non-NULL, is the corresponding argument to
|
||||
bfd_check_format_matches, and will be freed. */
|
||||
|
||||
extern std::string gdb_bfd_errmsg (bfd_error_type error_tag, char **matching);
|
||||
|
||||
/* Reset the prompt_for_continue clock. */
|
||||
void reset_prompt_for_continue_wait_time (void);
|
||||
/* Return the time spent in prompt_for_continue. */
|
||||
|
Reference in New Issue
Block a user