2c58c0a9a5
* tracepoint.c: Include stack.h. (struct add_local_symbols_data): New. (do_collect_symbol): New. (add_local_symbols): Rewrite using iterate_over_block_arg_vars and iterate_over_block_local_vars. * stack.c (print_block_frame_locals): Rewrite as ... (iterate_over_block_locals): ... this. Take a callback function pointer and generic data pointer, and call that instead of print_variable_and_value. (struct print_variable_and_value_data): New. (do_print_variable_and_value): New. (iterate_over_block_local_vars): New, abstracted out from print_frame_local_vars. (print_frame_local_vars): Rewrite using iterate_over_block_local_vars. (iterate_over_block_arg_vars): New, abstracted out from print_frame_arg_vars. (print_frame_arg_vars): Rewrite using iterate_over_block_arg_vars. * stack.h (iterate_over_block_arg_local_vars_cb): New typedef. (iterate_over_block_arg_vars, iterate_over_block_local_vars): Declare. gdb/testsuite/ * gdb.trace/collection.c (local_test_func): Define a local struct, and instanciate it.
42 lines
1.5 KiB
C
42 lines
1.5 KiB
C
/* Stack manipulation commands, for GDB the GNU Debugger.
|
|
|
|
Copyright (C) 2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef STACK_H
|
|
#define STACK_H
|
|
|
|
void select_frame_command (char *level_exp, int from_tty);
|
|
|
|
/* Attempt to obtain the FUNNAME and FUNLANG of the function corresponding
|
|
to FRAME. */
|
|
void find_frame_funname (struct frame_info *frame, char **funname,
|
|
enum language *funlang);
|
|
|
|
typedef void (*iterate_over_block_arg_local_vars_cb) (const char *symbol_print_name,
|
|
struct symbol *sym,
|
|
void *cb_data);
|
|
|
|
void iterate_over_block_arg_vars (struct block *block,
|
|
iterate_over_block_arg_local_vars_cb cb,
|
|
void *cb_data);
|
|
|
|
void iterate_over_block_local_vars (struct block *block,
|
|
iterate_over_block_arg_local_vars_cb cb,
|
|
void *cb_data);
|
|
|
|
#endif /* #ifndef STACK_H */
|