[PATCH] unwind: disable stack trace with multiple personalities
Luca Clementi
luca.clementi at gmail.com
Tue Jun 10 05:05:38 UTC 2014
* unwind.c: disable stack tracing when tracing multiple
personalities
---
unwind.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/unwind.c b/unwind.c
index ba7b579..aff6c5a 100644
--- a/unwind.c
+++ b/unwind.c
@@ -269,6 +269,12 @@ rebuild_cache_if_invalid(struct tcb *tcp, const char *caller)
void
unwind_cache_invalidate(struct tcb* tcp)
{
+#if SUPPORTED_PERSONALITIES > 1
+ if (tcp->currpers != DEFAULT_PERSONALITY) {
+ /* disable strack trace */
+ return;
+ }
+#endif
mmap_cache_generation++;
DPRINTF("tgen=%u, ggen=%u, tcp=%p, cache=%p", "increment",
tcp->mmap_cache_generation,
@@ -566,6 +572,12 @@ queue_print(struct queue_t *queue)
void
unwind_print_stacktrace(struct tcb* tcp)
{
+#if SUPPORTED_PERSONALITIES > 1
+ if (tcp->currpers != DEFAULT_PERSONALITY) {
+ /* disable strack trace */
+ return;
+ }
+#endif
if (tcp->queue->head) {
DPRINTF("tcp=%p, queue=%p", "queueprint", tcp, tcp->queue->head);
queue_print(tcp->queue);
@@ -582,6 +594,12 @@ unwind_print_stacktrace(struct tcb* tcp)
void
unwind_capture_stacktrace(struct tcb *tcp)
{
+#if SUPPORTED_PERSONALITIES > 1
+ if (tcp->currpers != DEFAULT_PERSONALITY) {
+ /* disable strack trace */
+ return;
+ }
+#endif
if (tcp->queue->head)
error_msg_and_die("bug: unprinted entries in queue");
--
1.7.9.5
More information about the Strace-devel
mailing list