OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [gdb/] [mi/] [mi-cmd-file.c] - Blame information for rev 481

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
/* MI Command Set - breakpoint and watchpoint commands.
2
   Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
3
   Contributed by Cygnus Solutions (a Red Hat company).
4
 
5
   This file is part of GDB.
6
 
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
9
   the Free Software Foundation; either version 3 of the License, or
10
   (at your option) any later version.
11
 
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16
 
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/>.  */
19
 
20
#include "defs.h"
21
#include "mi-cmds.h"
22
#include "mi-getopt.h"
23
#include "ui-out.h"
24
#include "symtab.h"
25
#include "source.h"
26
#include "objfiles.h"
27
 
28
/* Return to the client the absolute path and line number of the
29
   current file being executed. */
30
 
31
enum mi_cmd_result
32
mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc)
33
{
34
  struct symtab_and_line st;
35
  int optind = 0;
36
  char *optarg;
37
 
38
  if (!mi_valid_noargs ("mi_cmd_file_list_exec_source_file", argc, argv))
39
    error (_("mi_cmd_file_list_exec_source_file: Usage: No args"));
40
 
41
  /* Set the default file and line, also get them */
42
  set_default_source_symtab_and_line ();
43
  st = get_current_source_symtab_and_line ();
44
 
45
  /* We should always get a symtab.
46
     Apparently, filename does not need to be tested for NULL.
47
     The documentation in symtab.h suggests it will always be correct */
48
  if (!st.symtab)
49
    error (_("mi_cmd_file_list_exec_source_file: No symtab"));
50
 
51
  /* Extract the fullname if it is not known yet */
52
  symtab_to_fullname (st.symtab);
53
 
54
  /* Print to the user the line, filename and fullname */
55
  ui_out_field_int (uiout, "line", st.line);
56
  ui_out_field_string (uiout, "file", st.symtab->filename);
57
 
58
  /* We may not be able to open the file (not available). */
59
  if (st.symtab->fullname)
60
  ui_out_field_string (uiout, "fullname", st.symtab->fullname);
61
 
62
  ui_out_field_int (uiout, "macro-info", st.symtab->macro_table ? 1 : 0);
63
 
64
  return MI_CMD_DONE;
65
}
66
 
67
enum mi_cmd_result
68
mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
69
{
70
  struct symtab *s;
71
  struct partial_symtab *ps;
72
  struct objfile *objfile;
73
 
74
  if (!mi_valid_noargs ("mi_cmd_file_list_exec_source_files", argc, argv))
75
    error (_("mi_cmd_file_list_exec_source_files: Usage: No args"));
76
 
77
  /* Print the table header */
78
  ui_out_begin (uiout, ui_out_type_list, "files");
79
 
80
  /* Look at all of the symtabs */
81
  ALL_SYMTABS (objfile, s)
82
  {
83
    ui_out_begin (uiout, ui_out_type_tuple, NULL);
84
 
85
    ui_out_field_string (uiout, "file", s->filename);
86
 
87
    /* Extract the fullname if it is not known yet */
88
    symtab_to_fullname (s);
89
 
90
    if (s->fullname)
91
      ui_out_field_string (uiout, "fullname", s->fullname);
92
 
93
    ui_out_end (uiout, ui_out_type_tuple);
94
  }
95
 
96
  /* Look at all of the psymtabs */
97
  ALL_PSYMTABS (objfile, ps)
98
  {
99
    if (!ps->readin)
100
      {
101
        ui_out_begin (uiout, ui_out_type_tuple, NULL);
102
 
103
        ui_out_field_string (uiout, "file", ps->filename);
104
 
105
        /* Extract the fullname if it is not known yet */
106
        psymtab_to_fullname (ps);
107
 
108
        if (ps->fullname)
109
          ui_out_field_string (uiout, "fullname", ps->fullname);
110
 
111
        ui_out_end (uiout, ui_out_type_tuple);
112
      }
113
  }
114
 
115
  ui_out_end (uiout, ui_out_type_list);
116
 
117
  return MI_CMD_DONE;
118
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.