1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-07-01 13:31:43 +02:00
Commit graph

1210 commits

Author SHA1 Message Date
hp.com!davidm 368c9eeadc Fix sigsetjmp() for Linux kernels with the stream-lined syscall
entry/exit path.  Without this fix, unw_resume() failed to restore
most scratch register and caused test-setjmp to fail.

BKrev: 3f7278420gm7LAAf21d-L_Iuu7Zu_g
2003-09-25 05:08:18 +00:00
hp.com!davidm 1c5c60b8ad Add some more debug statements and fix some typos.
(Logical change 1.103)
2003-09-25 05:08:18 +00:00
hp.com!davidm 350ae98340 (local_resume): Clear IA64_SC_FLAG_IN_SYSCALL before resuming via
sigreturn().  This is needed to ensure that all scratch-regs
	get restored.  Also add some more debug statements.

(Logical change 1.103)
2003-09-25 05:08:18 +00:00
hp.com!davidm d09c9dcec9 Fix a performance regression in ia64_find_save_locs() which was
caused by the recent bug fix for the problem where a get_proc_info()
failure would cause a script to be created but not fully initialized.

BKrev: 3f72131a0z5c6mgTJsyoxCkNwHfgAA
2003-09-24 21:56:42 +00:00
hp.com!davidm 048d4239ae Collect 20 samples per run.
(Logical change 1.102)
2003-09-24 21:56:42 +00:00
hp.com!davidm d0fddf5de8 (ia64_find_save_locs): Only call ia64_fetch_proc_info() when we really
have to (i.e., if we don't have cached info).  Otherwise,
	the unnecessary calls cause a performance regression.

(Logical change 1.102)
2003-09-24 21:56:42 +00:00
hp.com!davidm 01b02dde89 Regenerate.
(Logical change 1.101)
2003-09-24 21:51:53 +00:00
hp.com!davidm 285a4f5a90 Document the __tls_get_addr unresolved reference problem and its
workaround (--disable-__thread).

BKrev: 3f7211f9WH9Qcnnwvbg7XZrxUqTbSg
2003-09-24 21:51:53 +00:00
hp.com!davidm 3f9c0bcda6 Document the __tls_get_addr problem and its workaround
(--disable-__thread).

(Logical change 1.101)
2003-09-24 21:51:53 +00:00
hp.com!davidm d75c356fc8 (LIBUNWIND___THREAD): Check $enable___thread instead of $use__thread.
(Logical change 1.101)
2003-09-24 21:51:53 +00:00
hp.com!davidm 1be40c4ff6 Regenerate.
(Logical change 1.100)
2003-09-24 20:05:17 +00:00
hp.com!davidm 8c1998a4e4 Regenerate tests/Makefile.in.
BKrev: 3f71f8fdprmJOkq4wWI63wf71SysnQ
2003-09-24 20:05:17 +00:00
mostang.com!davidm dce915e1f6 Update.
(Logical change 1.99)
2003-09-24 05:03:10 +00:00
mostang.com!davidm e15cb5ce54 Regenerate L files in tests/.
BKrev: 3f71258e3bOkW6VVLUiTwGUCKVlE8A
2003-09-24 05:03:10 +00:00
mostang.com!davidm 12876ef781 (Logical change 1.98) 2003-09-24 05:02:14 +00:00
mostang.com!davidm ee803e7acc Initial revision 2003-09-24 05:02:14 +00:00
mostang.com!davidm dc8e7b65af Add {G,L}perf-simple.c --- a simple performance tester.
BKrev: 3f712556eIGh9pZTC_I1mItZQYqbaw
2003-09-24 05:02:14 +00:00
mostang.com!davidm e1bdc44e0f (noinst_PROGRAMS_cdep): Add Gperf-simple and Lperf-simple.
(Logical change 1.98)
2003-09-24 05:02:14 +00:00
mostang.com!davidm 2eec126201 Add copyright message.
(Logical change 1.97)
2003-09-19 06:56:39 +00:00
mostang.com!davidm 9bd1b348b0 Add copyright message to test-proc-info.c.
BKrev: 3f6aa8a7M8xx5tjWGNj4nOAVuSYuOQ
2003-09-19 06:56:39 +00:00
mostang.com!davidm ef593732e7 (Logical change 1.96) 2003-09-19 06:56:12 +00:00
mostang.com!davidm 9c8195cb41 Initial revision 2003-09-19 06:56:12 +00:00
mostang.com!davidm e323f3fae2 Fix script cache bug found by Brian Sumner: unw_flush_cache() would
(eventually) clear the IP values of all scripts, but failed to
update the hash/collision-chain info, which could result in
loops in the collision-chains.  Fixed by flushing the cache under
the global lock and since things are locked now, we can update the
collision-chain etc. without fear of races.  Added test-flush-cache
to test for this error-condition.



BKrev: 3f6aa88cQRr-NcDXg_8mM3dN2esAQQ
2003-09-19 06:56:12 +00:00
mostang.com!davidm b3c1bf3f75 (flush_script_cache): Drop addr_space_t argument. Initialize
hash-table, collision-chains, and hash-table in addition
	to clearing the script's IP value.  The latter wasn't nearly
	sufficient because it could cause loops on the collision
	chain...
(get_script_cache): Also lock the cache if global caching is in
	effect.  Take additional "saved_sigmaskp" argument.
	After flushing the cache, update the cache generation
	here.
(put_script_cache): New function.
(ia64_get_cached_proc_info): Adjust for get_script_cache() and
	put_script_cache() changes.
(ia64_find_save_locs): Ditto.
(ia64_script_cache_init): Call flush_script_cache() instead of
	opening-coding the equivalent code.

(Logical change 1.96)
2003-09-19 06:56:12 +00:00
mostang.com!davidm 29358553a9 (check_PROGRAMS_common): Mention test-flush-cache.
(Logical change 1.96)
2003-09-19 06:56:12 +00:00
mostang.com!davidm dcd786be80 R
(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm 9339de49da (Logical change 1.95) 2003-09-18 06:09:22 +00:00
mostang.com!davidm b36317df37 Initial revision 2003-09-18 06:09:22 +00:00
mostang.com!davidm c15421a046 Fix bug found by Brian Sumner: if get_proc_info() returned a
a failure status, we ended up bugging out at a time when the
script was already created, but not fully initialized.  To prevent
this, the proc-info is now obtained early on, i.e., before creating
the script, so that if the proc-info cannot be obtained, we can bug
out without bad side-effects.  Also, I added a test-program
(test-proc-info) which verifies that proc-info lookup failures are
not cached (which we don't want, because it could turn temporary
failures into permanent ones and would break UNW_ESTOPUNWIND).


BKrev: 3f694c12mGQ-jHr9HOtB4YXFHeLdMw
2003-09-18 06:09:22 +00:00
mostang.com!davidm 510a7c82f7 (unw_is_signal_frame): Call ia64_fetch_proc_info() before creating
the state-record.

(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm cbf1d7d56b (parse_dynamic): Call ia64_fetch_proc_info() before creating the
state-record.
(ia64_fetch_proc_info): Rename from get_proc_info().
(create_state_record_for): Assert that c->pi_valid is TRUE at the
	time of entry.  Remove call to get_proc_info().

(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm 46f5783f5d (ia64_find_save_locs): Call ia64_fetch_proc_info() early on and
bug out if it fails (before creating a new script).

(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm d6946f580b (ia64_fetch_proc_info): New procedure.
(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm 6f01170a26 (check_PROGRAMS_common): Mention test-proc-info.
(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm 0cf47a160f Add missing initialization of global script cache when creating a
new address-space.

BKrev: 3f694a25umn-Ju2rV_HQcTzxdHEF7g
2003-09-18 06:01:09 +00:00
mostang.com!davidm 117b21a1cf (unw_create_addr_space): Initialize global script-cache here (while
there are no other threads using the cache).

(Logical change 1.94)
2003-09-18 06:01:09 +00:00
mostang.com!davidm 0fc6931c35 Fix two bugs found by Brian Sumner: nasty off-by-1 error in
rotate_gr() and bad check for -UNW_ESTOPUNWIND in ia64_find_save_locs().

BKrev: 3f43b7b6bW6Pi_LqDUH7ee9JLEZVNQ
2003-08-20 18:02:30 +00:00
mostang.com!davidm 4d40a1cfc8 (rotate_gr): Fix off-by-1 bug and simplify the function.
(Logical change 1.93)
2003-08-20 18:02:30 +00:00
mostang.com!davidm 0b65016a37 (ia64_find_save_locs): Fix typo: check for -UNW_ESTOPUNWIND.
(Logical change 1.93)
2003-08-20 18:02:30 +00:00
hp.com!davidm ba15ba3189 Fix 32-bit truncation bugs that showed on 32-bit platforms.
BKrev: 3f0b468c3VGcLWKyM_ekm978YimfIw
2003-07-08 22:32:44 +00:00
hp.com!davidm a157d632f7 (desc_is_active): Need to cast 1 to (unw_word_t) before shifting it by
a value that is potentially > 31.  Casting it to (unsigned long)
	is not enough on 32-bit platforms.
(create_state_record_for): Cast 0xf to (unw_word_t) instead of
	(unsigned long) to avoid losing bits on 32-bit platforms.

(Logical change 1.92)
2003-07-08 22:32:44 +00:00
hp.com!davidm 98b23722ae Add support for new pt_regs layout of the Linux kernel.
BKrev: 3f0b45cej_awIYqXuJiWSoCvTnVxZQ
2003-07-08 22:29:34 +00:00
hp.com!davidm 09aa4183f6 (unw_get_save_loc): Also check for ABI_MARKER_OLD_LINUX_SIGTRAMP.
Check against UNW_IA64_AR_SSD instead of UNW_IA64_AR_26.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm 666c61846c (rbs_cover_and_flush): Cast unw_word_t values to (unsigned long) before
printing them.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm f3b8566331 (linux_interrupt): Add "marker" argument. Support both old and new
Linux kernel "struct pt_regs" layout.
(update_frame_state): Handle ABI_MARKER_OLD_LINUX_SIGTRAMP and
	ABI_MARKRE_OLD_LINUX_INTERRUPT.  Cast values of type unw_word_t
	to (unsigned long) before printing them.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm 3053ee9de1 (ia64_scratch_loc): Split up into linux_scratch_loc() and hpux_scratch_loc().
(linux_scratch_loc): Add support for new pt_regs layout.
(access_nat): Check last_abi_marker instead of sigcontext_addr and
	address-space ABI.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm 18626b8def (UNW_IA64_AR_SSD): New alias for ar26.
(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm 6536dbab47 (LINUX_SC_AR_SSD_OFF): Rename from LINUX_SC_AR_26_OFF.
(LINUX_OLD_PT_*): Rename from LINUX_PT_*.
(LINUX_PT_*): Add definitions for new pt_regs layout.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
hp.com!davidm c7db73d180 (ABI_MARKER_OLD_LINUX_SIGTRAMP): Rename from ABI_MARKER_LINUX_SIGTRAMP.
(ABI_MARKER_OLD_LINUX_INTERRUPT): Rename from ABI_MARKER_LINUX_INTERRUPT.
(ABI_MARKER_LINUX_SIGTRAMP): Define with Linux ABI value (3).
(ABI_MARKER_LINUX_INTERRUPT): Ditto.

(Logical change 1.91)
2003-07-08 22:29:34 +00:00
mostang.com!davidm 3f25a5de60 Merge bk://unwind@bkbits.net/libunwind
into panda.mostang.com:/data/home/davidm/src/unwind/libunwind

2003/06/03 14:35:33-07:00 mostang.com!davidm
Fix bug reported by Brian Sumner:

Replace state_record_pool with reg_state_pool.  This avoids allocating
more than the necessary amount of memory when pushing register states.

BKrev: 3edd14c3Z03JVOhew5snOIkekLUxfg
2003-06-03 21:36:03 +00:00