1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-30 14:53:42 +01:00
Commit graph

538 commits

Author SHA1 Message Date
hp.com!davidm
07721f3487 (get_static_proc_name): New function.
(x86_local_addr_space_init): Initialize get_proc_name() callback.

(Logical change 1.81)
2003-04-21 23:14:14 +00:00
hp.com!davidm
bbfe13cce0 (_UPT_reg_offset): Fix off-by-1 error.
(Logical change 1.81)
2003-04-21 23:14:14 +00:00
hp.com!davidm
060850b2c7 (_UPT_access_reg): When ptrace() returns an error, branch to common
"badreg" error handler.

(Logical change 1.81)
2003-04-21 23:14:14 +00:00
hp.com!davidm
de5b16e4a8 (_UI_siglongjmp_cont): Implement a dummy handler.
(Logical change 1.81)
2003-04-21 23:14:14 +00:00
hp.com!davidm
508f65f8b9 Regenerate.
(Logical change 1.80)
2003-04-21 18:56:16 +00:00
hp.com!davidm
ed625d646e (libunwind_la_SOURCES_x86): Mention Lset_reg-x86.c.
(Logical change 1.80)
2003-04-21 18:56:16 +00:00
hp.com!davidm
796bd962e3 Regenerate.
(Logical change 1.79)
2003-04-21 18:46:23 +00:00
hp.com!davidm
1b770df7ef (libunwind_la_SOURCES_x86): Mention Gset_reg-x86.c.
(Logical change 1.79)
2003-04-21 18:46:23 +00:00
mostang.com!davidm
60b8811527 (update_frame_state): On HP-UX, catch ucontext_t location from r32.
(Logical change 1.77)
2003-04-08 21:14:16 +00:00
mostang.com!davidm
fb293ae33d (struct unwind_header): Rename member "unknown1" to "format".
(Logical change 1.77)
2003-04-08 21:14:16 +00:00
mostang.com!davidm
d9ba5fb915 (desc_abi): Also recognize ".unwabi @hpux, 1" as a signal trampoline.
(Logical change 1.77)
2003-04-08 21:14:16 +00:00
mostang.com!davidm
b10a6c5b9f (SYSCALL_CFM_SAVE_REG): New macro.
(REASON_SYSCALL): Ditto.
(access_reg): Use __uc_get_reason() to determine how ucontext_t was created.
	Handle UNW_IA64_AR_BSP differently depending on whether or not
	ucontext_t was created by a syscall.  Ditto for UNW_IA64_IP and
	UNW_IA64_CFM.  Add debug statement.

(Logical change 1.77)
2003-04-08 21:14:16 +00:00
mostang.com!davidm
0802cd49ad (rbs_find_stacked): Allow NULL locp.
(Logical change 1.76)
2003-04-08 20:34:06 +00:00
mostang.com!davidm
7057901782 (ia64_get_stacked): Allow NULL "locp".
(Logical change 1.76)
2003-04-08 20:34:06 +00:00
mostang.com!davidm
bc41c6ad9f [HAVE_SYS_UC_ACCESS_H]: Add include of <sys/uc_access.h>.
(access_reg) [HAVE_SYS_UC_ACCESS_H]: New function.
(access_fpreg) [HAVE_SYS_UC_ACCESS_H]: New function.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
6ab15cdec4 Regenerate.
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
e4ea1bcdb8 Drop include of <endian.h>.
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
aa371f972e Don't include <endian.h>.
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
b513773cb2 (unw_init_local): Do sc_rbs_base manipulation only if HAVE_SYS_UC_ACCES_H is not
defined.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
3b5cb41875 (local_resume): Unsupported on HP-UX for now.
(remote_install_cursor): Ditto.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
5929f8e02b (libunwind_la_SOURCES_os_hpux): New macro.
(libunwind_la_SOURCES_os): For HP-UX, use libunwind_la_SOURCES_os_hpux.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
ee12f505ed (is_local_addr_space): Test for _ULia64_local_addr_space only if UNW_GENERIC_ONLY
is not defined.
(tdep_find_proc_info) [HAVE_DLMODINFO): Declare new type "struct unwind_header"
	to accommodate HP-UX unwind header.  Fetch unwind table from this
	header.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
9abe0decf0 (ia64_init): Call _ULia64_local_addr_space_init() only if UNW_GENERIC_ONLY is
not defined.

(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
4ca42d4a0c (get_unwind_info): _Only call _Uia64_get_kernel_table() on Linux.
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
mostang.com!davidm
9c23f9c408 (elf_map_image): Declare "path" argument as "const".
(Logical change 1.75)
2003-04-03 07:59:15 +00:00
hp.com!davidm
cfded02a05 (maps_close): Do nothing if mi->fp is already NULL.
(Logical change 1.71)
2003-03-29 07:32:50 +00:00
hp.com!davidm
3a27d1661c (_UPTi_find_unwind_table): Add dummy x86 implementation.
(_UPT_find_proc_info): On ia64, when returning info about the kernel's unwind
	table, copy the unwind info into a malloc'd buffer and use
	unw_local_addr_space to search the table, since the table is stored
	in local memory.

(Logical change 1.71)
2003-03-29 07:32:50 +00:00
hp.com!davidm
1acfcc74e5 (_UPT_reg_offset): Add definitions for x86.
(Logical change 1.71)
2003-03-29 07:32:50 +00:00
hp.com!davidm
e00aa27222 (_UPT_get_dyn_info_list_addr): Bracket ia64-specific variables in #if UNW_TARGET_IA64.
If ui->ei.image is non-NULL, close the old image and invalidate the
	cache before mapping the new image.

(Logical change 1.71)
2003-03-29 07:32:50 +00:00
hp.com!davidm
e21a83deb0 (_UPT_access_fpreg): Fix typo in cast.
(Logical change 1.71)
2003-03-29 07:32:50 +00:00
mostang.com!davidm
4f17bce117 Regenerate.
(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
b838c72f9a (lookup_symbol): Portability fix: avoid arithmetic on void *.
(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
e4f251b98a (local_resume): "static inline" version of what used to be ia64_local_resume().
(ia64_local_resume): Declare as "HIDDEN" (not "HIDDEN inline"), use local_resume().
(unw_resume): For UNW_LOCAL_ONLY case, call local_resume().

(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
81f4297d5a (intern_regions): Don't mix signed and unsigned types for 3rd argument to fetch32().
(intern_dyn_info): Ditto.

(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
2e65e639a5 (ia64_getfp): Return -UNW_EBADREG when trying to access unsaved register.
(ia64_putfp): Ditto.
(ia64_get): Ditto.
(ia64_put): Ditto.

(Logical change 1.70)
2003-03-28 07:43:22 +00:00
mostang.com!davidm
5b1f22a309 Regenerate.
(Logical change 1.69)
2003-03-27 04:34:23 +00:00
mostang.com!davidm
f168752fcf (Logical change 1.68) 2003-03-27 04:29:07 +00:00
mostang.com!davidm
58df2a4b8f Initial revision 2003-03-27 04:29:07 +00:00
mostang.com!davidm
bf2a805be2 If we have it, include <ia64intrin.h>.
(current_gp): New function.
(callback): Use current_gp() instead of open-coding it.

(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
26ad35667c Avoid GNU local labels for improved portability.
(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
6dbafde94b (sigprocmask): Declare as global (Intel assembler insists on this).
(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
4090e38376 (sigprocmask): Declare as "global" (Intel assembler insists on this).
(siglongjmp_continuation): Avoid GNU assembler local labels.

(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
7407caa8c3 (libunwind_la_SOURCES_ia64): Add global-asm-ia64.S.
(libunwind_la_SOURCES_x86): Mention elf32.c, elf32.h, Gresume-x86.c, and
	Lresume-x86.c.

(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
753601f8b0 (_U_dyn_info_list): Declare.
Move generation of dyn-list unwind entry into global-asm-ia64.S.

(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
9eafc2ae86 (_UPT_get_dyn_info_list_addr): Downgrade #error to #warning.
(Logical change 1.68)
2003-03-27 04:29:07 +00:00
mostang.com!davidm
4409fc61d8 Patch by Matthieu Delahaye:
(lookup_symbol): Fix typo: Elf64_Shdr -> ElfW (Shdr).
(get_proc_name): Ditto.

(Logical change 1.67)
2003-03-27 00:44:39 +00:00
mostang.com!davidm
1c9ce0d96c Regenerate.
(Logical change 1.66)
2003-03-20 08:16:17 +00:00
mostang.com!davidm
09f7ea2cc2 Return -UNW_ENOINFO.
(Logical change 1.64)
2003-03-20 07:51:37 +00:00
mostang.com!davidm
0adb97c721 Reorganize a bit so "automake" can correctly figure out all the files that need
to be distributed.

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
0456a08cb8 Issue warning for platforms using ttrace() instead of ptrace() (HP-UX
is the only platform that does that).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
63d7003ef7 Include <sys/stat.h>.
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
58e0e100d1 Include <inttypes.h> instead of <stdint.h>. HP-UX doesn't have the latter.
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
d933d89e38 Include <asm/ptrace_offsets.h> only if we have it.
Issue warning for platforms using ttrace() instead of ptrace() (HP-UX
is the only platform that does that).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
0f3adfb3e6 Include "config.h" if we have it.
Test for HAVE_ASM_PTRACE_OFFSETS_H instead of UNW_TARGET_IA64.
Issue warning for platforms using ttrace() instead of ptrace() (HP-UX
is the only platform that does that).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
ea91dee4a8 Include "config.h" if we have it.
Include <inttypes.h> instead of <stdint.h>.  HP-UX doesn't have the latter.
Use "inline" instead of "__inline__" (the former gets properly #define'd by
config.h).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
d798e7dd07 Include "config.h" if we have it.
(_Uia64_search_unwind_table): Be sure to clear "proc_info" members as documented
	by unw_get_proc_info(3).
Include <dlfcn.h> if we have dlmodinfo() (HP-UX only).
(tdep_find_proc_info): Use dl_iterate_phdr() only if we have it (glibc-based
	systems).  Use dlmodinfo() if we have it (HP-UX).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
8033bdfd28 Include "config.h" if we have it.
(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
5fe7ac3ff5 (unw_set_caching_policy): Default to "global" policy if thread-local policy is
not available.

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
7bfbbb6126 (lookup_symbol): Return -UNW_ENOINFO if symbol cannot be looked up for some reason.
Return -UNW_ENOMEM if string buffer is too small.  This makes the routine
	compatible with the definition of the unw_get_proc_name(3).

(Logical change 1.63)
2003-03-19 19:25:18 +00:00
mostang.com!davidm
e24351b6c0 (Logical change 1.63) 2003-03-19 19:25:18 +00:00
mostang.com!davidm
3812bbdc00 Initial revision 2003-03-19 19:25:18 +00:00
mostang.com!davidm
cf9c4950bc Add include of "tdep.h".
(unwi_dyn_remote_find_proc_info): Maintain as->dyn_info_list_addr as a cache of
	the most recently obtained dyn-info-list address.

(Logical change 1.61)
2003-03-11 01:11:18 +00:00
mostang.com!davidm
5dc0e152a9 (unw_flush_cache): Also clear dyn_info_list_addr cache in the address space.
(Logical change 1.61)
2003-03-11 01:11:18 +00:00
mostang.com!davidm
63531d6f85 (struct UPT_info): Remove dyn_info_list_addr and checked_dyn_info_list_addr
members.

(Logical change 1.61)
2003-03-11 01:11:18 +00:00
mostang.com!davidm
7e7d86ade8 (_UPT_get_dyn_info_list_addr): Don't cache dyn-info-list address here. Do it
in libunwind proper instead.

(Logical change 1.61)
2003-03-11 01:11:18 +00:00
mostang.com!davidm
7a7d6113d4 Regenerate.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
285c381cea Initial revision 2003-03-06 06:14:36 +00:00
mostang.com!davidm
00c5dee16b Include <assert.h>.
(_longjmp): Ensure that we have at least 4 exception-handling args.  (This code
	will need updating to make it work on x86, where only 2 exception handling
	args are available).
(longjmp): If we are compiling with GCC, use an alias-attribute to alias it with
	_longjmp().  This is more efficient and works around a gcc-3.2/ia64 bug
	which causes bad unwind info when a noreturn function is a last call.


(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
eeffb605f7 Include <assert.h>.
(_longjmp): Ensure that we have at least 4 exception-handling args.  (This code
	will need updating to make it work on x86, where only 2 exception handling
	args are available).

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
597f26ce83 Include "tdep.h".
(unwi_full_sigmask): Define here.
(mi_init): Initialize unwi_full_sigmask.

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
d098282ff5 Include "tdep.h".
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
d396c31e6f Enable .resume callback.
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
6a01dbb8df Add copyright message.
(SOSLOCK): Remove
(SOSUNLOCK): Ditto.
(LOCK): Ditto
(UNLOCK): Ditto.
(sos_alloc): If HAVE_CMPXCHG is defined, use cmpxchg_ptr() to atomically allocate
	memory in a lock-free manner.  Otherwise, fall back on disabling signal
	delivery and holding the sos_lock during memory allocation.
(sos_free): Remove.
(mempool_init): Initialize pool lock.  Replace LOCK/UNLOCK with appropriate
	signal-masking & mutex_lock/unlock calls.
(mempool_free): Replace LOCK/UNLOC with appropriate signal-masking & mutex_lock/unlock
	calls.

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
90c6107cae (unw_get_proc_name): Declare "offp" argument and pass it to unwi_get_proc_name().
(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
51f58db9b4 (libunwind_la_SOURCES_cdep): Mention _UPT_resume.c.
Delete obsolete comment.

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
43cc4c9e59 (ia64_make_proc_info): If caching is enabled, call ia64_get_cached_proc_info()
to pick up cached proc-info (if available).

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
fe0ed7dd41 (ia64_getfp): Print debug message when accessing an unsaved register.
(ia64_putfp): Ditto.
(ia64_get): Ditto.
(ia64_put): Ditto.
(ia64_local_addr_space_init): Add missing declaration.

(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
d3ec5e94aa (cache_match): Remove locking comments.
(ia64_get_cached_proc_info): Rename from ia64_script_lookup() and modify it so
	it directly updates the proc-info if the necessary script is in the cache.
(script_new): Remove locking comments and adjust formatting.
(ia64_find_save_locs): If global caching is enabled, mask signal delivery and
	hold the cache lock while accessing the cache.
(ia64_script_cache_init): Initialize the cache lock.


(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm
515fd742bd (Logical change 1.59) 2003-03-06 06:14:36 +00:00
hp.com!davidm
57f0163a91 Auto merged
2003/03/04 16:13:44-08:00 hp.com!davidm
(EXTRA_DIST): New macro.  Mention elfxx.h and elfxx.c.  Reported by
	Arun Sharma.

(Logical change 1.58)
2003-03-05 00:13:58 +00:00
mostang.com!davidm
d6a0aa7059 Rename "epilogue_start" to "when_sp_restored".
(parse_dynamic): Fix it so it actually works.
(create_state_record_for): Initialize return_link_reg to zero.
	Don't print "no unwind info" unconditionally when UNW_DEBUG is
	in effect.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
26f95915e4 Regenerate.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
e31015f67f (Logical change 1.56) 2003-02-27 09:58:57 +00:00
mostang.com!davidm
1de6745d5b Initial revision 2003-02-27 09:58:57 +00:00
mostang.com!davidm
4001ce198a (unwi_get_proc_name): For static procedures, use get_proc_name() callback if it's
non-NULL.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
6a9c819f7f (unwi_extract_dynamic_proc_info): Clear lsda and unwind_info_size for
dynamic-info format.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
5428fc6295 (unw): Move "psp" member before "bsp_loc".
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
03950aaf01 (lookup_symbol): Print debug output only at very high debug-level.
(get_proc_name): Take "pid" argument.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
68c970298d (libunwind_la_SOURCES_cdep): Mention _UPT_get_proc_name.c.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
4c09dd6429 (intern_regions): Allow for empty region-list.
(intern_dyn_info): Skip over padding rather than fetching it.
	Start intern_regions() at address of first region, not just at the next
	sequential address.
(unwi_dyn_remote_find_proc_info): Allocate "di" dynamically (it needs to persist
	until put_unwind_info() is called).

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
77ccc28ad9 (ia64_state_record): Rename epilogue_start to when_sp_restored.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
5939c41c09 (get_static_proc_name): New function.
(ia64_local_addr_space_init): Initialize get_proc_name callback.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
a3806e7c16 (get_proc_name): Add "pid" argument.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
8bd0572f34 (build_script): Document the fact that we need IA64_REG_PSP to get compiled first.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm
153f625eed (_UPTi_find_unwind_table): Double-check that punw is inside ptxt segment.
(get_unwind_info): Double-check to verify that returned dynamic-info is indeed
	for the procedure that we requested.

(Logical change 1.56)
2003-02-27 09:58:57 +00:00
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