procfs.c: iterate_over_mappings callback has wrong profile.
authorJoel Brobecker <brobecker@gnat.com>
Tue, 20 Apr 2010 22:35:58 +0000 (22:35 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 20 Apr 2010 22:35:58 +0000 (22:35 +0000)
commite9ef4f394d34b122da58a2706deb7e5f4f131a5b
tree2d9382fb94e77d0f30dfda5938ba0c890230f33b
parente294797a886401059bdfbc51228390b40cebe4d5
procfs.c: iterate_over_mappings callback has wrong profile.

The function proc_find_memory_regions calls iterate_over_mappings as
follow:

> return iterate_over_mappings (pi, func, data,
>                               find_memory_regions_callback);

The problem is that both func and find_memory_regions_callback
do not match the profile expected by iterate_over_mappings:

> iterate_over_mappings (procinfo *pi, int (*child_func) (), void *data,
>                        int (*func) (struct prmap *map,
>                                     int (*child_func) (),
>                                     void *data))

We cannot change proc_find_memory_regions such that FUNC is a pointer
to a function that takes no argument (in place of the 6 that it has).
This is because proc_find_memory_regions is used as a target_ops method.
However, it turns out that changing iterate_over_mappings to conform
to the profile imposed by the target_ops vector is possible without
much effort.

gdb/ChangeLog:

        * procfs.c (iterate_over_mappings_cb_ftype): New typedef.
        (iterate_over_mappings): Adjust function profile. Add declaration.
        (insert_dbx_link_bpt_in_region, info_mappings_callback):
        Adjust accordingly.
gdb/ChangeLog
gdb/procfs.c