1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-22 15:47:37 +01:00
Commit graph

295 commits

Author SHA1 Message Date
mostang.com!davidm
793c8a3005 Initial revision 2002-12-12 09:17:41 +00:00
mostang.com!davidm
86f8635442 Finish (almost) dynamic registration support. Summary of API changes:
- the proc_name member has been removed from unw_proc_info_t because it
	  caused memory-management issues
	- unw_get_proc_name(): new routine to look up the name of a procedure
	  (if available)
	- unw_create_addr_space() now takes an additional byte-order argument
	- new accessor callbacks:
		put_unwind_info() to release memory allocated by find_proc_info()
		get_dyn_info_list_addr() to lookup the address of the dynamic
			registration-list

BKrev: 3df85435qyOszxDiLfsgzfB4lSF6IA
2002-12-12 09:17:41 +00:00
mostang.com!davidm
d3147b1f2c Encode the address of _U_dyn_info_list in a special (no-op) unwind-table entry,
so that a remote-unwinder can find it.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
75c710131e Delete: src/dyn-common.h
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
83fca930d8 Compile only if UNW_REMOTE_ONLY is not defined.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
744b910408 Clarify comment on how when to use a pointer type and when to use unw_word_t.
(unw_dyn_info_format_t): New type.
(unw_dyn_op): Decrease "tag" from 16 to 8 bits, ditto for "qp" member.
(unw_dyn_proc_info): Change "name" pointer to "name_ptr" value (unw_word_t) and
	make padding explicit.
(unw_dyn_table_info): Change "name" pointer to "name_ptr" value.  Rename
	"table_size" to "table_len" and change type of table_data from
	void * to "unw_word_t *".
(unw_dyn_info): Switch to doubly-linked list so _U_dyn_cancel() can be O(1).
	Change type of "format" member from enum to int32_t.  Make padding explicit.
(unw_dyn_info_list): Make "generation" member 32 bits wide.  Add "version" member
	to enable future extensions to the dynamic info list.
(_U_dyn_register): Don't return anything (it can't fail).
(_U_dyn_cancel): Ditto.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
639ba64f8e Always create a symlink from target's libunwind.h to libunwind.h (it only gets
for the local case, of course).

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
c5307b2398 Adjust for big file-rename.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
924b1764b2 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_step.c -> src/ia64/Lstep.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
50cae0e222 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_set_reg.c -> src/ia64/Lset_reg.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
74bd7af8b5 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_set_fpreg.c -> src/ia64/Lset_fpreg.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
ef1547248f Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_set_caching_policy.c -> src/ia64/Lset_caching_policy.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
d7d8a16bc2 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_resume.c -> src/ia64/Lresume.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
56c38b5b4b Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_is_signal_frame.c -> src/ia64/Lis_signal_frame.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
55e48ef09c Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_init_remote.c -> src/ia64/Linit_remote.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
cb24b9e451 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_init_local.c -> src/ia64/Linit_local.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
2f64edbe65 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_get_save_loc.c -> src/ia64/Lget_save_loc.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
3af62b52aa Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_get_reg.c -> src/ia64/Lget_reg.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
1f0e55bdb5 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_get_proc_info.c -> src/ia64/Lget_proc_info.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
791bdf16c4 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_get_fpreg.c -> src/ia64/Lget_fpreg.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
1816abfa4e Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_get_accessors.c -> src/ia64/Lget_accessors.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
c326357cd6 Adjust for big file-rename.
2002/12/11 12:26:36-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_flush_cache.c -> src/ia64/Lflush_cache.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
910dc47cfc Adjust for big file-rename.
2002/12/11 12:26:35-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_destroy_addr_space.c -> src/ia64/Ldestroy_addr_space.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
2120d31863 Adjust for big file-rename.
2002/12/11 12:26:35-08:00 mostang.com!davidm
Rename: src/ia64/Lunw_create_addr_space.c -> src/ia64/Lcreate_addr_space.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
a3b3028874 Adjust for big file-rename.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
c23934ce5f Adjust for big file rename.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
d396b65116 Adjust for big file rename.
2002/12/11 18:56:22-08:00 mostang.com!davidm
Rename: src/ia64/Lfind_dynamic_proc_info.c -> src/Lfind_dynamic_proc_info.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
da4aeb0ed1 Adjust for IA64_FLAG_SIGTRAMP -> c->is_signal_frame change.
(update_frame_state): Clear is_signal_frame to zero near the end.  Clear
	pi_valid instead of calling ia64_make_proc_info().

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
c85fbb10f8 Adjust for IA64_FLAG_SIGTRAMP -> c->is_signal_frame change.
(update_frame_state): Clear is_signal_frame to zero near the end.  Clear
	pi_valid instead of calling ia64_make_proc_info().

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

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
217ad52ca9 Adjust for IA64_FLAG_BIG_ENDIAN -> as->big_endian change.
(ia64_access_regs): Call ia64_make_proc_info() to ensure c->pi.gp is valid before
	returning it.

}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
3919f4ffb6 Adjust for IA64_FLAG_BIG_ENDIAN -> as->big_endian change.
(ia64_access_regs): Call ia64_make_proc_info() to ensure c->pi.gp is valid before
	returning it.

2002/12/11 12:27:31-08:00 mostang.com!davidm
Rename: src/ia64/regs.c -> src/ia64/Gregs.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
d3da356368 Add copyright header and forward-declration of ia64_cursor.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
01e35a5d93 Add copyright header and forward-declration of ia64_cursor.
2002/12/05 15:32:45-08:00 mostang.com!davidm
Rename: src/ia64/script.h -> include/ia64/script.h

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
b29266f262 (unw_sysdep_search_unwind_table): Remove.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
a84826659d (unw_resume): Call ia64_make_proc_info() to ensure c->is_signal_frame is valid.
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
ea24716375 (unw_resume): Call ia64_make_proc_info() to ensure c->is_signal_frame is valid.
2002/12/11 12:26:26-08:00 mostang.com!davidm
Rename: src/ia64/Lresume.c -> src/ia64/Gresume.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
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