print_mmap(struct tcb *tcp, long *u_arg, unsigned long long offset)
{
if (entering(tcp)) {
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled) {
- unwind_capture_stacktrace(tcp);
- unwind_cache_invalidate(tcp);
- }
-#endif
-
/* addr */
if (!u_arg[0])
tprints("NULL, ");
if (entering(tcp)) {
tprintf("%#lx, %lu",
tcp->u_arg[0], tcp->u_arg[1]);
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled)
- unwind_capture_stacktrace(tcp);
-#endif
- }
-#ifdef USE_LIBUNWIND
- else {
- if (stack_trace_enabled)
- unwind_cache_invalidate(tcp);
}
-#endif
return 0;
}
tprintf("%#lx, %lu, ",
tcp->u_arg[0], tcp->u_arg[1]);
printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled)
- unwind_capture_stacktrace(tcp);
-#endif
}
-#ifdef USE_LIBUNWIND
- else {
- if (stack_trace_enabled)
- unwind_cache_invalidate(tcp);
- }
-#endif
return 0;
}
printargv(tcp, tcp->u_arg[2]);
tprints("]");
}
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled) {
- unwind_capture_stacktrace(tcp);
- }
-#endif
}
-#ifdef USE_LIBUNWIND
- else {
- if (stack_trace_enabled) {
- unwind_cache_invalidate(tcp);
- }
- }
-#endif
-
return 0;
}
goto ret;
}
+#ifdef USE_LIBUNWIND
+ if (stack_trace_enabled) {
+ if (tcp->s_ent->sys_flags & STACKTRACE_CAPTURE_ON_ENTER)
+ unwind_capture_stacktrace(tcp);
+ }
+#endif
+
printleader(tcp);
if (tcp->qual_flg & UNDEFINED_SCNO)
tprintf("%s(", undefined_scno_name(tcp));
if (Tflag || cflag)
gettimeofday(&tv, NULL);
+#ifdef USE_LIBUNWIND
+ if (stack_trace_enabled) {
+ if (tcp->s_ent->sys_flags & STACKTRACE_INVALIDATE_CACHE)
+ unwind_cache_invalidate(tcp);
+ }
+#endif
+
#if SUPPORTED_PERSONALITIES > 1
update_personality(tcp, tcp->currpers);
#endif