{G,L}find_dynamic_proc_info, and {G,L}put_dynamic_unwind_info.
(libunwind_la_SOURCES): Rename generic files that get compiled twice from
unw_foo to Gfoo. Similarly, rename local-only files from Lunw_foo
to Lfoo.
(Logical change 1.30)
(tdep_search_unwind_table): Rename from _Uia64_search_unwind_table() and declare as
HIDDEN. Allocate (if needed) and fill in unwind_info only if requested.
(tdep_put_unwind_info): New function.
(_Uia64_find_proc_info): Add "need_unwind_info" argument and declare as HIDDEN.
(Logical change 1.30)
and pi_is_dynamic flags in the cursor structure.
(put_unwind_info): New function.
(create_state_record_for): Release unwind-info via a call to put_unwind_info() after
we're done parsing it.
}(Logical change 1.30)
and pi_is_dynamic flags in the cursor structure.
(put_unwind_info): New function.
(create_state_record_for): Release unwind-info via a call to put_unwind_info() after
we're done parsing it.
2002/12/11 12:27:25-08:00 mostang.com!davidm
Rename: src/ia64/parser.c -> src/ia64/Gparser.c
(Logical change 1.30)
rough on the edges, but at least one test-program that uses dynamic code-generation
is working now (see tests/test-dyn1.c).
BKrev: 3dec692emetvXbc3o2rQICS8CjrGTw
(UNW_ARCH_OBJ): New macro.
(unw_proc_info_t): New type.
(unw_accessors): Replace acquire_unwind_info and release_unwind_info callbacks
with find_proc_info callback. Change remaining prototypes to take
address-space pointer as the first argument.
(unw_get_accessors): New routine.
(unw_get_proc_info): New routine.
(unw_regname): Make it an UNW_ARCH_OBJ.
(unw_find_dynamic_proc_info): New routine.
(Logical change 1.29)
(lookup): New function (moved from parser.c).
(_Uia64_search_unwind_table): New function (based on code in parser.c).
(kernel_table): New variable.
(get_kernel_table): Relocate the kernel table's "info_offset" values as we
count it. Adjust for new callback-interface.
(callback): Adjust for new interface.
(_Uia64_find_proc_info): Rename from _Uia64_glibc_acquire_unwind_info).
}(Logical change 1.29)
(lookup): New function (moved from parser.c).
(_Uia64_search_unwind_table): New function (based on code in parser.c).
(kernel_table): New variable.
(get_kernel_table): Relocate the kernel table's "info_offset" values as we
count it. Adjust for new callback-interface.
(callback): Adjust for new interface.
(_Uia64_find_proc_info): Rename from _Uia64_glibc_acquire_unwind_info).
2002/11/27 16:44:37-08:00 mostang.com!davidm
Rename: src/ia64/tables-glibc.c -> src/ia64/tables.c
(Logical change 1.29)
(struct ia64_cursor): Change type of "pi" member from struct ia64_proc_info to
unw_proc_info_t.
(struct unw_addr_space): Declare "acc" member even for UNW_LOCAL_ONLY case.
(ia64_acquire_unwind_info): Delete
(ia64_relesae_unwind_info): Ditto.
(ia64_find_proc_info): New routine.
(struct ia64_unwind_table_entry): Delete.
(struct ia64_unwind_talbe): Ditto.
(struct ia64_global_unwind_state): Remove "unwind_table_pool" member.
(ia64_get_proc_info): Rename to ia64_make_proc_info().
(Logical change 1.29)
(lookup_preg): New function.
(parse_dynamic): Ditto.
(get_proc_info): Take explicit IP argument.
(create_state_record_for): New function, containing most of the code originally
in ia64_create_state_record(). Don't forget to initialize
sr->first_region. Check c->pi.format and parse unwind descriptors or
dynamically registered unwind info accordingly.
(ia64_get_proc_info): Adjust for extra argument expected by get_proc_info().
(ia64_create_state_record): Do interesting work by calling create_state_record_for().
(Logical change 1.29)
of multiple address spaces (as might arise for a multi-process debugger, for example).
Impace on existing libunwind users should be minimal:
unw_init_remote(cursor, accessors);
needs to be changed to:
as = unw_create_addr_space(accessors);
if (!as)
error;
else
unw_init_remote(cursor, as, as_arg);
where "as_arg" is the argument ("arg") that used to be stored
in the accessors structure. Everything else is the same.
BKrev: 3dd5ea9cOx-Y3gnNoajvFfm4KaPCww
(unw_addr_space_t): New type.
(unw_accessors_t): Remove "arg" member.
(unw_local_addr_space): New variable.
(unw_create_addr_space): New function.
(unw_destroy_addr_space): Ditto.
(unw_init_remote): Take address-space and accessor-argument pointer instead of
accessor structure as argument.
(unw_set_caching_policy): Take address-space as first argument.
(unw_flush_cache): Take address space and address-range (lo & hi) arguments.
(Logical change 1.27)