Do not call mmap_cache functions until mmap_cache_enable is invoked. Change struct mmap_cache_t into a proxy structure, move all mmap_cache data from struct tcb inside this new structure. * Makefile.am (strace_SOURCES): Move mmap_cache.c and mmap_cache.h to libstrace_a_SOURCES. * defs.h (struct tcb): Remove mmap_cache_size and mmap_cache_generation * fields. * mmap_cache.h (struct mmap_cache_t): Rename to struct mmap_cache_entry_t, create a new struct mmap_cache_t, all users updated. (mmap_cache_delete): Remove. * mmap_cache.c (mmap_cache_delete): Rename to delete_mmap_cache, add static qualifier. (build_mmap_cache): Merge into mmap_cache_rebuild_if_invalid. * strace.c (droptcb): Replace mmap_cache_delete invocation with tcp->mmap_cache->free_fn.
strace - the linux syscall tracer
This is strace -- a diagnostic, debugging and instructional userspace utility with a traditional command-line interface for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.
strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYING for details.
See the file NEWS for information on what has changed in recent versions.
Please read the file INSTALL-git for installation instructions.
The user discussion and development of strace take place on the strace mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to strace-devel@lists.strace.io. The mailing list archives are available at https://lists.strace.io/pipermail/strace-devel/ and other archival sites.
The GIT repository of strace is available at GitHub and GitLab.
The latest binary strace packages are available in many repositories, including OBS, Fedora rawhide, and Sisyphus.