31#include "gdbsupport/gdb_regex.h"
43 error (_(
"-file-list-exec-source-file: Usage: No args"));
53 error (_(
"-file-list-exec-source-file: No symtab"));
76 static const struct mi_opt opts[] =
78 {
"-group-by-objfile", GROUP_BY_OBJFILE_OPT, 0},
79 {
"-basename", MATCH_BASENAME_OPT, 0},
80 {
"-dirname", MATCH_DIRNAME_OPT, 0},
88 bool group_by_objfile =
false;
89 bool match_on_basename =
false;
90 bool match_on_dirname =
false;
94 int opt =
mi_getopt (
"-file-list-exec-source-files", argc, argv,
98 switch ((
enum opt) opt)
100 case GROUP_BY_OBJFILE_OPT:
101 group_by_objfile =
true;
103 case MATCH_BASENAME_OPT:
104 match_on_basename =
true;
106 case MATCH_DIRNAME_OPT:
107 match_on_dirname =
true;
112 if ((argc - oind > 1) || (match_on_basename && match_on_dirname))
113 error (_(
"-file-list-exec-source-files: Usage: [--group-by-objfile] [--basename | --dirname] [--] REGEXP"));
115 const char *regexp =
nullptr;
116 if (argc - oind == 1)
120 if (match_on_dirname)
122 else if (match_on_basename)
148 error (_(
"Usage: -file-list-shared-libraries [REGEXP]"));
153 const char *re_err =
re_comp (pattern);
156 error (_(
"Invalid regexp: %s"), re_err);
166 if (so->so_name[0] ==
'\0')
168 if (pattern != NULL && !re_exec (so->so_name))
void field_string(const char *fldname, const char *string, const ui_file_style &style=ui_file_style())
void field_signed(const char *fldname, LONGEST value)
EXTERN_C char * re_comp(const char *)
mi_cmd_argv_ftype mi_cmd_file_list_exec_source_files
mi_cmd_argv_ftype mi_cmd_file_list_shared_libraries
mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file
int mi_valid_noargs(const char *prefix, int argc, char **argv)
int mi_getopt(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
void mi_output_solib_attribs(ui_out *uiout, struct so_list *solib)
struct program_space * current_program_space
void update_solib_list(int from_tty)
const char * symtab_to_fullname(struct symtab *s)
const char * symtab_to_filename_for_display(struct symtab *symtab)
struct symtab_and_line get_current_source_symtab_and_line(void)
void set_default_source_symtab_and_line(void)
struct macro_table * macro_table() const
so_list_range solibs() const
struct compunit_symtab * compunit() const
void info_sources_worker(struct ui_out *uiout, bool group_by_objfile, const info_sources_filter &filter)