summaryrefslogtreecommitdiff
path: root/gdb/stack.h
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2010-04-01 11:23:58 +0000
committerPedro Alves <pedro@codesourcery.com>2010-04-01 11:23:58 +0000
commitec8933b41740f5fb1bce773676556802d4fc6db2 (patch)
tree065813a9d24fe9c5afeb8e9589eb50463ac932c4 /gdb/stack.h
parent71c157d7d82a84ef3a99352cff70c21d764c607c (diff)
downloadgdb-ec8933b41740f5fb1bce773676556802d4fc6db2.tar.gz
gdb/
* 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.
Diffstat (limited to 'gdb/stack.h')
-rw-r--r--gdb/stack.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/stack.h b/gdb/stack.h
index 618783d9eae..5e874b4fd48 100644
--- a/gdb/stack.h
+++ b/gdb/stack.h
@@ -27,4 +27,16 @@ void select_frame_command (char *level_exp, int from_tty);
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 */