Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: gdb/mi/mi-cmd-file.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/mi/mi-cmd-env.c ('k') | gdb/mi/mi-cmd-info.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* MI Command Set - breakpoint and watchpoint commands. 1 /* MI Command Set - file commands.
2 Copyright (C) 2000-2002, 2007-2012 Free Software Foundation, Inc. 2 Copyright (C) 2000-2002, 2007-2012 Free Software Foundation, Inc.
3 Contributed by Cygnus Solutions (a Red Hat company). 3 Contributed by Cygnus Solutions (a Red Hat company).
4 4
5 This file is part of GDB. 5 This file is part of GDB.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 #include "defs.h" 20 #include "defs.h"
21 #include "mi-cmds.h" 21 #include "mi-cmds.h"
22 #include "mi-getopt.h" 22 #include "mi-getopt.h"
23 #include "ui-out.h" 23 #include "ui-out.h"
24 #include "symtab.h" 24 #include "symtab.h"
25 #include "source.h" 25 #include "source.h"
26 #include "objfiles.h" 26 #include "objfiles.h"
27 #include "psymtab.h" 27 #include "psymtab.h"
28 28
29 /* Return to the client the absolute path and line number of the 29 /* Return to the client the absolute path and line number of the
30 current file being executed. */ 30 current file being executed. */
31 31
32 void 32 void
33 mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc) 33 mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc)
34 { 34 {
35 struct symtab_and_line st; 35 struct symtab_and_line st;
36 struct ui_out *uiout = current_uiout; 36 struct ui_out *uiout = current_uiout;
37 37
38 if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv)) 38 if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv))
39 error (_("-file-list-exec-source-file: Usage: No args")); 39 error (_("-file-list-exec-source-file: Usage: No args"));
40 40
41 /* Set the default file and line, also get them */ 41 /* Set the default file and line, also get them. */
42 set_default_source_symtab_and_line (); 42 set_default_source_symtab_and_line ();
43 st = get_current_source_symtab_and_line (); 43 st = get_current_source_symtab_and_line ();
44 44
45 /* We should always get a symtab. 45 /* We should always get a symtab. Apparently, filename does not
46 Apparently, filename does not need to be tested for NULL. 46 need to be tested for NULL. The documentation in symtab.h
47 The documentation in symtab.h suggests it will always be correct */ 47 suggests it will always be correct. */
48 if (!st.symtab) 48 if (!st.symtab)
49 error (_("-file-list-exec-source-file: No symtab")); 49 error (_("-file-list-exec-source-file: No symtab"));
50 50
51 /* Extract the fullname if it is not known yet */ 51 /* Extract the fullname if it is not known yet. */
52 symtab_to_fullname (st.symtab); 52 symtab_to_fullname (st.symtab);
53 53
54 /* Print to the user the line, filename and fullname */ 54 /* Print to the user the line, filename and fullname. */
55 ui_out_field_int (uiout, "line", st.line); 55 ui_out_field_int (uiout, "line", st.line);
56 ui_out_field_string (uiout, "file", st.symtab->filename); 56 ui_out_field_string (uiout, "file", st.symtab->filename);
57 57
58 /* We may not be able to open the file (not available). */ 58 /* We may not be able to open the file (not available). */
59 if (st.symtab->fullname) 59 if (st.symtab->fullname)
60 ui_out_field_string (uiout, "fullname", st.symtab->fullname); 60 ui_out_field_string (uiout, "fullname", st.symtab->fullname);
61 61
62 ui_out_field_int (uiout, "macro-info", st.symtab->macro_table ? 1 : 0); 62 ui_out_field_int (uiout, "macro-info", st.symtab->macro_table ? 1 : 0);
63 } 63 }
64 64
65 /* A callback for map_partial_symbol_filenames. */ 65 /* A callback for map_partial_symbol_filenames. */
66
66 static void 67 static void
67 print_partial_file_name (const char *filename, const char *fullname, 68 print_partial_file_name (const char *filename, const char *fullname,
68 void *ignore) 69 void *ignore)
69 { 70 {
70 struct ui_out *uiout = current_uiout; 71 struct ui_out *uiout = current_uiout;
71 72
72 ui_out_begin (uiout, ui_out_type_tuple, NULL); 73 ui_out_begin (uiout, ui_out_type_tuple, NULL);
73 74
74 ui_out_field_string (uiout, "file", filename); 75 ui_out_field_string (uiout, "file", filename);
75 76
76 if (fullname) 77 if (fullname)
77 ui_out_field_string (uiout, "fullname", fullname); 78 ui_out_field_string (uiout, "fullname", fullname);
78 79
79 ui_out_end (uiout, ui_out_type_tuple); 80 ui_out_end (uiout, ui_out_type_tuple);
80 } 81 }
81 82
82 void 83 void
83 mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc) 84 mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
84 { 85 {
85 struct ui_out *uiout = current_uiout; 86 struct ui_out *uiout = current_uiout;
86 struct symtab *s; 87 struct symtab *s;
87 struct objfile *objfile; 88 struct objfile *objfile;
88 89
89 if (!mi_valid_noargs ("-file-list-exec-source-files", argc, argv)) 90 if (!mi_valid_noargs ("-file-list-exec-source-files", argc, argv))
90 error (_("-file-list-exec-source-files: Usage: No args")); 91 error (_("-file-list-exec-source-files: Usage: No args"));
91 92
92 /* Print the table header */ 93 /* Print the table header. */
93 ui_out_begin (uiout, ui_out_type_list, "files"); 94 ui_out_begin (uiout, ui_out_type_list, "files");
94 95
95 /* Look at all of the symtabs */ 96 /* Look at all of the symtabs. */
96 ALL_SYMTABS (objfile, s) 97 ALL_SYMTABS (objfile, s)
97 { 98 {
98 ui_out_begin (uiout, ui_out_type_tuple, NULL); 99 ui_out_begin (uiout, ui_out_type_tuple, NULL);
99 100
100 ui_out_field_string (uiout, "file", s->filename); 101 ui_out_field_string (uiout, "file", s->filename);
101 102
102 /* Extract the fullname if it is not known yet */ 103 /* Extract the fullname if it is not known yet. */
103 symtab_to_fullname (s); 104 symtab_to_fullname (s);
104 105
105 if (s->fullname) 106 if (s->fullname)
106 ui_out_field_string (uiout, "fullname", s->fullname); 107 ui_out_field_string (uiout, "fullname", s->fullname);
107 108
108 ui_out_end (uiout, ui_out_type_tuple); 109 ui_out_end (uiout, ui_out_type_tuple);
109 } 110 }
110 111
111 map_partial_symbol_filenames (print_partial_file_name, NULL, 112 map_partial_symbol_filenames (print_partial_file_name, NULL,
112 1 /*need_fullname*/); 113 1 /*need_fullname*/);
113 114
114 ui_out_end (uiout, ui_out_type_list); 115 ui_out_end (uiout, ui_out_type_list);
115 } 116 }
OLDNEW
« no previous file with comments | « gdb/mi/mi-cmd-env.c ('k') | gdb/mi/mi-cmd-info.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698