1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-30 02:27:38 +01:00
Commit graph

2509 commits

Author SHA1 Message Date
mostang.com!davidm
b6251b0f41 (unw_proc_info_t): Remove proc_name member and replace it with unw_get_proc_name().
The former didn't work because of memory management issues (there was no
	reasonable way to allocate/free the memory needed for the string).
	Shorten unwind_info_size from size_t to int.
(unw_accessors_t): Add new callbacks put_unwind_info() and get_dyn_info_list_addr().
(unw_create_addr_space): Take byte-order as second argument.
(unw_get_proc_name): New routine.
(unw_find_dynamic_proc_info): Remove (it's brother is in internal.h now).
(unw_flush_cache): Add missing declaration.
(unw_set_caching_policy): Ditto.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
4b3e3e5f9f (unw_local_addr_space): Initialize statically, so it's valid right away.
(put_unwind_info): New function.
(get_dyn_info_list_addr): Ditto.
(ia64_init): Initialize big_endian member in local_addr_space and
	put_unwind_info and get_dyn_info_list_addr callbacks in the
	accessor's structure.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
ef007fb585 (unw_local_addr_space): Initialize statically, so it's valid right away.
(put_unwind_info): New function.
(get_dyn_info_list_addr): Ditto.
(ia64_init): Initialize big_endian member in local_addr_space and
	put_unwind_info and get_dyn_info_list_addr callbacks in the
	accessor's structure.

2002/12/11 12:27:19-08:00 mostang.com!davidm
Rename: src/ia64/init.c -> src/ia64/Ginit.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
4e2f5c0fbf (unw_is_signal_frame): Use "is_signal_frame" instead of IA64_FLAG_SIGTRAMP flag bit.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
495a5a547f (unw_is_signal_frame): Use "is_signal_frame" instead of IA64_FLAG_SIGTRAMP flag bit.
2002/12/11 12:26:26-08:00 mostang.com!davidm
Rename: src/ia64/Lis_signal_frame.c -> src/ia64/Gis_signal_frame.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
68c95d3f64 (unw_get_proc_info): Call ia64_make_proc_info() to ensure that the proc_info is
valid.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
0a574c0936 (unw_get_proc_info): Call ia64_make_proc_info() to ensure that the proc_info is
valid.

2002/12/11 12:26:26-08:00 mostang.com!davidm
Rename: src/ia64/Lget_proc_info.c -> src/ia64/Gget_proc_info.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
35697758fd (unw_get_accessors): If libunwind hasn't been initialized yet, do so first to ensure
that the local accessors are valid.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
805bb72ed0 (unw_get_accessors): If libunwind hasn't been initialized yet, do so first to ensure
that the local accessors are valid.

2002/12/11 12:26:26-08:00 mostang.com!davidm
Rename: src/ia64/Lget_accessors.c -> src/ia64/Gget_accessors.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
8c72d1c277 (unw_create_addr_space): Support "byte_order" argument.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
02e59a8939 (unw_create_addr_space): Support "byte_order" argument.
2002/12/11 12:26:25-08:00 mostang.com!davidm
Rename: src/ia64/Lcreate_addr_space.c -> src/ia64/Gcreate_addr_space.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
57a6d3699d (script_finalize): Also initialize the proc_info.
(build_script): For signal-frames, generate an instruction that will set
	is_signal_frame to TRUE.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
8f82941a84 (script_finalize): Also initialize the proc_info.
(build_script): For signal-frames, generate an instruction that will set
	is_signal_frame to TRUE.

2002/12/11 12:27:36-08:00 mostang.com!davidm
Rename: src/ia64/script.c -> src/ia64/Gscript.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
eb1797b8da (main): Clear di to zero before filling in any values. Remove return-value checking
of _U_dyn_register() and _U_dyn_cancel().

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
13032ebce3 (local_find_proc_info): New function.
(remote_find_proc_info): Ditto.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
ea3b3225d8 (local_find_proc_info): New function.
(remote_find_proc_info): Ditto.

2002/12/11 18:56:18-08:00 mostang.com!davidm
Rename: src/ia64/Gfind_dynamic_proc_info.c -> src/Gfind_dynamic_proc_info.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
afd39636d6 (libunwind_la_SOURCES_common): Add get_proc_name.c, dyn-cancel.c, dyn-extract.c,
{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)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
dea15a73d0 (is_local_addr_space): New function.
(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)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
9420207ac6 (include_HEADERS_common): Mention libunwind-dynamic.h.
(EXTRA_DIST): Mention include/internal.h, include/tdep-ia64.h, and
	include/ia64/script.h.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
f96f12879c (get_proc_info): Take additional "need_unwind_info" argument and set pi_valid
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)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
8578dc1e6d (get_proc_info): Take additional "need_unwind_info" argument and set pi_valid
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)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
2e0505826f (common_init): Clear "is_signal_frame". Instead of calling ia64_make_proc_info(),
simply clear "pi_valid" flag.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
653c9006ac (Logical change 1.30) 2002-12-12 09:17:41 +00:00
mostang.com!davidm
991519dea7 Update API to support dynamically generated code. This is still work-in-progress and
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
2002-12-03 08:19:58 +00:00
mostang.com!davidm
dfc08eaef4 Rewrite to resemble something that actually might work.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
57f5fae02b Regenerate.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
3b836fed25 Mention automake-cache directory.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
b691bb1300 (Logical change 1.29) 2002-12-03 08:19:58 +00:00
mostang.com!davidm
612e33825c Initial revision 2002-12-03 08:19:58 +00:00
mostang.com!davidm
1b7547ec76 Add section title for dynamic unwind info (well, it's a start... ;-).
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
50d7a155ff Add include of <libunwind-dyamic.h>.
(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)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
4ea5c42eba Add LIBUNWIND__THREAD test.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
214827cae8 (update_frame_state): Do an early return if IP is zero (end of chain).
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
1c1b6a171f (unw_regname): Remove names for UNW_REG_PROC_START, UNW_REG_HANDLER, and
UNW_REG_LSDA.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
83f2952a86 (unw_get_save_loc): Remove handling of UNW_REG_PROC_START, UNW_REG_HANDLER,
and UNW_REG_LSDA.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
b1c1f146cc (struct unw_ia64_table): Delete.
(unw_sysdep_search_unwind_table): New macro.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
22c1128cf7 (struct ia64_table_entry): New type (moved from unwind_i.h).
(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)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
42fdeb430b (struct ia64_table_entry): New type (moved from unwind_i.h).
(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)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
d49825fd74 (struct ia64_script): Change type of "pi" member from struct ia64_proc_info to
unw_proc_info_t.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
c97d8cdab4 (struct ia64_proc_info): Delete.
(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)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
d48c437782 (noinst_PROGRAMS): Mention test-dyn1.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
58752cbc76 (libunwind_la_SOURCES_common): Mention dyn-common.h, dyn-local.c, and dyn-register.c.
(libunwind_la_SOURCES_ia64): Rename tables-glibc.c to tables.c.  Mention
	unw_find_dynamic_proc_info.c, unw_get_accessors, and local-only variants.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
75952fdf41 (ia64_local_resume): Adjust for new address-space argument.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
1170560e62 (ia64_access_reg): Remove handling of UNW_REG_PROC_START, UNW_REG_HANDLER, and
UNW_REG_LSDA.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
5ef3b80ed0 (get_script_cache): Flush cache only if the generation-numbers differ.
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
b8802b5c11 (finish_prologue): Iterate over "mask" only if it is non-zero.
(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)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
15eec54cc8 (do_backtrace): Replace reading of UNW_REG_PROC_START, UNW_REG_HANDLER, and
UNW_REG_LSDA with call to unw_get_proc_info().

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
3ab317eef5 (common_init): Adjust for rename of ia64_get_proc_info() to ia64_make_proc_info().
(Logical change 1.29)
2002-12-03 08:19:58 +00:00
mostang.com!davidm
cfae46ade6 (access_mem): Adjust for fact that address-space is now passed as first arg.
(access_reg): Ditto.
(access_fpreg): Ditto.
(ia64_init): Remove initializationof unw.unwind_table_pool.  Initialize accessors
	even for UNW_LOCAL_ONLY case.

(Logical change 1.29)
2002-12-03 08:19:58 +00:00
hp.com!davidm
d7e9f75df6 (Logical change 1.28) 2002-11-23 02:12:30 +00:00