aboutsummaryrefslogtreecommitdiffstats
path: root/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'mem.c')
-rw-r--r--mem.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/mem.c b/mem.c
index 6ecd363c..2b684b15 100644
--- a/mem.c
+++ b/mem.c
@@ -60,6 +60,11 @@ static int
print_mmap(struct tcb *tcp, long *u_arg, unsigned long long offset)
{
if (entering(tcp)) {
+#ifdef USE_LIBUNWIND
+ if (stack_trace_enabled)
+ delete_mmap_cache(tcp);
+#endif
+
/* addr */
if (!u_arg[0])
tprints("NULL, ");
@@ -189,6 +194,12 @@ sys_munmap(struct tcb *tcp)
tprintf("%#lx, %lu",
tcp->u_arg[0], tcp->u_arg[1]);
}
+#ifdef USE_LIBUNWIND
+ else {
+ if (stack_trace_enabled)
+ delete_mmap_cache(tcp);
+ }
+#endif
return 0;
}
@@ -200,6 +211,12 @@ sys_mprotect(struct tcb *tcp)
tcp->u_arg[0], tcp->u_arg[1]);
printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
}
+#ifdef USE_LIBUNWIND
+ else {
+ if (stack_trace_enabled)
+ delete_mmap_cache(tcp);
+ }
+#endif
return 0;
}