1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-05 04:27:37 +01:00
Commit graph

2484 commits

Author SHA1 Message Date
mostang.com!davidm
99b6fe2870 Add minimal x86 unwind support. The code is good enough to pass tests/bt, but
not much else.  It can only unwind through functions with a frame-pointer (i.e.,
it does not use DWARF2 unwind info yet).

BKrev: 3e017262rBxRgRARXf-6VxhaVepPsA
2002-12-19 07:16:50 +00:00
mostang.com!davidm
dfa2c41cdf (unw_destroy_addr_space): Make it a no-op for UNW_LOCAL_ONLY.
2002/12/18 15:52:23-08:00 mostang.com!davidm
Rename: src/ia64/Gdestroy_addr_space.c -> src/ia64/Gdestroy_addr_space-ia64.c

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
4f5950ae7b (unw): Move to global-ia64.c.
(tdep_uc_addr): "Rename" from _Uia64_uc_addr().
(_U_dyn_info_list): Move to global-ia64.c.
(ia64_init): Move to global-ia64.c.
(ia64_local_addr_space_init): New function.

}(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
89c97f37ee (unw): Move to global-ia64.c.
(tdep_uc_addr): "Rename" from _Uia64_uc_addr().
(_U_dyn_info_list): Move to global-ia64.c.
(ia64_init): Move to global-ia64.c.
(ia64_local_addr_space_init): New function.

2002/12/18 15:52:23-08:00 mostang.com!davidm
Rename: src/ia64/Ginit.c -> src/ia64/Ginit-ia64.c

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
db59d4f98f (struct cursor): Rename from "struct ia64_cursor".
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
3ae9b81f52 (libunwind_la_SOURCES_common): Drop dyn-local.c, mention mi-init.c, mempool.c.
(libunwind_la_SOURCES_x86): Add.

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
20a6c1adf1 (get_accessors): Make it an arch-obj.
(flush_cache): Ditto.
(set_caching_policy): Ditto.
(regname): Ditto.

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
93daa3b08d (UNW_TARGET_IA64): Define.
(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
bf070a994a (UNW_DEBUG): Move here from ia64/unwind_i.h
(debug): Ditto.
(dprintf): Ditto.
(inline): Ditto.
(mi_init): Declare.

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
a85267d16b (Logical change 1.32) 2002-12-19 07:16:50 +00:00
mostang.com!davidm
68f77774e6 Move declration of _U_dyn_info_list to src/ia64/Ginit.c so each platform can do its
own magic.  Define _Uia64_find_dyn_list() as a helper routine for implementing
the get_dyn_info_list_addr().

BKrev: 3e000530-YiHvkTR7eXFehxli5T5jA
2002-12-18 05:18:40 +00:00
mostang.com!davidm
3ec98c2032 Delete: src/dyn-local.c
}(Logical change 1.31)
2002-12-18 05:18:40 +00:00
mostang.com!davidm
4bbf588c89 (_Uia64_find_dyn_list): New ia64-specific helper routine to locate the dynamic-info
list address in an unwind-table.

(Logical change 1.31)
2002-12-18 05:18:40 +00:00
mostang.com!davidm
1c8ee38936 (_Uia64_find_dyn_list): Declare and document this ia64-specific helper routine.
(Logical change 1.31)
2002-12-18 05:18:40 +00:00
mostang.com!davidm
3df8a3ce23 (_U_dyn_info_list): Move declaration to here from src/dyn-local.c.
(unwind-table entry for _U_dyn_info_list): Ditto (it's ia64-specific, so it can't
	be in src/dyn-local.c).

(Logical change 1.31)
2002-12-18 05:18:40 +00:00
mostang.com!davidm
39b1d3a61f Use unw_get_proc_name() to obtain procedure name (if available).
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
3076501b06 Rename: src/ia64/Lset_reg.c -> src/ia64/Gset_reg.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
bae8873816 Rename: src/ia64/Lset_reg.c -> src/ia64/Gset_reg.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
bc62754a1a Rename: src/ia64/Lset_fpreg.c -> src/ia64/Gset_fpreg.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
a2375f43ed Rename: src/ia64/Lset_fpreg.c -> src/ia64/Gset_fpreg.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
94a6c8ca03 Rename: src/ia64/Lset_caching_policy.c -> src/ia64/Gset_caching_policy.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
8c8717dda7 Rename: src/ia64/Lset_caching_policy.c -> src/ia64/Gset_caching_policy.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
f176e2eb2a Rename: src/ia64/Linit_remote.c -> src/ia64/Ginit_remote.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
8f0b7818e7 Rename: src/ia64/Linit_remote.c -> src/ia64/Ginit_remote.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
e8e1af0a88 Rename: src/ia64/Linit_local.c -> src/ia64/Ginit_local.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
064904ebce Rename: src/ia64/Linit_local.c -> src/ia64/Ginit_local.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
638d2f9eb3 Rename: src/ia64/Lget_save_loc.c -> src/ia64/Gget_save_loc.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
1381978b0e Rename: src/ia64/Lget_save_loc.c -> src/ia64/Gget_save_loc.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
4a23fc2d5e Rename: src/ia64/Lget_reg.c -> src/ia64/Gget_reg.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
86107764e3 Rename: src/ia64/Lget_reg.c -> src/ia64/Gget_reg.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
ea6147c870 Rename: src/ia64/Lget_fpreg.c -> src/ia64/Gget_fpreg.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
b39ffb00e9 Rename: src/ia64/Lget_fpreg.c -> src/ia64/Gget_fpreg.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
d0e344024c Rename: src/ia64/Lflush_cache.c -> src/ia64/Gflush_cache.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
7e60eb19b6 Rename: src/ia64/Lflush_cache.c -> src/ia64/Gflush_cache.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
96eeae58bd Rename: src/ia64/Ldestroy_addr_space.c -> src/ia64/Gdestroy_addr_space.c
}(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
01f9b269b2 Rename: src/ia64/Ldestroy_addr_space.c -> src/ia64/Gdestroy_addr_space.c
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
51e4d34075 Regenerate.
(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
78306c6f14 Move pthread-locking stuff to "internal.h".
(_U_dyn_info_list_lock): Rename from "registration_lock" and change from r/w-lock
	to a simple mutex (spin) lock.
(_U_dyn_register): Insert into doubly-linked list.

(Logical change 1.30)
2002-12-12 09:17:41 +00:00
mostang.com!davidm
12f30d6481 Move enum ia64_pregnum and struct unw_addr_space to tdep-ia64.h.
(IA64_FLAG_SIGTRAMP): Replace with is_signal_frame member.
(IA64_FLAG_BIG_ENDIAN): Replace with per-address space big_endian flag.
(struct ia64_cursor): Add pi_valid and pi_is_dynamic members.
(ia64_find_proc_info): Add "need_unwind_info" argument.
(ia64_put_unwind_info): New macro.

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