1 /* MI Command Set - symbol commands.
2 Copyright (C) 2003, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc.
5 This file is part of GDB.
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.
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.
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/>. */
28 Print the list of all pc addresses and lines of code for
29 the provided (full or base) source file name. The entries
30 are sorted in ascending PC order. */
33 mi_cmd_symbol_list_lines (char *command
, char **argv
, int argc
)
35 struct gdbarch
*gdbarch
;
39 struct cleanup
*cleanup_stack
, *cleanup_tuple
;
40 struct ui_out
*uiout
= current_uiout
;
43 error (_("-symbol-list-lines: Usage: SOURCE_FILENAME"));
46 s
= lookup_symtab (filename
);
49 error (_("-symbol-list-lines: Unknown source file name."));
51 /* Now, dump the associated line table. The pc addresses are already
52 sorted by increasing values in the symbol table, so no need to
53 perform any other sorting. */
55 gdbarch
= get_objfile_arch (s
->objfile
);
56 cleanup_stack
= make_cleanup_ui_out_list_begin_end (uiout
, "lines");
58 if (LINETABLE (s
) != NULL
&& LINETABLE (s
)->nitems
> 0)
59 for (i
= 0; i
< LINETABLE (s
)->nitems
; i
++)
61 cleanup_tuple
= make_cleanup_ui_out_tuple_begin_end (uiout
, NULL
);
62 ui_out_field_core_addr (uiout
, "pc", gdbarch
, LINETABLE (s
)->item
[i
].pc
);
63 ui_out_field_int (uiout
, "line", LINETABLE (s
)->item
[i
].line
);
64 do_cleanups (cleanup_tuple
);
67 do_cleanups (cleanup_stack
);
This page took 0.031079 seconds and 4 git commands to generate.