1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-23 12:03:41 +01:00
Commit graph

376 commits

Author SHA1 Message Date
Arun Sharma
ff0ae70cc3 Bad pointer validation for 32 bit x86.
This corresponds to commit 649f1fb344.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
2009-03-16 21:34:49 -07:00
Arun Sharma
ef29eade44 This patch eliminates one system call per unwind by not using the
getcontext in libc.

Also cleanup the namespace (check-name-space passes on x86_64 now).
Replace uses of offsets.h with ucontext_i.h.
Rename _x86_64_setcontext to _Ux86_64_setcontext.

TBD: Add CFI annotations for get/setcontext.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:42:16 -06:00
Arun Sharma
649f1fb344 [X86-64] For local unwinding, we have a defence mechanism against
bad/missing unwind information, which could result in libunwind
dereferencing bad pointers. This mechanism is based on msync(2) system
call and significantly reduces the chances of a bad pointer
dereference in libunwind.

The original idea was to turn this mechanism on only when necessary
i.e. libunwind didn't find proper unwind information for a IP.

There are a couple of problems in the current implementation.

* The flag is global and is modified without locking
* The flag isn't reset when starting a new unwind

The attached patch makes ->validate a per-thread setting by moving it
into struct cursor from unw_local_addr_space and resets it to false
when starting a new unwind. As a result, cursor->as_arg points to the
cursor itself instead of the ucontext (for the local case).

This was found to reduce the number of msync() system calls from an
application using libunwind significantly.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:35:53 -06:00
Daniel Jacobowitz
3842dac733 Add initial ARM and MIPS support. To support this, also enable the
reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
2008-02-04 17:16:37 -07:00
David Mosberger-Tang
a8be10e251 [X86] Cleanup XMM handling for x86
* Use explicit types for XMM registers
* Support full width (128 bits) access

Signed-off-by: Andrew Cagney <cagney@redhat.com>
Signed-off-by: Arun Sharma <aruns@google.com>
2008-01-07 15:41:20 -07:00
Jose Flavio Aguilar Paulino
9ea6af8ed5 [PPC32] Make PPC32 unwinding work for real. 2007-10-08 12:33:18 -06:00
Jose Flavio Aguilar Paulino
4499bb29a6 [PPC32] First check-in to add preliminary support for Linux/PPC32. 2007-09-12 21:52:25 -06:00
David Mosberger-Tang
e6b9f350f7 Introduce a tdep_get_func_addr_hook() in the ELF lookup_symbol()
routine and add address-space argument.  This is needed because on
PPC64, a the function-name symbol refers to a function descriptor
(unlike, for example, on ia64, where the @fptr() operator is needed to
refer to a function descriptor).  Thus, in order to look up the name
of a function, we need to dereference the function descriptor.  To
make matters more "interesting", the function descriptors are normally
resolved by the dynamic linker, so we can't get their values from the
ELF file.  Instead, we have to read them from the running image, hence
the need for the address-space argument.
2007-08-22 13:02:09 -06:00
David Mosberger-Tang
fad8b04c9f Rebuilt configure and Makefile.in files. 2007-08-06 19:56:28 -06:00
Jose Flavio Aguilar Paulino
b33021e4b2 Add PPC64 support. 2007-08-02 09:59:43 -06:00
Arun Sharma
be02d9ac0d dwarf.h needs atomic_ops.h. So include it. 2006-08-16 15:39:52 -06:00
David Mosberger-Tang
b3f25f65af [dwarf] Include <config.h> in dwarf.h since it's testing HAVE_ATOMIC_OPS_H.
Reported by Arun Sharma.
2006-08-10 21:44:14 -06:00
Arun Sharma (अरुण)
795529eee3 [x86-64] Add a known good address cache.
This improves the performance of Lperf-simple from 500ns to 195ns
on the avg.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-08-10 21:30:01 -06:00
David Mosberger-Tang
1fdb08e5fc Various fixes to get x86 to compile and work again.
include/dwarf.h: Declare dwarf_reg_state_pool and dwarf_cie_info_pool.
include/dwarf_i.h: Include libunwind_i.h instead of tdep.h.
	Make dwarf_to_unw_regnum() a macro so it doesn't get compiled
	into an object file merely because it include dwarf_i.h (important
	when optimization is turned off).
	(dwarf_read_encoded_pointer_inlined): New function.
include/tdep-x86/libunwind_i.h: Add include of "mempool.h".
include/tdep-x86_64/libunwind_i.h: Add include of "mempool.h".
2006-07-26 22:36:03 -06:00
Arun Sharma
11ea1275bd [dwarf] The sword() function in Gexpr.c doesn't do what's intended.
Yes, it casts to signed, but then converts right back to
unsigned via the return type.  Fixed thus.

Signed-off-by: Richard Henderson <rth@redhat.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 22:12:10 -06:00
Arun Sharma
8cdd8bfed8 [x86-64] Make even UNW_LOCAL_ONLY accessors go through validation.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:39:46 -06:00
Arun Sharma
c5dc3c150a [dwarf] Allow return address column to differ from function to function.
Signed-off-by: Andrey Veskov <Andrey.Veskov@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:29:50 -06:00
Arun Sharma
036cbfa020 Fix x86 compilation.
x86 needs the global_cache just like the x86-64 version.

Signed-off-by: Andrey.Veskov@intel.com
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:20:59 -06:00
Arun Sharma
00db7f752a Implement a ip -> dwarf_reg_state cache.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:18:49 -06:00
David Mosberger-Tang
37be21c01e Restore more files wiped out by Bitkeeper->CVS->GIT transition. 2006-07-26 15:09:39 -06:00
David Mosberger-Tang
ca69fee8bb Merge ../libunwind-v0.98
Conflicts:

	include/dwarf_i.h
	include/x86/jmpbuf.h
	include/x86_64/jmpbuf.h
	src/hppa/init.h
	src/mi/Gget_fpreg.c
	src/mi/Gset_fpreg.c
	src/mi/strerror.c
2006-07-25 21:41:43 -06:00
David Mosberger-Tang
f176ad6fc6 Bring git v0.98.5 tree in sync with released v0.98.5.
Sadly, the conversion from Bitkeeper -> CVS -> git wasn't perfect.  Or
so it seems.
2006-07-25 21:32:28 -06:00
hp.com!davidm
b47b9aa232 UNW_IA64_BSP and UNW_IA64_SP are no longer read-only.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
7a8b0ba617 (rbs_get_base): New macro.
(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
d5ab898cdf (SOS_MEMORY_SIZE): Move to here from src/mi/mempool.c.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
9d94c8f62b Rename: include/x86_64/jmpbuf.h -> include/tdep-x86_64/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e3ac62c5f1 Rename: include/x86_64/jmpbuf.h -> include/tdep-x86_64/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
3a2c945244 Rename: include/x86/jmpbuf.h -> include/tdep-x86/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
f6d4c74beb Rename: include/x86/jmpbuf.h -> include/tdep-x86/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e6cf7e84eb Rename: include/x86/dwarf-config.h -> include/tdep-x86/dwarf-config.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
d90772c868 Rename: include/x86/dwarf-config.h -> include/tdep-x86/dwarf-config.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
56cea5b4a9 Rename: include/ia64/script.h -> include/tdep-ia64/script.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
12f0ce1a39 Rename: include/ia64/script.h -> include/tdep-ia64/script.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
910087d5b5 Rename: include/ia64/jmpbuf.h -> include/tdep-ia64/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e86e18224d Rename: include/ia64/jmpbuf.h -> include/tdep-ia64/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
983d841e64 Rename: include/hppa/jmpbuf.h -> include/tdep-hppa/jmpbuf.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
f8a07dfb22 Rename: include/hppa/jmpbuf.h -> include/tdep-hppa/jmpbuf.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
400a917a7a Rename: include/hppa/dwarf-config.h -> include/tdep-hppa/dwarf-config.h
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
c56b45e82e Rename: include/hppa/dwarf-config.h -> include/tdep-hppa/dwarf-config.h
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
180a1ececa Initial revision 2005-05-20 09:48:08 +00:00
hp.com!davidm
f9b7af51ed Include <libunwind.h> instead of "internal.h" and "mempool.h".
(dwarf_reg_state_pool): Move to dwarf_i.h.
(dwarf_cie_info_pool): Likewise.

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
3ad4903154 Include "libunwind_i.h" instead of "tdep.h".
Include "mempool.h".
(dwarf_reg_state_pool): Move here from dwarf.h.
(dwarf_cie_info_pool): Likewise.
Include "libunwind_i.h" instead of "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
ead43e8545 Include "libunwind_i.h" instead of "internal.h".
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
59f9f6a1ac Include "libunwind_i.h" instead of "internal.h".
2005/05/19 08:11:38-07:00 hp.com!davidm
Rename: include/ia64/rse.h -> include/tdep-ia64/rse.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
5724bee8c2 Include "libunwind_i.h" instead of "internal.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
5e5db2dada Adjust for renaming of file.
Drop include of <libunwind.h>.
Include "script.h" instead of "ia64/script.h".

}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
0870c54c2a Adjust for renaming of file.
Drop include of <libunwind.h>.
Include "script.h" instead of "ia64/script.h".

2005/05/19 07:42:45-07:00 hp.com!davidm
Rename: include/tdep-ia64.h -> include/tdep-ia64/libunwind_i.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
ce46ac7167 Adjust for renaming of file.
(tdep_put_unwind_info): Adjust for change of arguments.

}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
bea50a5d41 Adjust for renaming of file.
(tdep_put_unwind_info): Adjust for change of arguments.

2005/05/19 07:42:45-07:00 hp.com!davidm
Rename: include/tdep-x86_64.h -> include/tdep-x86_64/libunwind_i.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
47eca0fadf Adjust for renaming of file.
(tdep_put_unwind_info): Adjust for change of arguments.

2005/05/19 07:42:45-07:00 hp.com!davidm
Rename: include/tdep-x86.h -> include/tdep-x86/libunwind_i.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
34e70b5937 Adjust for renaming of file.
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
dce55286ab Adjust for renaming of file.
2005/05/19 07:42:45-07:00 hp.com!davidm
Rename: include/tdep-hppa.h -> include/tdep-hppa/libunwind_i.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
6980fa4f25 Adjust comment.
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
e5944788ad Adjust comment.
2005/05/19 08:13:00-07:00 hp.com!davidm
Rename: include/x86_64/dwarf-config.h -> include/tdep-x86_64/dwarf-config.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
c446186670 Add include of <stdlib.h>.
}(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
5135d044ed Add include of <stdlib.h>.
2005/05/19 07:42:56-07:00 hp.com!davidm
Rename: include/internal.h -> include/libunwind_i.h

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
c3e9383d30 (struct cursor): Add "ec_loc" member.
(Logical change 1.293)
2005-05-17 21:28:19 +00:00
mostang.com!davidm
836ee627e0 Rename: src/dwarf/dwarf-eh.h -> include/dwarf-eh.h
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
06d223e924 Initial revision 2005-05-03 09:13:17 +00:00
mostang.com!davidm
fbab73e7e6 Improve comment.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
fdb6bee068 Change "ia64_rse" prefix to "rse".
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
27f7d7d720 (unw_tdep_proc_info_t): Drop dwarf_info member.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
e7fba77e9d (unw_dyn_info_format_t): Remove UNW_INFO_FORMAT_DWARF_FDE.
(UNW_DYN_DFI_FLAG_FDE_PE_MASK): Remove.
(UNW_DYN_DFI_FLAG_AUGMENTATION_HAS_SIZE): Remove.
(unw_dyn_dwarf_fde_info_t): Remove.
(unw_dyn_info_t): Remove dfi member.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
66ecac1b5f (unw_addr_space): If we have atomic_ops.h, declare cache_generation
to be of type AO_t.

2004/10/25 17:43:57+02:00 homeip.net!davidm
(DWARF_IS_REG_LOC): Define as 0 for the local-only case.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
adeb9b5984 (struct dwarf_cursor): Add members eh_args and eh_valid_mask so
we can track writes to exception-handling argument regs.

2004/11/17 02:43:39-08:00 mostang.com!davidm
(dwarf_cie_info_pool): New declaration.
(dwarf_cie_info_t): New type.
(dwarf_state_record): Drop cfa_is_sp member.
(dwarf_extract_proc_info_from_fde): Rename from dwarf_parse_fde.

2004/10/25 17:38:51+02:00 homeip.net!davidm
Fix typo: DW_CFA_CFA_expression -> DW_CFA_expression.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
229d2c4a62 (atomic_read): New macro to read the value of a variable
that can be updated atomically (for Linux kernel compat.).
(unwi_full_mask): Rename from unwi_full_sigmask and change type to
	intrmask_t.
(intrmask_t): New type.
(define_lock): New macro.
(lock_init): Likewise.
(lock_acquire): Likewise.
(lock_release): Likewise.
(GET_MEMORY): Likewise.

2005/02/20 21:42:54-08:00 mostang.com!davidm
(ALWAYS_INLINE): Include "inline" keyword for compatibility with
	Linux kernel.
(ARRAY_SIZE): Rename from NELEMS for improved Linux-kernel
	compatibility.

2004/10/25 05:21:51-07:00 hp.com!davidm
(Debug): Make a debug level of N imply that we're printing when
	UNW_DEBUG_LEVEL=N since that's more intuitive.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
6dcb17c553 (UNW_X86_ECX): ecx apparently is a scratch-register (at least
under Linux).

2004/11/17 02:43:39-08:00 mostang.com!davidm
(unw_tdep_proc_info_t): Remove dwarf_info member.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
04fde4a63b (Logical change 1.290) 2005-05-03 09:13:17 +00:00
hp.com!davidm
f6b74c9cbe (ia64_get_cached_proc_info): Drop duplicate "ia64_" prefix.
(ia64_cache_proc_info): New function/macro.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
847e0a4b18 (dwarf_misaligned_value_t): Move "attribute" declaration to the type
to make newer versions of GCC happy.

2005/02/23 12:55:45-08:00 mostang.com!davidm
(dwarf_read_encoded_pointer_inlined): Adjust for ALWAYS_INLINE
	change.

2004/12/02 00:40:45-08:00 mostang.com!davidm
Make it possible for dwarf-config.h to define its own version of
dwarf_to_unw_regnum().

2004/11/23 16:59:56-08:00 mostang.com!davidm
(dwarf_to_unw_regnum): Make it a macro so we don't have a
dependency just because of including the file when --enable-debug
is on (and inlining is off).
(dwarf_read_encoded_pointer_inlined): Move from Gpe.c to here
	and rename from dwarf_read_encoded_pointer().

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
c224ec66c5 (UNW_HPPA_EH3): Fix comment-typo.
2004/12/02 18:37:47-08:00 hp.com!davidm
(unw_tdep_fpreg_t): Make it a union of "double" and two 32-bit words.
(unw_tdep_getcontext): Fix typo.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(_U_TDEP_QP_TRUE): New macro.
(UNW_TDEP_CURSOR_LEN): Increase from 127 to 511 to accommodate
	DWARF cursor-size.
(unw_word_t): Change from uint64_t to uint32_t since user-land
	PA-Linux is only 32 bits.
(hppa_regnum_t): Add register names UNW_HPPA_EH0, UNW_HPPA_EH1,
	UNW_HPPA_EH2, UNW_HPPA_EH3, UNW_HPPA_CFA, and
	UNW_HPPA_EH.
(UNW_TDEP_NUM_EH_REGS): New macro.
(unw_tdep_getcontext): Point it at UNW_ARCH_OBJ(getcontext).

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
e12a996051 (HPPA_SCF_LINUX_SIGFRAME): Remove (PA-Linux appears to use only
real-time signal frames).
(tdep_big_endian): Fix typo.

2004/12/02 00:40:45-08:00 mostang.com!davidm
Include "elf32.h" and "dwarf.h".
(struct unw_addr_space): If we have atomic-ops, define cache_generation
	to be of type AO_t.
(struct cursor): Define it primarily in terms of the DWARF cursor.
	Add sigcontext_format and sigcontext_addr members.
Add DWARF-location accessors.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
homeip.net!davidm
7aade965b4 (DWARF_IS_REG_LOC): Define as 0 for the local-only case.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
272caabbfa Regenerate.
(Logical change 1.283)
2004-11-16 22:03:04 +00:00
mostang.com!davidm
8e96c357a8 (unw_addr_space): If we have atomic-ops library installed, declare
cache_generation as AO_t.
(dwarf_getfp): Do casts via "char *" to avoid type-punning
	warnings.
(dwarf_putfp): Likewise.

(Logical change 1.266)
2004-09-09 13:06:01 +00:00
mostang.com!davidm
a6aa7338cc (dwarf_getfp): Implement a first draft version of this routine
(completely untested).
(dwarf_putfp): Likewise.
(dwarf_get): Don't support fp-register save-locations.
(dwarf_put): Likewise.

(Logical change 1.264)
2004-09-09 10:50:06 +00:00
mostang.com!davidm
47bf99c677 (UNW_VERSION_CODE): New macro.
(UNW_VERSION): Likewise.

(Logical change 1.262)
2004-09-09 10:45:24 +00:00
mostang.com!davidm
27ce81f7e2 Initial revision 2004-09-08 17:36:28 +00:00
mostang.com!davidm
8de87a48cd (UNW_VERSION_MAJOR): New macro.
(UNW_VERSION_MINOR): Likewise.
(UNW_VERSION_EXTRA): Likewise.

}(Logical change 1.261)
2004-09-08 17:36:28 +00:00
mostang.com!davidm
012a4844cb (UNW_VERSION_MAJOR): New macro.
(UNW_VERSION_MINOR): Likewise.
(UNW_VERSION_EXTRA): Likewise.

2004/09/08 08:15:35-07:00 mostang.com!davidm
Rename: include/libunwind-common.h -> include/libunwind-common.h.in

(Logical change 1.261)
2004-09-08 17:36:28 +00:00
hp.com!davidm
197c9d517b Initial revision 2004-08-31 13:59:10 +00:00
hp.com!davidm
3b57368f67 (struct cursor): Clarify meaning of "rbs_curr" member.
(Logical change 1.259)
2004-08-31 13:59:10 +00:00
hp.com!davidm
e29611e7d3 (Logical change 1.259) 2004-08-31 13:59:10 +00:00
homeip.net!davidm
9034bd158a (struct dwarf_cursor): Add new member "cfa_is_sp" to mark the case
when the (unsaved) stack-pointer is the CFA.

(Logical change 1.253)
2004-08-20 11:23:15 +00:00
ibm.com!masbock
a766efd844 (Logical change 1.249) 2004-08-19 13:39:10 +00:00
ibm.com!masbock
58e37267be Initial revision 2004-08-19 13:39:10 +00:00
homeip.net!davidm
78e2f93811 (ALIAS): New macro.
(Logical change 1.246)
2004-08-19 10:45:23 +00:00
bea.com!thallgre
4b21fc9b3d (unw_strerror): Declare.
(Logical change 1.245)
2004-08-18 15:16:46 +00:00
homeip.net!davidm
34fa122ac2 Regenerate.
(Logical change 1.241)
2004-08-17 15:34:28 +00:00
hp.com!davidm
6a269233f8 (struct ia64_global_unwind_state): Group together in a single struct the
read-only registers whose addresses may be used as save-locations.

(Logical change 1.229)
2004-05-06 20:24:01 +00:00
mostang.com!davidm
582cfb1e62 (tdep_find_proc_info): Expand into dwarf_find_proc_info() only
when UNW_LOCAL_ONLY is defined.  Otherwise, expand
	into call via address-space's find_proc_info() callback.
(tdep_put_unwind_info): Likewise.  Delete bogus prototype.

(Logical change 1.224)
2004-05-05 01:54:53 +00:00
mostang.com!davidm
aa00843a30 Rename: src/ia64/rse.h -> include/ia64/rse.h
(Logical change 1.221)
2004-05-04 22:16:57 +00:00
mostang.com!davidm
2768b34dbe Initial revision 2004-05-04 22:16:57 +00:00
mostang.com!davidm
ad6f2319b9 (unw_tdep_getcontext): On HP-UX, use getcontext() instead of
_Uia64_getcontext().

(Logical change 1.220)
2004-05-04 20:14:02 +00:00
mostang.com!davidm
c5c4fc991c (_U_dyn_op): Avoid the use of C99-style initializers in installed
header-files.  Doing so may cause problems with C++ or
	older C compilers.  Reported by Todd Miller.

(Logical change 1.216)
2004-04-28 01:24:34 +00:00
hp.com!davidm
9a9618401f (mutex_init): Explicitly test function-pointer against 0 since that avoids
a compiler-warning from icc v8.0.
(mutex_lock): Likewise.
(mutex_unlock): Likewise.

(Logical change 1.213)
2004-04-23 00:12:51 +00:00
hp.com!davidm
2de1768e52 Regenerate.
(Logical change 1.205)
2004-04-20 16:53:44 +00:00
mostang.com!davidm
a1ce4c307e (unw_tdep_getcontext): Direct it to UNW_ARCH_OBJ(getcontext).
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
1c00cf562e (unw_tdep_save_loc): Add new member "nat_bitnr". Define the
other 7 bytes (which were always there in unw_save_loc_t due
	to padding) as reserved for future use.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
7356cf80a5 (struct cursor): Add member "nat_bitnr".
(tdep_uc_addr): Add (optional) nat_bitnr pointer argument.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
50f7edcce5 (enum ia64_script_insn_opcode): Move Gscript-ia64.c.
(IA64_MAX_SCRIPT_LEN): Lower it by 4 since we no longer need separate
	instructions to update the NaT locations.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
hp.com!davidm
5f45c42420 (Debug): Add back lost Debug() macro for the !UNW_DEBUG case.
(Logical change 1.163)
2004-02-14 04:44:05 +00:00
hp.com!davidm
fe039e2c1f Move all inline functions to dwarf_i.h.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
b88369b831 Initial revision 2004-01-30 00:01:24 +00:00
hp.com!davidm
86af3a3048 Declare functions such that it is possible to take their addresses.
(tdep_init): New macro.
(tdep_access_reg):  Likewise.
(tdep_access_fpreg): Likewise.

(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
6bcc75010b Declare functions such that it is possible to take their addresses.
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
b5d64dabf3 Declare functions in the same way as we do in other header-files now, such that
it's possible to take the address of functions.
(debug): Remove this macro (no longer used).
(fetch8): Move to remote.h.
(fetch16): Likewise.
(fetch32): Likewise.
(fetchw): Likewise.

(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
78cec36290 (struct cursor): Add member sigcontext_format.
(dwarf_putfp): Fix typo.
(dwarf_getfp): Mark with C preprocessor warning while it's not fully
	implemented.  Check for NULL-location first.
(dwarf_putfp): Likewise.
(dwarf_get): Likewise.
(dwarf_put): Likewise.
(tdep_needs_initialization): New macro.
(tdep_init): Likewise.
(tdep_get_as): Likewise.
(tdep_get_as_arg): Likewise.
(tdep_needs_initialization): Declare.

(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
ab847fe68e (Logical change 1.162) 2004-01-30 00:01:24 +00:00
hp.com!davidm
107cf10470 (DWARF_REGNUM_MAP_LENGTH): New macro.
(dwarf_to_unw_regnum_map): Move to dwarf_i.h.
(dwarf_to_unw_regnum): Likewise.

(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm
29a98b6cc3 (unw_addr_space_t.shared_object_removals): Adjust type to
"unsigned long long" to match glibc.

(Logical change 1.161)
2004-01-24 07:27:00 +00:00
hp.com!davidm
6ea8ff61e0 (unw_set_caching_policy): Make it a regular object, not an
arch-object.  It can't be the latter because it needs
	to initialize libunwind if it's the first call to libunwind.

(Logical change 1.160)
2004-01-24 07:22:30 +00:00
mostang.com!davidm
c325d9cbc2 Regenerate.
(Logical change 1.159)
2004-01-24 06:45:18 +00:00
hp.com!davidm
c44d77055c Move debug defines after definition of UNWI_ARCH_OBJ().
Replace tdep_debug_level with unwi_debug_level and declare
it here.

(Logical change 1.158)
2004-01-22 08:36:15 +00:00
hp.com!davidm
d3725a7a98 (unw_tdep_is_fpreg): Move after include of "libunwind-common.h".
(Logical change 1.158)
2004-01-22 08:36:15 +00:00
hp.com!davidm
25b8795a4a (tdep_debug_level): Remove.
(Logical change 1.158)
2004-01-22 08:36:15 +00:00
mostang.com!davidm
5f0eebb2b4 Initial revision 2004-01-21 01:05:07 +00:00
mostang.com!davidm
53b6d61c63 Drop argument names from prototypes to reduce namespace pollution.
Define libunwind routines such that it is possible to take their
addresses.

(unw_is_fpreg): Move it closer to unw_getcontext().  Both are special
	in the sense that they may be implemented as macros.

(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
7915b799c8 Drop argument names from prototypes to reduce namespace pollution.
Define libunwind routines such that it is possible to take their
addresses.

(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
64854d0d7c Drop argument names from prototypes to reduce namespace pollution.
(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
24ac6e693d (unw_tdep_is_fpreg): Define it as an external function (a macro would
have to evaluate the argument multiple times so it's better
	to implement it out-of-line).

(Logical change 1.156)
2004-01-21 01:05:07 +00:00
mostang.com!davidm
66e78e1ca3 (Logical change 1.156) 2004-01-21 01:05:07 +00:00
mostang.com!davidm
cd7dcba0ed Rename AO_TS_T to AO_TS_t (gets syntax coloring right... ;-).
(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
40fcb9b7e5 (unw_addr_space.cache_generation): Declare as AO_t instead of AO_T
(gets syntax-coloring right ;-).

(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
195eb64285 (struct mempool): Move "reserve" and "num_free" next to
each other to minimize padding.

(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
82cfd4862f (cmpxchg_ptr): Use a union to do the pointer-casting so that
GCC knows it can't use ANSI-C aliasing rules.

(Logical change 1.155)
2004-01-20 23:50:00 +00:00
mostang.com!davidm
c1bbbb2a3a (unwi_dyn_validate_cache): Declare.
(Logical change 1.154)
2004-01-20 23:32:28 +00:00
mostang.com!davidm
2d4098ac19 (unw): Remove debug_level.
(tdep_debug_level): Declare it as a separate variable.  This
	ensures that only one debug-level variable is in use
	at any given time, no matter what combination of
	local-only vs generic and static vs. dynamic libraries
	are in use.
(unw): Document why it's not an UNW_ARCH_OBJ().

(Logical change 1.154)
2004-01-20 23:32:28 +00:00
mostang.com!davidm
47c32cd07f (_Uia64_search_unwind_table): Make it an UNW_OBJ() instead.
(unw_search_ia64_unwind_table): Declare.

(Logical change 1.154)
2004-01-20 23:32:28 +00:00
hp.com!davidm
ea78d27d97 (unwi_dyn_remote_find_proc_info): Drop GENERATION argument.
(Logical change 1.153)
2004-01-20 01:51:17 +00:00
hp.com!davidm
a2301f6f57 (struct unw_addr_space.shared_object_removals) [!UNW_REMOTE_ONLY]: New member.
(Logical change 1.153)
2004-01-20 01:51:17 +00:00
hp.com!davidm
23024e28c0 Add includes of <string.h> and <unistd.h>.
(NORETURN): New macro.
(PROTECTED): Likewise.
(print_error): New inline routine.
(fetch8): Provide UNW_LOCAL_ONLY-version.
(fetch16): Likewise.
(fetch32): Likewise.
(fetchw): Likewise.
(_U_dyn_info_list_addr): Declare.

(Logical change 1.151)
2004-01-03 10:50:24 +00:00
hp.com!davidm
9b52d39425 (tdep_find_proc_info): Declare it as a regular object (not arch-obj).
(tdep_uc_addr): Likewise.
(tdep_put_unwind_info): Define only if not UNW_LOCAL_ONLY.
(unw): Declare as regular object.

(Logical change 1.151)
2004-01-03 10:50:24 +00:00
mostang.com!davidm
b9d2cc7919 Drop HIDDEN from declarations, only the definitions need it.
(Logical change 1.150)
2003-12-21 07:57:42 +00:00
mostang.com!davidm
aa800d423d (unw): Mark it as HIDDEN.
(Logical change 1.148)
2003-12-21 07:21:28 +00:00
mostang.com!davidm
e6aedd3089 (dyn_generation): Drop bogus comment.
(Logical change 1.147)
2003-12-21 05:53:57 +00:00
mostang.com!davidm
d5db6013ff (UNW_PI_FLAG_FIRST_TDEP_BIT): Fix comment.
(Logical change 1.147)
2003-12-21 05:53:57 +00:00
hp.com!davidm
468aaccf17 Switch over to DWARF-based unwinder.
(Logical change 1.146)
2003-12-20 11:50:00 +00:00
hp.com!davidm
45fccdc2f3 (unw_dyn_dwarf_fde_info_t): New type to handle (pre-parsed) DWARF
unwind-info.
(unw_dyn_info_t): Add member "dfi".

(Logical change 1.145)
2003-12-20 11:43:08 +00:00
hp.com!davidm
eb51b4294a (Logical change 1.145) 2003-12-20 11:43:08 +00:00
hp.com!davidm
0bbb2fab68 Initial revision 2003-12-20 11:38:49 +00:00
hp.com!davidm
b6adfb75c4 Declare mempool-routines as HIDDEN.
(Logical change 1.143)
2003-12-20 11:35:09 +00:00
hp.com!davidm
7d3de049e6 (Debug): New macro. This one automates some of usual stuff that
gets printed during debugging and is supposed to produce
	a nicer format.  Eventually, we'll switch everything over
	from debug() to Debug().
(extract_dynamic_proc_info): We need both generic and local-only.
(dyn_remote_find_proc_info): Likewise.
(dyn_remote_put_unwind_info): Likewise.

(Logical change 1.142)
2003-12-20 11:32:43 +00:00
hp.com!davidm
fbe40e537f (unw_word_t): Let the architecture-specific header take care of
defining this type---it's needed very early on.
(unw_proc_info_t): Add architecture-specific "extra" member.  Empty
	for ia64, so no ABI change.
Don't include libunwind-dynamic.h here.

(Logical change 1.140)
2003-12-20 11:20:42 +00:00
hp.com!davidm
77b06d67aa (unw_word_t): Declare it here.
(unw_tdep_proc_info_t): New type.
Include "libunwind-dynamic.h" here.

(Logical change 1.140)
2003-12-20 11:20:42 +00:00
mostang.com!davidm
bcdedf6b28 Switch from __sync_val_compare_and_swap() to
__sync_bool_compare_and_swap() since that's we need nowadays anyhow
and since that's also provided by ecc v7.0.

(Logical change 1.138)
2003-12-05 06:42:28 +00:00
hp.com!davidm
ab0fdbbb4c (Logical change 1.135) 2003-12-04 07:44:21 +00:00
hp.com!davidm
1a7d4ee7ed Initial revision 2003-12-04 07:44:21 +00:00
hp.com!davidm
7549674169 (unw_get_proc_info_by_ip): New routine.
(Logical change 1.133)
2003-12-04 07:34:21 +00:00
hp.com!davidm
1334cae324 (HAVE___THREAD): Force it off for now---the per-thread cache uses
about 128KB of thread-local storage for each and every
	thread, even if a thread never ever needs to unwind its
	stack.  Seems a bit much.
(ALWAYS_INLINE): New macro which can be used to force inlining
	on compilers that support it.

(Logical change 1.132)
2003-12-04 07:30:39 +00:00