X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fmi%2Fmi-cmd-file.c;h=cf1faa5d88633bc45e2301e34591d7fbead0c14f;hb=112e8700a6fd2fed65ca70132c9cbed4132e8bd4;hp=5542eaa8f7ad1db4ae94c9ece412174e5ba0e8ba;hpb=a1b7d1984a2ab493678efa1fa5c4cff683e61a71;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/mi/mi-cmd-file.c b/gdb/mi/mi-cmd-file.c index 5542eaa8f7..cf1faa5d88 100644 --- a/gdb/mi/mi-cmd-file.c +++ b/gdb/mi/mi-cmd-file.c @@ -1,6 +1,5 @@ -/* MI Command Set - breakpoint and watchpoint commands. - Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. +/* MI Command Set - file commands. + Copyright (C) 2000-2016 Free Software Foundation, Inc. Contributed by Cygnus Solutions (a Red Hat company). This file is part of GDB. @@ -28,84 +27,82 @@ #include "psymtab.h" /* Return to the client the absolute path and line number of the - current file being executed. */ + current file being executed. */ void mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc) { struct symtab_and_line st; + struct ui_out *uiout = current_uiout; - if (!mi_valid_noargs ("mi_cmd_file_list_exec_source_file", argc, argv)) - error (_("mi_cmd_file_list_exec_source_file: Usage: No args")); + if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv)) + error (_("-file-list-exec-source-file: Usage: No args")); - /* Set the default file and line, also get them */ + /* Set the default file and line, also get them. */ set_default_source_symtab_and_line (); st = get_current_source_symtab_and_line (); - /* We should always get a symtab. - Apparently, filename does not need to be tested for NULL. - The documentation in symtab.h suggests it will always be correct */ + /* We should always get a symtab. Apparently, filename does not + need to be tested for NULL. The documentation in symtab.h + suggests it will always be correct. */ if (!st.symtab) - error (_("mi_cmd_file_list_exec_source_file: No symtab")); + error (_("-file-list-exec-source-file: No symtab")); - /* Extract the fullname if it is not known yet */ - symtab_to_fullname (st.symtab); + /* Print to the user the line, filename and fullname. */ + uiout->field_int ("line", st.line); + uiout->field_string ("file", symtab_to_filename_for_display (st.symtab)); - /* Print to the user the line, filename and fullname */ - ui_out_field_int (uiout, "line", st.line); - ui_out_field_string (uiout, "file", st.symtab->filename); + uiout->field_string ("fullname", symtab_to_fullname (st.symtab)); - /* We may not be able to open the file (not available). */ - if (st.symtab->fullname) - ui_out_field_string (uiout, "fullname", st.symtab->fullname); - - ui_out_field_int (uiout, "macro-info", st.symtab->macro_table ? 1 : 0); + uiout->field_int ("macro-info", + COMPUNIT_MACRO_TABLE (SYMTAB_COMPUNIT (st.symtab)) != NULL); } /* A callback for map_partial_symbol_filenames. */ + static void print_partial_file_name (const char *filename, const char *fullname, void *ignore) { - ui_out_begin (uiout, ui_out_type_tuple, NULL); + struct ui_out *uiout = current_uiout; + + uiout->begin (ui_out_type_tuple, NULL); - ui_out_field_string (uiout, "file", filename); + uiout->field_string ("file", filename); if (fullname) - ui_out_field_string (uiout, "fullname", fullname); + uiout->field_string ("fullname", fullname); - ui_out_end (uiout, ui_out_type_tuple); + uiout->end (ui_out_type_tuple); } void mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc) { + struct ui_out *uiout = current_uiout; + struct compunit_symtab *cu; struct symtab *s; 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")); + if (!mi_valid_noargs ("-file-list-exec-source-files", argc, argv)) + error (_("-file-list-exec-source-files: Usage: No args")); - /* Print the table header */ - ui_out_begin (uiout, ui_out_type_list, "files"); + /* Print the table header. */ + uiout->begin (ui_out_type_list, "files"); - /* Look at all of the symtabs */ - ALL_SYMTABS (objfile, s) + /* Look at all of the file symtabs. */ + ALL_FILETABS (objfile, cu, s) { - ui_out_begin (uiout, ui_out_type_tuple, NULL); - - ui_out_field_string (uiout, "file", s->filename); - - /* Extract the fullname if it is not known yet */ - symtab_to_fullname (s); + uiout->begin (ui_out_type_tuple, NULL); - if (s->fullname) - ui_out_field_string (uiout, "fullname", s->fullname); + uiout->field_string ("file", symtab_to_filename_for_display (s)); + uiout->field_string ("fullname", symtab_to_fullname (s)); - ui_out_end (uiout, ui_out_type_tuple); + uiout->end (ui_out_type_tuple); } - map_partial_symbol_filenames (print_partial_file_name, NULL); + map_symbol_filenames (print_partial_file_name, NULL, + 1 /*need_fullname*/); - ui_out_end (uiout, ui_out_type_list); + uiout->end (ui_out_type_list); }