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

9 commits

Author SHA1 Message Date
Tommi Rantala
e61c6f69c3 Fix function name duplication in Debug() output
Fix function name duplication in Debug() output that was caused by
manually prepending the debug message with the function name.
2012-08-21 23:04:07 +03:00
Paul Pluzhnikov
84d4150668 Allow caller to block signals.
Greetings,

We use libunwind just for stack traces (I suspect many others do as well).

The use pattern is:

GetStackTrace(void** result, int max_depth)
{
...
  unw_getcontext(&uc);
  unw_init_local(&cursor, &uc);

  while (n < max_depth) {
    if (unw_get_reg(&cursor, UNW_REG_IP, (unw_word_t *) &ip) < 0) {
      break;
    }
    result[n++] = ip;
    if (unw_step(&cursor) <= 0) {
      break;
    }
  }

Given this usage, it is quite convenient for us to block signals (or
prevent signal handlers from re-entering libunwind by other means) at the
"top level", which makes most of the sigprocmask calls performed by
libunwind itself unneccessary.

The second patch in this series adds a configure option which removes most
of the sigprocmask calls.

Attached patch is a preliminary for it -- consolidating all of the
"sigprocmask; mutex_lock;" sequences into lock_acquire and "mutex_unlock;
sigprocmask;" sequences into lock_release.

Thanks,
--
Paul Pluzhnikov

commit 402d15b123d54a7669db7cf17a76dd315094e472
Author: Paul Pluzhnikov <ppluzhnikov@google.com>
Date:   Mon Sep 21 10:18:28 2009 -0700

    Replace "sigprocmask + mutext_lock" with a single lock_acquire.
    Likewise, replace "mutext_unlock + sigprocmask" with lock_release.
2009-09-25 09:35:31 -07:00
Arun Sharma
ec53de82ec [PATCH] Avoiding name conflict with the GNU-specific dprintf in stdio.h
Signed-off-by: Yang Zhang <yaaang@gmail.com>
2009-03-16 21:37:11 -07:00
hp.com!davidm
ee6eeb4f7d (get_script_cache): Use HAVE_ATOMIC_H instead of __linux && __KERNEL__.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
23405d02ec (get_script_cache): Fix typo in Debug() statement (missing argument).
(put_script_cache): Fix typo in argument name.

2005/04/07 12:19:38-07:00 hp.com!davidm
(ia64_get_cache_proc_info): Move it to near the end of the file.
(script_init): Also call ia64_fetch_proc_info() if the script was
	found in the cache but it's empty (count == 0 and NULL
	unwind_info pointer).  Also invoke build_script() if
	script has no instructions yet (count==0).  Add assertion
	to ensure that build_script() never returns an empty
	script.
(ia64_cache_proc_info): New function to cache the proc_info only.

2005/02/23 14:40:44-08:00 mostang.com!davidm
Adjust for sigset_t to intrmask_t renaming.

2005/02/23 13:10:05-08:00 mostang.com!davidm
Adjust for "ia64_rse" to "rse" prefix change.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
homeip.net!davidm
f9494563e7 Rename: src/ia64/Gscript-ia64.c -> src/ia64/Gscript.c
(Logical change 1.241)
2004-08-17 15:34:28 +00:00
mostang.com!davidm
6fd2008861 Rename ia64_cursor -> cursor.
}(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm
793c8a3005 Initial revision 2002-12-12 09:17:41 +00:00
mostang.com!davidm
8f82941a84 (script_finalize): Also initialize the proc_info.
(build_script): For signal-frames, generate an instruction that will set
	is_signal_frame to TRUE.

2002/12/11 12:27:36-08:00 mostang.com!davidm
Rename: src/ia64/script.c -> src/ia64/Gscript.c

(Logical change 1.30)
2002-12-12 09:17:41 +00:00