#include "defs.h"
#include "mi-cmds.h"
#include "mi-getopt.h"
#include "ui-out.h"
#include "symtab.h"
#include "source.h"
#include "objfiles.h"
enum mi_cmd_result
mi_cmd_file_core_file(char *command, char **argv, int argc)
{
if (argc != 1)
error ("mi_cmd_file_core_file: Usage corefile");
core_file_attach (argv[0], 0);
return MI_CMD_DONE;
}
enum mi_cmd_result
mi_cmd_file_list_exec_source_file(char *command, char **argv, int argc)
{
struct symtab_and_line st;
int optind = 0;
char *optarg;
if ( !mi_valid_noargs("mi_cmd_file_list_exec_source_file", argc, argv) )
error (_("mi_cmd_file_list_exec_source_file: Usage: No args"));
set_default_source_symtab_and_line();
st = get_current_source_symtab_and_line();
if (!st.symtab)
error (_("mi_cmd_file_list_exec_source_file: No symtab"));
if (st.symtab->fullname == NULL)
symtab_to_fullname (st.symtab);
if (st.symtab->fullname == NULL)
error ("mi_cmd_file_list_exec_source_file: File not found");
ui_out_field_int (uiout, "line", st.line);
ui_out_field_string (uiout, "file", st.symtab->filename);
if (st.symtab->fullname)
ui_out_field_string (uiout, "fullname", st.symtab->fullname);
return MI_CMD_DONE;
}
enum mi_cmd_result
mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
{
struct symtab *s;
struct partial_symtab *ps;
struct objfile *objfile;
if (!mi_valid_noargs ("mi_cmd_file_list_exec_source_files", argc, argv))
error (_("mi_cmd_file_list_exec_source_files: Usage: No args"));
ui_out_begin (uiout, ui_out_type_list, "files");
ALL_SYMTABS (objfile, s)
{
ui_out_begin (uiout, ui_out_type_tuple, NULL);
ui_out_field_string (uiout, "file", s->filename);
symtab_to_fullname (s);
if (s->fullname)
ui_out_field_string (uiout, "fullname", s->fullname);
ui_out_end (uiout, ui_out_type_tuple);
}
ALL_PSYMTABS (objfile, ps)
{
if (!ps->readin)
{
ui_out_begin (uiout, ui_out_type_tuple, NULL);
ui_out_field_string (uiout, "file", ps->filename);
psymtab_to_fullname (ps);
if (ps->fullname)
ui_out_field_string (uiout, "fullname", ps->fullname);
ui_out_end (uiout, ui_out_type_tuple);
}
}
ui_out_end (uiout, ui_out_type_list);
return MI_CMD_DONE;
}