1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-07-07 15:45:36 +02:00
Commit graph

443 commits

Author SHA1 Message Date
mostang.com!davidm cb2620b0fd (_UPT_accessors): Initialize get_proc_name callback.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
hp.com!davidm bd93c64f01 (update_frame_state): Update the IP-cache before doing anything else.
If we reached the en of the frame-chain, then the remaining
	registers may not be valid/accessible anymore.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 1fc6f4e6b3 (unwi_dyn_remote_find_proc_info): If anything goes wrong, return -UNW_ENOINFO.
Skip over "prev_addr".  Read start/end-IP directly into the "di" structure,
	not into temporary variables.  Skip padding by directly adjusting the
	address (don't bother fetching padding values; that only slows things down).
	Return 0 only if we really did find dynamic unwind info.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 95a55361c8 (uc_addr): Allow (readonly) access to r0/nat0 to support ".save rp, r0" idiom.
(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 8d4f6ff52d (rbs_contains): Tighten debug output.
(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 54eda6d6fc (_Uia64_find_dyn_list): Add "gp" argument.
Fix typo in address-offset for the "off" variable.
	Adjust for the fact that the dyn-info list address is now gp-relative.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 5660a59ba1 (_U_dyn_info_list): Mark it as .hidden so we can do a @gprel() reloc against it.
(.info): Use @gprel() reloc instead of @segrel() reloc for _U_dyn_info_list.
	The latter doesn't work because the unwind-info is in a different segment.
(ia64_init): Clear unw.r0.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm c4b73c6198 (_UPT_get_dyn_info_list_addr): Add debug statements.
Correct pre-increment to post-increment.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
hp.com!davidm 2fbf4cece7 (_UPT_access_reg): Allow reading of r0 (UNW_IA64_GR+0) to support ".save rp, r0"
idiom.

(Logical change 1.55)
2003-02-26 08:33:57 +00:00
mostang.com!davidm 31c7612938 Regenerate.
(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm a3157347f9 (unwi_get_proc_name): Drop "is_local" argument. Test "as" against
"unw_local_addr_space" instead.

}(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm 824ec53659 (unwi_get_proc_name): Drop "is_local" argument. Test "as" against
"unw_local_addr_space" instead.

2003/02/21 22:03:46-08:00 mostang.com!davidm
Rename: src/get_proc_name.c -> src/Gget_proc_name.c

(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm 3434090e32 (Logical change 1.54) 2003-02-22 08:19:43 +00:00
mostang.com!davidm 5d9d17a5e8 Initial revision 2003-02-22 08:19:43 +00:00
mostang.com!davidm 9d5c1bc580 In error messages, replace "unwind:" by "libunwind:".
(desc_prologue): Fix handling of region_start so it doesn't get corrupted by
	state-record pushing/popping.
(parse_dynamic): Allow the last region to contain a negative insn_count, indicating
	that the region covers the last portion of a procedure.

(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm 7412722854 (unw_get_proc_name): Drop "is_local" argument in call to unwi_get_proc_name).
(Logical change 1.54)
2003-02-22 08:19:43 +00:00
mostang.com!davidm 2f852c2e12 (libunwind_la_SOURCES_common): Replace get_proc_name.c with Gget_proc_name.c and
Lget_proc_name.c.

(Logical change 1.54)
2003-02-22 08:19:43 +00:00
hp.com!davidm bb4f71708d Minor formatting fix.
(Logical change 1.53)
2003-02-22 03:08:22 +00:00
hp.com!davidm 2b0b48fd8a (remote_install_cursor): Implement it.
(Logical change 1.53)
2003-02-22 03:08:22 +00:00
mostang.com!davidm cb4fb05032 (rotate_gr): Only print debug info if size-of-rotating-partition is non-zero.
(rotate_fr): Only print debug info if rotation-base is non-zero.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm 749cd25529 (rbs_underflow): Remove.
(rbs_contains): New function.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm 0d0c84f63c (rbs_switch): Rename from rbs_record_switch() and greatly simplify it because
we now switch to the new backing-store immediately.
(rbs_underflow): Remove.
(rbs_find_stacked): No longer assume that c->bsp is contained in the current
	rbs.  If it is not, first find the backing-store that's backing c->bsp.
(rbs_cover_and_flush): Use rbs_contains() instead of (broken) open code.
	Handle the case where the initial bsp points to an RNaT slot.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm 8a621f78ff (common_init): Drop initialization of c->rbs_right_edge.
Initialize size of first rbs_area[] to 1<<63 so that we can maintain
	a notion of "above" and "below".

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm 77821808ab (check_rbs_switch): Mark it as "inline". Make rbs_record_switch() the last call.
(update_frame_state): Remove conditional call to rbs_underflow().

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm 6af90d0df4 Regenerate.
(Logical change 1.50)
2003-02-15 08:53:55 +00:00
mostang.com!davidm d8023cf208 (unw_set_caching_policy): Call ia64_init() first if necessary.
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm d55a7f7dd4 (rbs_cover_and_flush): Also update c->rnat_loc as needed.
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm b8c178177a (ia64_local_resume): Remove unused variable "loadrs".
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
hp.com!davidm eb44c3a6d5 Move include of ia64intrin.h after include of "unwind_i.h".
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm ad066d35b7 Do nothing of UNW_REMOTE_ONLY is defined.
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm cd6b1537ce (unwi_get_proc_name): If UNW_REMOTE_ONLY is defined and the procedure
isn't a dynamically generated one, just punt and return
	-UNW_ENOINFO.

(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm 89344cf672 (local_find_proc_info): Define only if not UNW_REMOTE_ONLY.
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm 7fd45d122c (create_state_record_for): Use dprintf(), not printf().
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
mostang.com!davidm 70ee73612e Minor reformatting to make it fit in 80 cols.
(get_rnat): New function.
(rbs_cover_and_flush): Ditto.


(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm 5cef5934e8 Auto merged
2003/02/13 22:21:59-08:00 mostang.com!davidm
(libunwind_la_SOURCES_ia64): Mention elf64.h.

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm 32a1dc6be5 (rbs_cover_and_flush): Declare.
(_Uia64_install_context): Drop loadrs argument from declaration.

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm 02c8c0cdae (ia64_local_resume): Use rbs_cover_and_flush() to linearize the contents of the
current register frame before resuming execution.  Drop loadrs argument
	from call to _Uia64_install_context().

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm 03f6e9b004 (_Uia64_install_context): Drop "loadrs" argument and adjust code accordingly.
(Logical change 1.47)
2003-02-14 06:25:36 +00:00
hp.com!davidm 4dca76319d [REMOTE_ONLY]: Mention dummy "install-exec-hook".
(libunwind_la_SOURCES_cdep): Mention dyn-cancel.c and dyn-register.c.
(libunwind_la_SOURCES_common): Remove dyn-cancel.c and dyn-register.c

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm 49f992ac07 Mention !UNW_REMOTE_ONLY on #else branch.
(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm 7372c6cc43 (unw_flush_cache): Only uses __sync_fetch_and_add() if
HAVE_IA64INTRIN_H is defined.  Otherwise, do non-atomic
	increment (and issue compile-time warning about it).

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm 3980b80e26 (is_local_addr_space): Always return 0 for UNW_REMOTE_ONLY.
(_Uia64_search_unwind_table): Add a cast to avoid compiler-warning
	when cross-compiling from a 32-bit platform.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm d7c5192ef8 (ia64_init): Don't call _Uia64_local_addr_space_init() or
_ULia64_local_addr_space_init() for UNW_REMOTE_ONLY.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm ec91b0fce5 (get_unwind_info): Remove unused arguments "pi" and "need_unwind_info".
(__UPT_find_proc_info): Adjust get_unwind_info() call accordingly.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
mostang.com!davidm bbffb334fd include <string.h>.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 2da7f4a5a5 [UNW_TARGET_IA64]: Include elf64.h and os-linux.h.
(_UPT_get_dyn_info_list_addr): Use elf_map_image() to map the elf-image.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 425adcbda4 Rewrite.
}(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm d98aeba4cb Rewrite.
2003/02/06 14:34:06-08:00 mostang.com!davidm
Rename: src/ia64/__ia64_install_context.S -> src/ia64/_Uia64_install_context.S

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm a8db0b3fa1 Regenerate.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 824d6619b5 (Logical change 1.45) 2003-02-08 10:10:59 +00:00
mostang.com!davidm 5f94e2d488 Initial revision 2003-02-08 10:10:59 +00:00
mostang.com!davidm b2a5a9023b Fix signed/unsigned comparisons.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 12d13835f9 Enclose ia64-specific code by UNW_TARGET_IA64.
Adjust for the fact that the image info is now tracked by "struct elf_image".
(elf64_valid_object): Delete (it's now in elfxx.c.
(_UPTi_find_uwnind_table): Don't mmap the image here.
(get_unwind_info): Use tdep_get_elf_image() to obtain the ELF image.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 52b17e2b37 (unwi_put_dynamic_unwind_info): Don't call unwi_dyn_remote_put_unwind_info() when
dealing with the local address space.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm aeb517ff8a (unwi_get_proc_name): Add "offp" argument. Call tdep_get_proc_name() to look up
procedure name for static code.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 678d3209fb (unw_resume): Rewrite to make it work for resuming execution past a signal frame
(and also simplify it).

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 42cfe4f411 (unw_get_proc_name): Add "offp" argument.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm bebd76e90b (struct UPT_info): Replace image/image_size members by "struct elf_image" member.
(struct map_iterator): Delete (moved to os-linux.h).
(maps_init): Ditto.
(maps_next): Ditto.
(maps_close): Ditto.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 7377d07464 (ia64_access_reg): When writing UNW_REG_IP, invalidate the proc_info if the new
IP is outside the range of the old procedure.
	When writing one of the exception argument registers, track the update
	in c->eh_valid_mask.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 7e29f92baa (common_init): Don't initialize eh_args[] pro-actively; do it lazily.
Clear eh_valid_mask to zero.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm be592ddeb2 (_Uia64_search_unwind_table): Return a valid gp-value in the proc-info even when
there is no other unwind-info.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm ebed1d6b82 (_Uia64_install_context): Rename from __ia64_install_context(). Change signature.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 1d8de85964 (_UPT_access_mem): Fix typo in debug statement.
(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm ad7f1470e3 (SETJMP_SO_VERSION): New macro.
(lib_LTLIBRARIES_cdep): Ditto.
(libunwind_setjmp_la_SOURCES_common): Ditto.
(libunwind_setjmp_la_LDFLAGS): Ditto.
(libunwind_setjmp_la_LIBADD): Ditto.
(libunwind_setjmp_la_SOURCES_ia64): Ditto.
(libunwind_setjmp_la_SOURCES_hppa): Ditto.
(libunwind_setjmp_la_SOURCES_x86): Ditto.
(libunwind_la_SOURCES_os): Define for OS_LINUX.
(libunwind_la_SOURCES_ia64): Mention elf64.c.
(AM_CPPFLAGS): Include from current working directory as well.
(AM_CCASFLAGS): Define to be the same as AM_CPPFLAGS.

(Logical change 1.45)
2003-02-08 10:10:59 +00:00
mostang.com!davidm 17220411d4 (_UPT_access_reg): Fix typo in debug() statements.
(Logical change 1.44)
2003-01-28 07:32:15 +00:00
hp.com!davidm a69cf3deb9 Regenerate.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm e9e4e5fb29 (Logical change 1.43) 2003-01-28 03:40:06 +00:00
hp.com!davidm b064eb4574 Initial revision 2003-01-28 03:40:06 +00:00
hp.com!davidm 0d4634d8fe (unw_get_save_loc): Rename AR_25 to AR_CSD.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm e1e36dfdf6 (rotate_gr): When rotating an out-of-frame register, return the original register
number, not -1.  Otherwise, the wrong error gets propagated to the user.

(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm 74ee8e48f0 (libunwind_la_SOURCES_cdep): New macro. Mention _UPT routines.
(libunwind_la_SOURCES_common): Mention libunwind_la_SOURCES_cdep.

(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm 3837469eec (intern_string): Change type of "i" to unsigned, to avoid compiler-warning.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm ef0b937c87 (intern_regions): Change type of "i" to be unsigned, to avoid compiler-warning.
(intern_array): Ditto.

(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm 6da7fc2511 (ia64_scratch_loc): Rename AR_25 to AR_CSD.
(ia64_access_reg): Ditto.

(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm 1f6bf48b5c (_Uia64_search_unwind_table): Rename from tdep_search_unwind_table().
(_Uia64_get_kernel_table): Rename from get_kernel_table() and make it global.

(Logical change 1.43)
2003-01-28 03:40:06 +00:00
hp.com!davidm 4df2088f8a (SIGCONTEXT_AR_CSD_OFF): Rename from SIGCONTEXT_AR_25_OFF.
(Logical change 1.43)
2003-01-28 03:40:06 +00:00
mostang.com!davidm 93bfdaa128 Regenerate.
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm 83893355b0 (update_frame_state): Handle "cfm" cache.
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm 8bff7ccc92 (rotate_gr): Take advantage of "cfm" cache.
(rotate_fr): Ditto.
(pr_ltop): Ditto.
(pr_ptol): Ditto.

(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm 4368ea4a70 (ia64_get_stacked): Make sure returned rnat-location is valid, too.
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm e30bf11e2c (ia64_access_reg): Handle "cfm" cache.
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm a89e112a32 (common_init): Initialize "cfm" cache.
(Logical change 1.42)
2003-01-23 18:47:51 +00:00
mostang.com!davidm 7ec3afd8db Minor reformatting.
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 31fbd34d9c (unw_get_save_loc): rotate_gr() expects a register number in the range r32-r127.
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm d5370fb25c (rbs_record_switch): Fix it so it stands a chance of working in all cases.
(rbs_underflow): Ditto.
(rbs_find_stacked): Ditto.

(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm eacf0e24e1 (rbs_find_stacked): Renamed from rbs_find_reg.
(ia64_get_stacked): Expect a register number (32-127), not a skip-count.

(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 3b6290bef2 (create_state_record_for): Fix thinko in test whether bsp/bspstore/rnat have been
saved.

(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 73fd3a8d4a (compile_reg): store register number for MOVE_STACKED.
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 570c6e399a (common_init): bspstore needs to be initialized from c->bspstore_loc.
Adjust for renaming in "struct cursor".

(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm ad8830e9ce (check_rbs_switch): New function. Split-off from update_frame_state().
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm a356356660 (access_nat): rotate_gr() expects a register number in the range r32-r127.
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 1efaaab46e (Logical change 1.40) 2003-01-21 17:41:20 +00:00
mostang.com!davidm 81d01dfc27 Initial revision 2003-01-21 17:41:20 +00:00
mostang.com!davidm ca50cf6354 Begin to support resuming execution beyond a signal handler frame (not working yet).
(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 4f231eb84a Add copyright notice.
(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 56f367ca9c (update_frame_state): Update c->sigcontext_off so unw_resume() can reconstruct the
original stack-pointer from c->sigcontext_loc.
	Handle rbs-switches for Linux signal deliver on alternate signal stack and
	for general case, indicated by UNW_PI_FLAG_IA64_RBS_SWITCH.
	Call rbs_underflow() when we detect a register-backing-store underflow.

(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 7aaa1e995a (unw_regname0: Use NELEMS() instead of corresponding open code.
(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 644a56edfc (unw_init_local): Add comment as to why we can assume initial register window is
contiguous.

(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 3f3215952d (unw_get_save_loc): Use ia64_get_stacked() and don't forget to rotate stacked
registers before accessing them.

(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 29fbe1c0bc (uc_addr): Correct value returned for AR_BSPSTORE.
(Logical change 1.40)
2003-01-21 17:41:20 +00:00