Showing preview only (7,059K chars total). Download the full file or copy to clipboard to get everything.
Repository: rr-debugger/rr
Branch: master
Commit: 37f44c7afff5
Files: 1609
Total size: 6.5 MB
Directory structure:
gitextract__6i1v_s1/
├── .android/
│ ├── Dockerfile
│ ├── README.md
│ └── build.sh
├── .buildkite/
│ ├── .gitignore
│ ├── CTestCostData.txt
│ ├── Manifest.toml
│ ├── Project.toml
│ ├── capture_tmpdir.jl
│ └── pipeline.yml
├── .clang-format
├── .github/
│ └── workflows/
│ ├── android-build.yml
│ ├── build-and-test-main.yml
│ └── build-and-test.yml
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── Vagrantfile
├── configure
├── include/
│ └── rr/
│ └── rr.h
├── release-process/
│ ├── README.md
│ ├── distro-configs/
│ │ ├── centos9.json
│ │ ├── debian11.json
│ │ ├── debian12.json
│ │ ├── ubuntu20-lts.json
│ │ ├── ubuntu22-lts.json
│ │ ├── ubuntu24-lts.json
│ │ └── ubuntu24.10.json
│ ├── prepare-release.py
│ ├── rr-testing-cloud-formation.json
│ ├── rr-testing.sh
│ ├── test-data/
│ │ ├── rr-test-doc.odt
│ │ └── test.html
│ └── test-system.py
├── rr.spec
├── scripts/
│ ├── checkpoint-visualizer.html
│ ├── github-actions-CTestCostData.txt
│ ├── github-actions-build.sh
│ ├── github-actions-test.sh
│ ├── reformat.sh
│ ├── rr-collect-symbols.py
│ ├── rr-gdb-script-host.py
│ ├── rr_completion
│ ├── rr_completion.zsh
│ ├── signal-rr-recording.sh
│ ├── update-gh-pages.sh
│ ├── zen_workaround.py
│ └── zen_workaround.service
├── snap/
│ └── snapcraft.yaml
├── src/
│ ├── AddressSpace.cc
│ ├── AddressSpace.h
│ ├── AutoRemoteSyscalls.cc
│ ├── AutoRemoteSyscalls.h
│ ├── BpfMapMonitor.h
│ ├── BreakpointCondition.h
│ ├── BuildidCommand.cc
│ ├── CPUFeaturesCommand.cc
│ ├── CPUIDBugDetector.cc
│ ├── CPUIDBugDetector.h
│ ├── CPUs.cc
│ ├── CPUs.h
│ ├── Command.cc
│ ├── Command.h
│ ├── CompressedReader.cc
│ ├── CompressedReader.h
│ ├── CompressedWriter.cc
│ ├── CompressedWriter.h
│ ├── ContextSwitchEvent.cc
│ ├── ContextSwitchEvent.h
│ ├── DebuggerExtensionCommand.cc
│ ├── DebuggerExtensionCommand.h
│ ├── DebuggerExtensionCommandHandler.cc
│ ├── DebuggerExtensionCommandHandler.h
│ ├── DiversionSession.cc
│ ├── DiversionSession.h
│ ├── DumpCommand.cc
│ ├── DumpCommand.h
│ ├── Dwarf.cc
│ ├── Dwarf.h
│ ├── ElfReader.cc
│ ├── ElfReader.h
│ ├── EmuFs.cc
│ ├── EmuFs.h
│ ├── Event.cc
│ ├── Event.h
│ ├── ExportImportCheckpoints.cc
│ ├── ExportImportCheckpoints.h
│ ├── ExtraRegisters.cc
│ ├── ExtraRegisters.h
│ ├── FdTable.cc
│ ├── FdTable.h
│ ├── FileMonitor.cc
│ ├── FileMonitor.h
│ ├── FileNameCommand.cc
│ ├── Flags.cc
│ ├── Flags.h
│ ├── GdbInitCommand.cc
│ ├── GdbServer.cc
│ ├── GdbServer.h
│ ├── GdbServerConnection.cc
│ ├── GdbServerConnection.h
│ ├── GdbServerExpression.cc
│ ├── GdbServerExpression.h
│ ├── GdbServerRegister.h
│ ├── HasTaskSet.cc
│ ├── HasTaskSet.h
│ ├── HelpCommand.cc
│ ├── LldbInitCommand.cc
│ ├── LsCommand.cc
│ ├── MagicSaveDataMonitor.cc
│ ├── MagicSaveDataMonitor.h
│ ├── MemoryRange.h
│ ├── MmappedFileMonitor.cc
│ ├── MmappedFileMonitor.h
│ ├── MonitoredSharedMemory.cc
│ ├── MonitoredSharedMemory.h
│ ├── Monkeypatcher.cc
│ ├── Monkeypatcher.h
│ ├── MvCommand.cc
│ ├── NonvirtualPerfCounterMonitor.h
│ ├── ODirectFileMonitor.h
│ ├── PackCommand.cc
│ ├── PerfCounterBuffers.cc
│ ├── PerfCounterBuffers.h
│ ├── PerfCounters.cc
│ ├── PerfCounters.h
│ ├── PerfCounters_aarch64.h
│ ├── PerfCounters_x86.h
│ ├── PidFdMonitor.cc
│ ├── PidFdMonitor.h
│ ├── PreserveFileMonitor.h
│ ├── ProcFdDirMonitor.cc
│ ├── ProcFdDirMonitor.h
│ ├── ProcMemMonitor.cc
│ ├── ProcMemMonitor.h
│ ├── ProcStatMonitor.cc
│ ├── ProcStatMonitor.h
│ ├── ProcessorTraceDecoder.cc
│ ├── ProcessorTraceDecoder.h
│ ├── PsCommand.cc
│ ├── RRPageMonitor.h
│ ├── RecordCommand.cc
│ ├── RecordCommand.h
│ ├── RecordSession.cc
│ ├── RecordSession.h
│ ├── RecordTask.cc
│ ├── RecordTask.h
│ ├── Registers.cc
│ ├── Registers.h
│ ├── ReplayCommand.cc
│ ├── ReplayCommand.h
│ ├── ReplaySession.cc
│ ├── ReplaySession.h
│ ├── ReplayTask.cc
│ ├── ReplayTask.h
│ ├── ReplayTimeline.cc
│ ├── ReplayTimeline.h
│ ├── RerunCommand.cc
│ ├── ReturnAddressList.cc
│ ├── ReturnAddressList.h
│ ├── RmCommand.cc
│ ├── Scheduler.cc
│ ├── Scheduler.h
│ ├── ScopedFd.h
│ ├── SeccompFilterRewriter.cc
│ ├── SeccompFilterRewriter.h
│ ├── Session.cc
│ ├── Session.h
│ ├── SourcesCommand.cc
│ ├── StdioMonitor.cc
│ ├── StdioMonitor.h
│ ├── StringVectorToCharArray.h
│ ├── SysCpuMonitor.cc
│ ├── SysCpuMonitor.h
│ ├── TargetDescription.cc
│ ├── TargetDescription.h
│ ├── Task.cc
│ ├── Task.h
│ ├── TaskishUid.h
│ ├── ThreadDb.cc
│ ├── ThreadDb.h
│ ├── ThreadGroup.cc
│ ├── ThreadGroup.h
│ ├── Ticks.h
│ ├── TraceField.cc
│ ├── TraceField.h
│ ├── TraceFrame.cc
│ ├── TraceFrame.h
│ ├── TraceInfoCommand.cc
│ ├── TraceStream.cc
│ ├── TraceStream.h
│ ├── TraceTaskEvent.h
│ ├── TraceeAttentionSet.cc
│ ├── TraceeAttentionSet.h
│ ├── VirtualPerfCounterMonitor.cc
│ ├── VirtualPerfCounterMonitor.h
│ ├── WaitManager.cc
│ ├── WaitManager.h
│ ├── WaitStatus.cc
│ ├── WaitStatus.h
│ ├── assembly_templates.py
│ ├── audit/
│ │ ├── rtld-audit.c
│ │ ├── rtld-audit.h
│ │ ├── stap-note-iter.c
│ │ └── stap-note-iter.h
│ ├── bpf/
│ │ └── async_event_filter.c
│ ├── chaos-test/
│ │ ├── chaos-test.sh
│ │ ├── chaosutil.h
│ │ ├── core_count.c
│ │ ├── futex_wakeup.c
│ │ ├── getaffinity_core_count.c
│ │ ├── harness.py
│ │ ├── mmap_adjacent.c
│ │ ├── mmap_bits.c
│ │ ├── pipe_wakeup.c
│ │ ├── startup.c
│ │ ├── starvation_multithreaded.c
│ │ └── starvation_singlethreaded.c
│ ├── core.h
│ ├── counters-test/
│ │ ├── README.md
│ │ └── counters.cc
│ ├── cpp_supplement.h
│ ├── exec_stub.c
│ ├── extra_version_string.h.in
│ ├── fast_forward.cc
│ ├── fast_forward.h
│ ├── ftrace/
│ │ └── ftrace_helper.c
│ ├── ftrace.cc
│ ├── ftrace.h
│ ├── generate_syscalls.py
│ ├── git_revision.h.in
│ ├── kernel_abi.cc
│ ├── kernel_abi.h
│ ├── kernel_metadata.cc
│ ├── kernel_metadata.h
│ ├── kernel_supplement.h
│ ├── launch_debugger.cc
│ ├── launch_debugger.h
│ ├── log.cc
│ ├── log.h
│ ├── main.cc
│ ├── main.h
│ ├── perf-test/
│ │ ├── many-threads-wake.c
│ │ ├── many-threads-wake.md
│ │ ├── many-threads.c
│ │ ├── many-threads.md
│ │ ├── unbuffered-syscalls.c
│ │ └── unbuffered-syscalls.md
│ ├── preload/
│ │ ├── overrides.c
│ │ ├── preload_interface.h
│ │ ├── raw_syscall.S
│ │ ├── rr_page.S
│ │ ├── rr_page.ld.in
│ │ ├── rr_page_instructions.S
│ │ ├── rr_vdso.S
│ │ ├── rrcalls.h
│ │ ├── syscall_hook.S
│ │ ├── syscallbuf.c
│ │ ├── syscallbuf.h
│ │ └── tweak_librrpage.py
│ ├── processor_trace_check.cc
│ ├── processor_trace_check.h
│ ├── record_signal.cc
│ ├── record_signal.h
│ ├── record_syscall.cc
│ ├── record_syscall.h
│ ├── remote_code_ptr.cc
│ ├── remote_code_ptr.h
│ ├── remote_ptr.h
│ ├── replay_syscall.cc
│ ├── replay_syscall.h
│ ├── rr_trace.capnp
│ ├── seccomp-bpf.h
│ ├── syscalls.py
│ ├── test/
│ │ ├── 64bit_child.c
│ │ ├── _llseek.c
│ │ ├── abort.c
│ │ ├── abort_nonmain.c
│ │ ├── abort_nonmain.run
│ │ ├── accept.c
│ │ ├── acct.c
│ │ ├── adjtimex.c
│ │ ├── aio.c
│ │ ├── alarm.c
│ │ ├── alarm2.c
│ │ ├── alsa_ioctl.c
│ │ ├── alternate_thread_diversion.c
│ │ ├── alternate_thread_diversion.py
│ │ ├── alternate_thread_diversion.run
│ │ ├── args.c
│ │ ├── args.run
│ │ ├── arm/
│ │ │ ├── arch_timer.c
│ │ │ ├── arch_timer.run
│ │ │ ├── brk_nonzero.c
│ │ │ ├── diversion_arch_timer.py
│ │ │ ├── tagged_addr_ctrl.c
│ │ │ ├── util.h
│ │ │ └── util.sh
│ │ ├── async_kill_with_syscallbuf.c
│ │ ├── async_kill_with_syscallbuf.run
│ │ ├── async_kill_with_syscallbuf2.c
│ │ ├── async_kill_with_syscallbuf2.run
│ │ ├── async_kill_with_threads.c
│ │ ├── async_kill_with_threads.run
│ │ ├── async_kill_with_threads_main_running.c
│ │ ├── async_kill_with_threads_main_running.run
│ │ ├── async_kill_with_threads_thread_running.c
│ │ ├── async_kill_with_threads_thread_running.run
│ │ ├── async_segv.c
│ │ ├── async_segv.run
│ │ ├── async_segv_ignored.c
│ │ ├── async_signal_syscalls.c
│ │ ├── async_signal_syscalls.run
│ │ ├── async_signal_syscalls2.c
│ │ ├── async_signal_syscalls2.run
│ │ ├── async_signal_syscalls_100.run
│ │ ├── async_signal_syscalls_1000.run
│ │ ├── async_signal_syscalls_siginfo.c
│ │ ├── async_signal_syscalls_siginfo.run
│ │ ├── async_usr1.c
│ │ ├── async_usr1.run
│ │ ├── at_threadexit.c
│ │ ├── bad_breakpoint.run
│ │ ├── bad_good_break.py
│ │ ├── bad_ip.c
│ │ ├── bad_syscall.c
│ │ ├── barrier.c
│ │ ├── basic_test.run
│ │ ├── big_buffers.c
│ │ ├── big_select.c
│ │ ├── blacklist.c
│ │ ├── blacklist.run
│ │ ├── block.c
│ │ ├── block_clone_checkpoint.c
│ │ ├── block_clone_checkpoint.py
│ │ ├── block_clone_checkpoint.run
│ │ ├── block_clone_interrupted.c
│ │ ├── block_clone_interrupted.run
│ │ ├── block_clone_syscallbuf_overflow.c
│ │ ├── block_clone_syscallbuf_overflow.run
│ │ ├── block_intr_sigchld.c
│ │ ├── block_intr_sigchld.run
│ │ ├── block_open.c
│ │ ├── blocked_bad_ip.c
│ │ ├── blocked_bad_ip.py
│ │ ├── blocked_bad_ip.run
│ │ ├── blocked_sigill.c
│ │ ├── blocked_sigill.run
│ │ ├── bpf.c
│ │ ├── bpf_map.c
│ │ ├── bpf_prog_map.c
│ │ ├── bpf_query.c
│ │ ├── break_block.py
│ │ ├── break_block.run
│ │ ├── break_clock.py
│ │ ├── break_clock.run
│ │ ├── break_clone.py
│ │ ├── break_clone.run
│ │ ├── break_exec.run
│ │ ├── break_int3.py
│ │ ├── break_int3.run
│ │ ├── break_mmap_private.py
│ │ ├── break_mmap_private.run
│ │ ├── break_msg.run
│ │ ├── break_sigreturn.run
│ │ ├── break_sync_signal.run
│ │ ├── break_thread.run
│ │ ├── break_time_slice.py
│ │ ├── break_time_slice.run
│ │ ├── breakpoint.c
│ │ ├── breakpoint.py
│ │ ├── breakpoint.run
│ │ ├── breakpoint_conditions.c
│ │ ├── breakpoint_conditions.py
│ │ ├── breakpoint_conditions.run
│ │ ├── breakpoint_consistent.py
│ │ ├── breakpoint_consistent.run
│ │ ├── breakpoint_overlap.c
│ │ ├── breakpoint_overlap.py
│ │ ├── breakpoint_overlap.run
│ │ ├── breakpoint_print.py
│ │ ├── breakpoint_print.run
│ │ ├── breakpoint_print_command.py
│ │ ├── breakpoint_print_command.run
│ │ ├── brk.c
│ │ ├── brk2.c
│ │ ├── call_exit.py
│ │ ├── call_exit.run
│ │ ├── call_function.c
│ │ ├── call_function.py
│ │ ├── call_function.run
│ │ ├── call_gettid.c
│ │ ├── call_gettid.py
│ │ ├── call_gettid.run
│ │ ├── capget.c
│ │ ├── chaos_oom.c
│ │ ├── chaos_oom.run
│ │ ├── check_lost_interrupts.c
│ │ ├── check_lost_interrupts.run
│ │ ├── check_patched_pthread.py
│ │ ├── check_patched_pthread.run
│ │ ├── check_session_leaks.c
│ │ ├── check_session_leaks.py
│ │ ├── check_session_leaks.run
│ │ ├── check_syscall_perf_interval.py
│ │ ├── checkpoint_async_signal_syscalls_1000.run
│ │ ├── checkpoint_dying_threads.c
│ │ ├── checkpoint_dying_threads.py
│ │ ├── checkpoint_dying_threads.run
│ │ ├── checkpoint_invalid.py
│ │ ├── checkpoint_invalid.run
│ │ ├── checkpoint_mixed_mode.c
│ │ ├── checkpoint_mixed_mode.py
│ │ ├── checkpoint_mixed_mode.run
│ │ ├── checkpoint_mmap_shared.run
│ │ ├── checkpoint_prctl_name.run
│ │ ├── checkpoint_simple.run
│ │ ├── checksum_block_open.run
│ │ ├── checksum_sanity.c
│ │ ├── checksum_sanity.run
│ │ ├── checksum_sanity_noclone.run
│ │ ├── chew_cpu.c
│ │ ├── chmod.c
│ │ ├── chown.c
│ │ ├── clock.c
│ │ ├── clock_adjtime.c
│ │ ├── clock_nanosleep.c
│ │ ├── clock_time64.c
│ │ ├── clone.c
│ │ ├── clone_bad_stack.c
│ │ ├── clone_bad_tls.c
│ │ ├── clone_cleartid_coredump.c
│ │ ├── clone_fail.c
│ │ ├── clone_file_range.c
│ │ ├── clone_file_range.run
│ │ ├── clone_immediate_exit.c
│ │ ├── clone_interruption.c
│ │ ├── clone_interruption.py
│ │ ├── clone_interruption.run
│ │ ├── clone_interruption_finder.py
│ │ ├── clone_newflags.c
│ │ ├── clone_parent.c
│ │ ├── clone_share_vm.c
│ │ ├── clone_share_vm.py
│ │ ├── clone_share_vm.run
│ │ ├── clone_syscallbuf_cleanup_blocked.c
│ │ ├── clone_syscallbuf_cleanup_blocked.run
│ │ ├── clone_syscallbuf_cleanup_cpu.c
│ │ ├── clone_syscallbuf_cleanup_cpu.run
│ │ ├── clone_untraced.c
│ │ ├── clone_vfork.c
│ │ ├── clone_vfork.run
│ │ ├── clone_vfork_pidfd.c
│ │ ├── cloned_sigmask.c
│ │ ├── close_range.c
│ │ ├── comm.py
│ │ ├── comm.run
│ │ ├── concurrent_signals.c
│ │ ├── concurrent_signals.run
│ │ ├── conditional_breakpoint_calls.c
│ │ ├── conditional_breakpoint_calls.py
│ │ ├── conditional_breakpoint_calls.run
│ │ ├── conditional_breakpoint_offload.c
│ │ ├── conditional_breakpoint_offload.py
│ │ ├── conditional_breakpoint_offload.run
│ │ ├── condvar_stress.c
│ │ ├── condvar_stress.run
│ │ ├── constructor.c
│ │ ├── cont_race.c
│ │ ├── cont_race.run
│ │ ├── cont_signal.py
│ │ ├── cont_signal.run
│ │ ├── context_switch_after_patch.c
│ │ ├── context_switch_after_patch.run
│ │ ├── copy_all.py
│ │ ├── copy_all.run
│ │ ├── copy_file_range.c
│ │ ├── crash.c
│ │ ├── crash.run
│ │ ├── crash_in_function.c
│ │ ├── crash_in_function.py
│ │ ├── crash_in_function.run
│ │ ├── creat_address_not_truncated.c
│ │ ├── cwd_inaccessible.c
│ │ ├── daemon.c
│ │ ├── daemon_read.c
│ │ ├── daemon_read.run
│ │ ├── dconf_mock.c
│ │ ├── dconf_mock.run
│ │ ├── dead_thread_target.py
│ │ ├── dead_thread_target.run
│ │ ├── deliver_async_signal_during_syscalls.run
│ │ ├── desched_blocking_poll.c
│ │ ├── desched_sigkill.c
│ │ ├── desched_ticks.py
│ │ ├── desched_ticks.run
│ │ ├── detach_huge_mmap.c
│ │ ├── detach_sigkill.c
│ │ ├── detach_sigkill_exit.c
│ │ ├── detach_state.c
│ │ ├── detach_terminal.c
│ │ ├── detach_terminal.run
│ │ ├── detach_threads.c
│ │ ├── deterministic_sigsys.c
│ │ ├── dev_tty.c
│ │ ├── dev_tty.run
│ │ ├── dev_zero.c
│ │ ├── direct.c
│ │ ├── diversion_sigtrap.c
│ │ ├── diversion_sigtrap.py
│ │ ├── diversion_sigtrap.run
│ │ ├── diversion_syscall.c
│ │ ├── diversion_syscall.py
│ │ ├── diversion_syscall.run
│ │ ├── dlchecksum.c
│ │ ├── dlopen.c
│ │ ├── dlopen.py
│ │ ├── dlopen.run
│ │ ├── doublesegv.c
│ │ ├── dup.c
│ │ ├── early_error.c
│ │ ├── early_error.run
│ │ ├── elapsed_time.c
│ │ ├── elapsed_time.py
│ │ ├── elapsed_time.run
│ │ ├── env_newline.run
│ │ ├── epoll_create.c
│ │ ├── epoll_create1.c
│ │ ├── epoll_edge.c
│ │ ├── epoll_many.c
│ │ ├── epoll_pwait2.c
│ │ ├── epoll_pwait_eintr_sigmask.c
│ │ ├── eventfd.c
│ │ ├── exclusion_region.c
│ │ ├── exclusion_region.run
│ │ ├── exec_deleted.run
│ │ ├── exec_failed.c
│ │ ├── exec_failed.py
│ │ ├── exec_failed.run
│ │ ├── exec_flags.c
│ │ ├── exec_from_main_thread.c
│ │ ├── exec_from_other_thread.c
│ │ ├── exec_many.c
│ │ ├── exec_many.run
│ │ ├── exec_no_env.c
│ │ ├── exec_self.c
│ │ ├── exec_shared_as.c
│ │ ├── exec_shared_as.run
│ │ ├── exec_stop.py
│ │ ├── exec_stop.run
│ │ ├── exec_stopsig.c
│ │ ├── execp.run
│ │ ├── execve_failed.run
│ │ ├── execve_loop.c
│ │ ├── execve_loop.run
│ │ ├── execveat.c
│ │ ├── exit_codes.c
│ │ ├── exit_codes.run
│ │ ├── exit_fast.c
│ │ ├── exit_group.c
│ │ ├── exit_group.run
│ │ ├── exit_race.c
│ │ ├── exit_race.run
│ │ ├── exit_status.c
│ │ ├── exit_status.run
│ │ ├── exit_with_syscallbuf_signal.c
│ │ ├── expect_in_atomic_printf.py
│ │ ├── expect_in_exit.py
│ │ ├── explicit_checkpoint_clone.py
│ │ ├── explicit_checkpoint_clone.run
│ │ ├── fadvise.c
│ │ ├── fanotify.c
│ │ ├── fatal_init_signal.c
│ │ ├── fatal_sigsegv_thread.c
│ │ ├── fcntl_dupfd.c
│ │ ├── fcntl_lease.c
│ │ ├── fcntl_misc.c
│ │ ├── fcntl_notify.c
│ │ ├── fcntl_owner_ex.c
│ │ ├── fcntl_rw_hints.c
│ │ ├── fcntl_seals.c
│ │ ├── fcntl_sig.c
│ │ ├── fd_cleanup.c
│ │ ├── fd_leak.run
│ │ ├── fd_limit.c
│ │ ├── fd_limit.run
│ │ ├── fd_tracking_across_threads.c
│ │ ├── fds_clean.c
│ │ ├── fexecve.c
│ │ ├── fexecve_memfd.c
│ │ ├── file_name_newline.run
│ │ ├── final_sigkill.py
│ │ ├── final_sigkill.run
│ │ ├── first_instruction.py
│ │ ├── first_instruction.run
│ │ ├── flock.c
│ │ ├── flock2.c
│ │ ├── flock_ofd.c
│ │ ├── fork_brk.c
│ │ ├── fork_child_crash.c
│ │ ├── fork_exec_info_thr.run
│ │ ├── fork_many.c
│ │ ├── fork_stress.c
│ │ ├── fork_stress.run
│ │ ├── fork_syscalls.c
│ │ ├── fork_syscalls.run
│ │ ├── fsmount.c
│ │ ├── fstatat.c
│ │ ├── function_calls.c
│ │ ├── function_calls.py
│ │ ├── function_calls.run
│ │ ├── futex_exit_race.c
│ │ ├── futex_exit_race_sigsegv.c
│ │ ├── futex_invalid_op.c
│ │ ├── futex_pi.c
│ │ ├── futex_priorities.c
│ │ ├── futex_requeue.c
│ │ ├── futex_restart_clone.c
│ │ ├── futex_restart_race.c
│ │ ├── gcrypt_rdrand.c
│ │ ├── gdb_bogus_breakpoint.c
│ │ ├── gdb_bogus_breakpoint.py
│ │ ├── gdb_bogus_breakpoint.run
│ │ ├── gdb_qpasssignals.c
│ │ ├── gdb_qpasssignals.py
│ │ ├── gdb_qpasssignals.run
│ │ ├── generic_break.py
│ │ ├── get_thread_list.py
│ │ ├── get_thread_list.run
│ │ ├── getcpu.c
│ │ ├── getcwd.c
│ │ ├── getcwd.run
│ │ ├── getgroups.c
│ │ ├── getpwnam.c
│ │ ├── getrandom.c
│ │ ├── getsid.c
│ │ ├── gettimeofday.c
│ │ ├── goto_event.c
│ │ ├── goto_event.py
│ │ ├── goto_event.run
│ │ ├── grandchild_threads.c
│ │ ├── grandchild_threads_main_running.c
│ │ ├── grandchild_threads_parent_alive.c
│ │ ├── grandchild_threads_thread_running.c
│ │ ├── group_stop_thundering_herd.c
│ │ ├── hardlink_mmapped_files.run
│ │ ├── hbreak.py
│ │ ├── hbreak.run
│ │ ├── hello.c
│ │ ├── hello.run
│ │ ├── history.c
│ │ ├── history.py
│ │ ├── history.run
│ │ ├── hooks.c
│ │ ├── hooks.run
│ │ ├── ignore_nested.c
│ │ ├── ignore_nested.run
│ │ ├── ignored_async_usr1.c
│ │ ├── ignored_async_usr1.run
│ │ ├── ignored_sigsegv.c
│ │ ├── ignored_sigsegv.run
│ │ ├── immediate_restart.c
│ │ ├── immediate_restart.py
│ │ ├── immediate_restart.run
│ │ ├── inotify.c
│ │ ├── int3.c
│ │ ├── interrupt.c
│ │ ├── interrupt.py
│ │ ├── interrupt.run
│ │ ├── intr_futex_wait_restart.c
│ │ ├── intr_poll.c
│ │ ├── intr_ppoll.c
│ │ ├── intr_pselect.c
│ │ ├── intr_ptrace_decline.c
│ │ ├── intr_ptrace_decline.run
│ │ ├── intr_read_no_restart.c
│ │ ├── intr_read_restart.c
│ │ ├── intr_sleep.c
│ │ ├── intr_sleep_no_restart.c
│ │ ├── invalid_exec.c
│ │ ├── invalid_fcntl.c
│ │ ├── invalid_interpreter.c
│ │ ├── invalid_interpreter.py
│ │ ├── invalid_interpreter.run
│ │ ├── invalid_ioctl.c
│ │ ├── invalid_jump.c
│ │ ├── invalid_jump.py
│ │ ├── invalid_jump.run
│ │ ├── io.c
│ │ ├── io_uring.c
│ │ ├── ioctl.c
│ │ ├── ioctl_blk.c
│ │ ├── ioctl_br.c
│ │ ├── ioctl_fb.c
│ │ ├── ioctl_fs.c
│ │ ├── ioctl_hidraw.c
│ │ ├── ioctl_pty.c
│ │ ├── ioctl_sg.c
│ │ ├── ioctl_tty.c
│ │ ├── ioctl_ttyS.c
│ │ ├── ioctl_vt.c
│ │ ├── ioprio.c
│ │ ├── jit_proc_mem.c
│ │ ├── jit_proc_mem.py
│ │ ├── jit_proc_mem.run
│ │ ├── join_threads.c
│ │ ├── joystick.c
│ │ ├── kcmp.c
│ │ ├── keyctl.c
│ │ ├── kill_newborn.c
│ │ ├── kill_ptracee.c
│ │ ├── landlock.c
│ │ ├── large_file.run
│ │ ├── large_hole.c
│ │ ├── large_write_deadlock.c
│ │ ├── legacy_ugid.c
│ │ ├── link.c
│ │ ├── link.run
│ │ ├── madvise.c
│ │ ├── madvise_dontfork.c
│ │ ├── madvise_dontfork.py
│ │ ├── madvise_dontfork.run
│ │ ├── madvise_dontneed_private.c
│ │ ├── madvise_fracture_flags.c
│ │ ├── madvise_fracture_flags.run
│ │ ├── madvise_free.c
│ │ ├── madvise_misc.c
│ │ ├── madvise_remove.c
│ │ ├── madvise_wipeonfork.c
│ │ ├── main_thread_exit.c
│ │ ├── main_thread_exit.py
│ │ ├── main_thread_exit.run
│ │ ├── many_yields.c
│ │ ├── many_yields.run
│ │ ├── map_fixed.c
│ │ ├── map_shared_syscall.c
│ │ ├── membarrier.c
│ │ ├── memfd_create.c
│ │ ├── memfd_create_dotnet_huge_mapping.c
│ │ ├── memfd_create_efault.c
│ │ ├── memfd_create_shared.c
│ │ ├── memfd_create_shared_huge.c
│ │ ├── mincore.c
│ │ ├── mknod.c
│ │ ├── mlock.c
│ │ ├── mlock_madvise.c
│ │ ├── mmap_adjacent_to_rr_usage.c
│ │ ├── mmap_fd_reuse_checkpoint.c
│ │ ├── mmap_fd_reuse_checkpoint.py
│ │ ├── mmap_fd_reuse_checkpoint.run
│ │ ├── mmap_huge.c
│ │ ├── mmap_private.c
│ │ ├── mmap_private_grow_under_map.c
│ │ ├── mmap_recycle.c
│ │ ├── mmap_replace_most_mappings.c
│ │ ├── mmap_replace_most_mappings.py
│ │ ├── mmap_replace_most_mappings.run
│ │ ├── mmap_ro.c
│ │ ├── mmap_self_maps_shared.c
│ │ ├── mmap_shared.c
│ │ ├── mmap_shared_dev_zero.c
│ │ ├── mmap_shared_extern.c
│ │ ├── mmap_shared_extern.run
│ │ ├── mmap_shared_grow.c
│ │ ├── mmap_shared_grow_under_map.c
│ │ ├── mmap_shared_multiple.c
│ │ ├── mmap_shared_prot.c
│ │ ├── mmap_shared_prot.py
│ │ ├── mmap_shared_prot.run
│ │ ├── mmap_shared_subpage.c
│ │ ├── mmap_shared_write.c
│ │ ├── mmap_shared_write_exec_race.c
│ │ ├── mmap_shared_write_exec_race.run
│ │ ├── mmap_shared_write_fork.c
│ │ ├── mmap_short_file.c
│ │ ├── mmap_tmpfs.c
│ │ ├── mmap_tmpfs.run
│ │ ├── mmap_write.c
│ │ ├── mmap_write.run
│ │ ├── mmap_write_complex.c
│ │ ├── mmap_write_private.c
│ │ ├── mmap_write_private.run
│ │ ├── mmap_zero_size_fd.c
│ │ ├── mount_ns_exec.c
│ │ ├── mount_ns_exec2.c
│ │ ├── mount_ns_execveat.c
│ │ ├── mprotect.c
│ │ ├── mprotect_checkpoint.c
│ │ ├── mprotect_checkpoint.py
│ │ ├── mprotect_checkpoint.run
│ │ ├── mprotect_growsdown.c
│ │ ├── mprotect_growsdown.run
│ │ ├── mprotect_heterogenous.c
│ │ ├── mprotect_none.c
│ │ ├── mprotect_stack.c
│ │ ├── mprotect_step.py
│ │ ├── mprotect_step.run
│ │ ├── mprotect_syscallbuf_overflow.c
│ │ ├── mprotect_syscallbuf_overflow.run
│ │ ├── mq.c
│ │ ├── mremap.c
│ │ ├── mremap_after_coalesce.c
│ │ ├── mremap_dontunmap.c
│ │ ├── mremap_grow.c
│ │ ├── mremap_grow_shared.c
│ │ ├── mremap_non_page_size.c
│ │ ├── mremap_overwrite.c
│ │ ├── mremap_private_grow_under_map.c
│ │ ├── mremap_shrink.c
│ │ ├── msg.c
│ │ ├── msg_trunc.c
│ │ ├── msync.c
│ │ ├── mtio.c
│ │ ├── multiple_pending_signals.c
│ │ ├── multiple_pending_signals_sequential.c
│ │ ├── munmap_discontinuous.c
│ │ ├── munmap_segv.c
│ │ ├── mutex_pi_stress.c
│ │ ├── mutex_pi_stress.run
│ │ ├── nanosleep.c
│ │ ├── nested_detach.run
│ │ ├── nested_detach_kill.run
│ │ ├── nested_detach_kill_stuck.c
│ │ ├── nested_detach_kill_stuck.run
│ │ ├── nested_detach_stop.run
│ │ ├── nested_detach_wait.c
│ │ ├── nested_detach_wait.run
│ │ ├── nested_release.run
│ │ ├── nested_release_exit_code.run
│ │ ├── nested_release_signal.c
│ │ ├── nested_release_signal.run
│ │ ├── netfilter.c
│ │ ├── netfilter_ipv6.c
│ │ ├── netlink_mmap_disable.c
│ │ ├── no_mask_timeslice.c
│ │ ├── nscd.c
│ │ ├── nsutils.h
│ │ ├── numa.c
│ │ ├── open_tree.c
│ │ ├── openat2.c
│ │ ├── openat_null.c
│ │ ├── orphan_process.c
│ │ ├── overflow_branch_counter.c
│ │ ├── overflow_branch_counter.run
│ │ ├── pack.c
│ │ ├── pack.run
│ │ ├── pack_dir.run
│ │ ├── packet_mmap_disable.c
│ │ ├── parent_no_break_child_bkpt.py
│ │ ├── parent_no_break_child_bkpt.run
│ │ ├── parent_no_stop_child_crash.py
│ │ ├── parent_no_stop_child_crash.run
│ │ ├── patch_page_end.c
│ │ ├── patch_page_end.run
│ │ ├── pause.c
│ │ ├── perf_event.c
│ │ ├── perf_event_ioctl.c
│ │ ├── perf_event_mmap.c
│ │ ├── personality.c
│ │ ├── personality_chaos.run
│ │ ├── pid_ns_kill_child.c
│ │ ├── pid_ns_kill_child_threads.c
│ │ ├── pid_ns_kill_child_zombie.c
│ │ ├── pid_ns_kill_threads.c
│ │ ├── pid_ns_kill_threads_exit_wait.c
│ │ ├── pid_ns_reap.c
│ │ ├── pid_ns_segv.c
│ │ ├── pid_ns_shutdown.c
│ │ ├── pidfd.c
│ │ ├── pidfd_getfd.c
│ │ ├── pivot_root.c
│ │ ├── poll_sig_race.c
│ │ ├── post_exec_fpu_regs.py
│ │ ├── post_exec_fpu_regs.run
│ │ ├── ppoll.c
│ │ ├── ppoll_deliver.c
│ │ ├── prctl.c
│ │ ├── prctl_anon_vma_name.c
│ │ ├── prctl_auxv.c
│ │ ├── prctl_caps.c
│ │ ├── prctl_deathsig.c
│ │ ├── prctl_mdwe.c
│ │ ├── prctl_name.c
│ │ ├── prctl_short_name.c
│ │ ├── prctl_speculation_ctrl.c
│ │ ├── prctl_tsc.c
│ │ ├── prctl_tsc.run
│ │ ├── prctl_tsc_supported.c
│ │ ├── priority.c
│ │ ├── priority.run
│ │ ├── privileged_net_ioctl.c
│ │ ├── proc_fds.c
│ │ ├── proc_maps.py
│ │ ├── proc_maps.run
│ │ ├── proc_mem.c
│ │ ├── protect_rr_fds.c
│ │ ├── prw.c
│ │ ├── pthread_condvar_locking.c
│ │ ├── pthread_mutex_timedlock.c
│ │ ├── pthread_pi_mutex.c
│ │ ├── pthread_rwlocks.c
│ │ ├── ptrace_attach_null_status.c
│ │ ├── ptrace_attach_running.c
│ │ ├── ptrace_attach_sleeping.c
│ │ ├── ptrace_attach_stopped.c
│ │ ├── ptrace_attach_syscall.c
│ │ ├── ptrace_attach_thread_running.c
│ │ ├── ptrace_breakpoint.c
│ │ ├── ptrace_change_patched_syscall.c
│ │ ├── ptrace_exec.c
│ │ ├── ptrace_group_stop.c
│ │ ├── ptrace_kill_grandtracee.c
│ │ ├── ptrace_remote_unmap.c
│ │ ├── ptrace_remote_unmap.py
│ │ ├── ptrace_remote_unmap.run
│ │ ├── ptrace_seize.c
│ │ ├── ptrace_sigchld.c
│ │ ├── ptrace_sigchld_blocked.c
│ │ ├── ptrace_signals.c
│ │ ├── ptrace_singlestep.c
│ │ ├── ptrace_syscall.c
│ │ ├── ptrace_syscall_clone_untraced.c
│ │ ├── ptrace_sysemu_syscall.c
│ │ ├── ptrace_trace_clone.c
│ │ ├── ptrace_trace_exit.c
│ │ ├── ptrace_traceme.c
│ │ ├── ptrace_traceme_thread.c
│ │ ├── ptrace_util.h
│ │ ├── ptrace_waiter_thread.c
│ │ ├── ptracer_death.c
│ │ ├── ptracer_death_multithread.c
│ │ ├── ptracer_death_multithread_peer.c
│ │ ├── quotactl.c
│ │ ├── read_bad_mem.py
│ │ ├── read_bad_mem.run
│ │ ├── read_big_struct.c
│ │ ├── read_big_struct.py
│ │ ├── read_big_struct.run
│ │ ├── read_large.c
│ │ ├── read_nothing.c
│ │ ├── read_oversize.c
│ │ ├── readdir.c
│ │ ├── readlink.c
│ │ ├── readlinkat.c
│ │ ├── readv.c
│ │ ├── record_replay.run
│ │ ├── record_replay_subject.c
│ │ ├── recvfrom.c
│ │ ├── redzone_integrity.c
│ │ ├── remove_latest_trace.c
│ │ ├── remove_latest_trace.run
│ │ ├── remove_watchpoint.py
│ │ ├── remove_watchpoint.run
│ │ ├── rename.c
│ │ ├── replay_overlarge_event_number.run
│ │ ├── replay_serve_files.py
│ │ ├── replay_serve_files.run
│ │ ├── restart_abnormal_exit.c
│ │ ├── restart_abnormal_exit.py
│ │ ├── restart_abnormal_exit.run
│ │ ├── restart_breakpoint.py
│ │ ├── restart_diversion.py
│ │ ├── restart_diversion.run
│ │ ├── restart_finish.py
│ │ ├── restart_invalid_checkpoint.py
│ │ ├── restart_invalid_checkpoint.run
│ │ ├── restart_unstable.py
│ │ ├── restart_unstable.run
│ │ ├── reverse_alarm.py
│ │ ├── reverse_alarm.run
│ │ ├── reverse_continue_breakpoint.c
│ │ ├── reverse_continue_breakpoint.py
│ │ ├── reverse_continue_breakpoint.run
│ │ ├── reverse_continue_exec_subprocess.py
│ │ ├── reverse_continue_exec_subprocess.run
│ │ ├── reverse_continue_fork_subprocess.py
│ │ ├── reverse_continue_fork_subprocess.run
│ │ ├── reverse_continue_int3.py
│ │ ├── reverse_continue_int3.run
│ │ ├── reverse_continue_multiprocess.c
│ │ ├── reverse_continue_multiprocess.py
│ │ ├── reverse_continue_multiprocess.run
│ │ ├── reverse_continue_process_signal.c
│ │ ├── reverse_continue_process_signal.py
│ │ ├── reverse_continue_process_signal.run
│ │ ├── reverse_continue_start.py
│ │ ├── reverse_continue_start.run
│ │ ├── reverse_finish.py
│ │ ├── reverse_finish.run
│ │ ├── reverse_many_breakpoints.c
│ │ ├── reverse_many_breakpoints.py
│ │ ├── reverse_many_breakpoints.run
│ │ ├── reverse_step_breakpoint.py
│ │ ├── reverse_step_breakpoint.run
│ │ ├── reverse_step_long.c
│ │ ├── reverse_step_long.py
│ │ ├── reverse_step_long.run
│ │ ├── reverse_step_signal.py
│ │ ├── reverse_step_signal.run
│ │ ├── reverse_step_threads.c
│ │ ├── reverse_step_threads.py
│ │ ├── reverse_step_threads.run
│ │ ├── reverse_step_threads2.py
│ │ ├── reverse_step_threads2.run
│ │ ├── reverse_step_threads_break.c
│ │ ├── reverse_step_threads_break.py
│ │ ├── reverse_step_threads_break.run
│ │ ├── reverse_watchpoint.py
│ │ ├── reverse_watchpoint.run
│ │ ├── reverse_watchpoint_syscall.py
│ │ ├── reverse_watchpoint_syscall.run
│ │ ├── rlimit.c
│ │ ├── robust_futex.c
│ │ ├── rr_ps.c
│ │ ├── rr_ps.run
│ │ ├── rr_ps_ns.c
│ │ ├── rr_ps_ns.run
│ │ ├── rseq.c
│ │ ├── rseq.py
│ │ ├── rseq.run
│ │ ├── rseq_cpu_id_reset.c
│ │ ├── rseq_cpu_id_reset_longrunning.c
│ │ ├── rseq_cpu_id_reset_longrunning.py
│ │ ├── rseq_cpu_id_reset_longrunning.run
│ │ ├── rseq_syscallbuf.c
│ │ ├── rseq_syscallbuf.run
│ │ ├── run_end.py
│ │ ├── run_end.run
│ │ ├── run_in_function.py
│ │ ├── run_in_function.run
│ │ ├── rusage.c
│ │ ├── samask.c
│ │ ├── sanity.py
│ │ ├── sanity.run
│ │ ├── save_data_fd.c
│ │ ├── sched_attr.c
│ │ ├── sched_setaffinity.c
│ │ ├── sched_setparam.c
│ │ ├── sched_yield.c
│ │ ├── sched_yield_to_lower_priority.c
│ │ ├── scm_rights.c
│ │ ├── scratch_read.c
│ │ ├── search.c
│ │ ├── search.py
│ │ ├── search.run
│ │ ├── seccomp.c
│ │ ├── seccomp_blocks_rr.c
│ │ ├── seccomp_blocks_rr.run
│ │ ├── seccomp_clone_fail.c
│ │ ├── seccomp_cloning.c
│ │ ├── seccomp_desched.c
│ │ ├── seccomp_kill_exit.c
│ │ ├── seccomp_madvise.c
│ │ ├── seccomp_null.c
│ │ ├── seccomp_open.c
│ │ ├── seccomp_open.run
│ │ ├── seccomp_signals.c
│ │ ├── seccomp_signals.run
│ │ ├── seccomp_sigsys_args.c
│ │ ├── seccomp_sigsys_sigtrap.c
│ │ ├── seccomp_sigsys_syscallbuf.c
│ │ ├── seccomp_tsync.c
│ │ ├── seccomp_veto_exec.c
│ │ ├── seekticks.py
│ │ ├── seekticks.run
│ │ ├── seekticks_threads.c
│ │ ├── seekticks_threads.py
│ │ ├── seekticks_threads.run
│ │ ├── segfault.c
│ │ ├── segfault.run
│ │ ├── self_shebang.c
│ │ ├── self_sigint.c
│ │ ├── sem.c
│ │ ├── send_block.c
│ │ ├── sendfile.c
│ │ ├── set_ptracer.c
│ │ ├── set_tid_address.c
│ │ ├── setgid.c
│ │ ├── setgroups.c
│ │ ├── setitimer.c
│ │ ├── setsid.c
│ │ ├── setuid.c
│ │ ├── setuid.run
│ │ ├── shared_exec.c
│ │ ├── shared_map.c
│ │ ├── shared_map.run
│ │ ├── shared_monitor.c
│ │ ├── shared_offset.c
│ │ ├── shared_persistent_file.c
│ │ ├── shared_persistent_file.py
│ │ ├── shared_persistent_file.run
│ │ ├── shared_write.c
│ │ ├── shm.c
│ │ ├── shm_checkpoint.py
│ │ ├── shm_checkpoint.run
│ │ ├── shm_unmap.c
│ │ ├── sigaction_old.c
│ │ ├── sigaltstack.c
│ │ ├── sigchld_interrupt_signal.c
│ │ ├── sigcont.c
│ │ ├── sigcont_threaded.c
│ │ ├── sigframe_grow_stack.c
│ │ ├── sighandler_bad_rsp_sigsegv.c
│ │ ├── sighandler_fork.c
│ │ ├── sighandler_mask.c
│ │ ├── sigill.c
│ │ ├── siginfo.py
│ │ ├── siginfo.run
│ │ ├── signal_checkpoint.py
│ │ ├── signal_checkpoint.run
│ │ ├── signal_deferred.c
│ │ ├── signal_during_preload_init.c
│ │ ├── signal_frame.c
│ │ ├── signal_numbers.c
│ │ ├── signal_numbers.py
│ │ ├── signal_numbers.run
│ │ ├── signal_stop.py
│ │ ├── signal_stop.run
│ │ ├── signal_unstoppable.c
│ │ ├── signalfd.c
│ │ ├── sigprocmask.c
│ │ ├── sigprocmask_ensure_delivery.c
│ │ ├── sigprocmask_evil.c
│ │ ├── sigprocmask_exec.c
│ │ ├── sigprocmask_in_syscallbuf_sighandler.c
│ │ ├── sigprocmask_race.c
│ │ ├── sigprocmask_race.run
│ │ ├── sigprocmask_rr_sigs.c
│ │ ├── sigprocmask_rr_sigs_nondefault.c
│ │ ├── sigprocmask_rr_sigs_nondefault.run
│ │ ├── sigprocmask_syscallbuf.c
│ │ ├── sigprof.c
│ │ ├── sigpwr.c
│ │ ├── sigqueueinfo.c
│ │ ├── sigreturn_reg.c
│ │ ├── sigreturnmask.c
│ │ ├── sigrt.c
│ │ ├── sigstop.c
│ │ ├── sigstop2.c
│ │ ├── sigsuspend.c
│ │ ├── sigtrap.c
│ │ ├── sigtrap_process_group.c
│ │ ├── simple.c
│ │ ├── simple.run
│ │ ├── simple_script.run
│ │ ├── simple_script.sh
│ │ ├── simple_script_debug.py
│ │ ├── simple_script_debug.run
│ │ ├── simple_threads_stress.c
│ │ ├── simple_winch.py
│ │ ├── simple_winch.run
│ │ ├── sioc.c
│ │ ├── small_holes.c
│ │ ├── sock_name_null.c
│ │ ├── sock_names_opts.c
│ │ ├── spinlock_priorities.c
│ │ ├── splice.c
│ │ ├── stack_growth.c
│ │ ├── stack_growth.py
│ │ ├── stack_growth.run
│ │ ├── stack_growth_after_syscallbuf.c
│ │ ├── stack_growth_syscallbuf.c
│ │ ├── stack_growth_with_guard.c
│ │ ├── stack_invalid.c
│ │ ├── stack_overflow.c
│ │ ├── stack_overflow_altstack.c
│ │ ├── stack_overflow_debug.py
│ │ ├── stack_overflow_debug.run
│ │ ├── stack_overflow_with_guard.c
│ │ ├── statfs.c
│ │ ├── statx.c
│ │ ├── std_random.cc
│ │ ├── stdout_child.c
│ │ ├── stdout_cloexec.c
│ │ ├── stdout_dup.c
│ │ ├── stdout_redirect.c
│ │ ├── step1.py
│ │ ├── step1.run
│ │ ├── step_into_lib.c
│ │ ├── step_into_lib.py
│ │ ├── step_into_lib.run
│ │ ├── step_signal.py
│ │ ├── step_signal.run
│ │ ├── step_thread.c
│ │ ├── step_thread.py
│ │ ├── step_thread.run
│ │ ├── stray_time_slice_signal.c
│ │ ├── stray_time_slice_signal.run
│ │ ├── strict_priorities.c
│ │ ├── strict_priorities.run
│ │ ├── subprocess_exit_ends_session.py
│ │ ├── subprocess_exit_ends_session.run
│ │ ├── switch_processes.py
│ │ ├── switch_processes.run
│ │ ├── switch_read.c
│ │ ├── symlink.c
│ │ ├── sync.c
│ │ ├── sync_file_range.c
│ │ ├── syscall_bp.c
│ │ ├── syscall_in_writable_mem.c
│ │ ├── syscallbuf_fd_disabling.c
│ │ ├── syscallbuf_fd_disabling.run
│ │ ├── syscallbuf_signal_blocking.c
│ │ ├── syscallbuf_signal_blocking_read.c
│ │ ├── syscallbuf_signal_blocking_read.run
│ │ ├── syscallbuf_signal_reset.c
│ │ ├── syscallbuf_sigstop.c
│ │ ├── syscallbuf_timeslice.c
│ │ ├── syscallbuf_timeslice2.c
│ │ ├── syscallbuf_timeslice2_250.run
│ │ ├── syscallbuf_timeslice_250.run
│ │ ├── sysconf.c
│ │ ├── sysconf_conf.c
│ │ ├── sysconf_onln.c
│ │ ├── sysconf_onln.run
│ │ ├── sysctl.c
│ │ ├── sysemu_singlestep.c
│ │ ├── sysinfo.c
│ │ ├── syslog.c
│ │ ├── target_fork.c
│ │ ├── target_fork.run
│ │ ├── target_process.c
│ │ ├── target_process.run
│ │ ├── tcp_sockets.c
│ │ ├── tcp_sockets.run
│ │ ├── term_nonmain.c
│ │ ├── term_nonmain.run
│ │ ├── term_rr.c
│ │ ├── term_rr.py
│ │ ├── term_rr.run
│ │ ├── term_rr_ok.c
│ │ ├── term_rr_ok.run
│ │ ├── term_trace_cpu.run
│ │ ├── term_trace_reset.c
│ │ ├── term_trace_reset.run
│ │ ├── term_trace_syscall.c
│ │ ├── term_trace_syscall.run
│ │ ├── test_lib.c
│ │ ├── test_setup.gdb
│ │ ├── test_setup.lldb
│ │ ├── tgkill.c
│ │ ├── thread_exit_signal.c
│ │ ├── thread_exit_signal.run
│ │ ├── thread_open_race.c
│ │ ├── thread_open_race.run
│ │ ├── thread_stress.c
│ │ ├── thread_stress.run
│ │ ├── thread_yield.c
│ │ ├── threaded_syscall_spam.c
│ │ ├── threaded_syscall_spam.run
│ │ ├── threads.c
│ │ ├── threads.run
│ │ ├── tick0.c
│ │ ├── tick0.py
│ │ ├── tick0.run
│ │ ├── tick0_less.run
│ │ ├── timer.c
│ │ ├── timerfd.c
│ │ ├── times.c
│ │ ├── tls.c
│ │ ├── tls.py
│ │ ├── tls.run
│ │ ├── trace_events.run
│ │ ├── trace_version.run
│ │ ├── tracee_unmap_vdso.c
│ │ ├── tracee_unmap_vdso.run
│ │ ├── traceinfo.run
│ │ ├── transient_fault_replay_all.run
│ │ ├── truncate_temp.c
│ │ ├── tty.run
│ │ ├── tty_tostop.c
│ │ ├── ttyname.c
│ │ ├── ttyname.run
│ │ ├── tun.c
│ │ ├── two_signals_with_mask.c
│ │ ├── ulimit_low.c
│ │ ├── uname.c
│ │ ├── unexpected_exit.c
│ │ ├── unexpected_exit_execve.c
│ │ ├── unexpected_exit_execve_twice.c
│ │ ├── unexpected_exit_pid_ns.c
│ │ ├── unexpected_stack_growth.c
│ │ ├── unexpected_stack_growth.py
│ │ ├── unexpected_stack_growth.run
│ │ ├── unicode.c
│ │ ├── unicode.py
│ │ ├── unicode.run
│ │ ├── unjoined_thread.c
│ │ ├── unmap_vdso.run
│ │ ├── unshare.c
│ │ ├── unwind_on_signal.py
│ │ ├── unwind_on_signal.run
│ │ ├── unwind_rr_page.cc
│ │ ├── usb.c
│ │ ├── user_ignore_sig.c
│ │ ├── user_ignore_sig.run
│ │ ├── userfaultfd.c
│ │ ├── util.h
│ │ ├── util.py
│ │ ├── util.sh
│ │ ├── util_internal.h
│ │ ├── util_syscall.h
│ │ ├── utimes.c
│ │ ├── v4l_dmabuf.c
│ │ ├── vdso_clock_gettime_stack.c
│ │ ├── vdso_clock_gettime_stack.run
│ │ ├── vdso_gettimeofday_stack.c
│ │ ├── vdso_gettimeofday_stack.run
│ │ ├── vdso_parts.c
│ │ ├── vdso_stack.py
│ │ ├── vdso_symbols.c
│ │ ├── vdso_time_stack.c
│ │ ├── vdso_time_stack.run
│ │ ├── vfork.c
│ │ ├── vfork.run
│ │ ├── vfork_break_parent.py
│ │ ├── vfork_break_parent.run
│ │ ├── vfork_done.c
│ │ ├── vfork_done_clone.run
│ │ ├── vfork_exec.run
│ │ ├── vfork_flush.c
│ │ ├── vfork_read_clone_stress.c
│ │ ├── vfork_read_clone_stress.py
│ │ ├── vfork_read_clone_stress.run
│ │ ├── vfork_setopts.c
│ │ ├── vfork_shared.c
│ │ ├── video_capture.c
│ │ ├── vm_readv_writev.c
│ │ ├── vsyscall.c
│ │ ├── vsyscall_reverse_next.c
│ │ ├── vsyscall_reverse_next.py
│ │ ├── vsyscall_reverse_next.run
│ │ ├── vsyscall_singlestep.run
│ │ ├── vsyscall_timeslice.c
│ │ ├── wait.c
│ │ ├── wait_for_all.c
│ │ ├── wait_for_all.run
│ │ ├── wait_sigstop.c
│ │ ├── watch_code.py
│ │ ├── watch_code.run
│ │ ├── watchpoint.c
│ │ ├── watchpoint.py
│ │ ├── watchpoint.run
│ │ ├── watchpoint_at_sched.c
│ │ ├── watchpoint_at_sched.py
│ │ ├── watchpoint_at_sched.run
│ │ ├── watchpoint_before_signal.c
│ │ ├── watchpoint_before_signal.py
│ │ ├── watchpoint_before_signal.run
│ │ ├── watchpoint_cond.py
│ │ ├── watchpoint_cond.run
│ │ ├── watchpoint_no_progress.c
│ │ ├── watchpoint_no_progress.py
│ │ ├── watchpoint_no_progress.run
│ │ ├── watchpoint_size_change.c
│ │ ├── watchpoint_size_change.py
│ │ ├── watchpoint_size_change.run
│ │ ├── watchpoint_step.py
│ │ ├── watchpoint_step.run
│ │ ├── watchpoint_syscall.c
│ │ ├── watchpoint_syscall.py
│ │ ├── watchpoint_syscall.run
│ │ ├── watchpoint_unaligned.c
│ │ ├── watchpoint_unaligned.py
│ │ ├── watchpoint_unaligned.run
│ │ ├── watchpoint_unaligned2.c
│ │ ├── watchpoint_unaligned2.py
│ │ ├── watchpoint_unaligned2.run
│ │ ├── when.py
│ │ ├── when.run
│ │ ├── when_threads.c
│ │ ├── when_threads.py
│ │ ├── when_threads.run
│ │ ├── write_race.c
│ │ ├── writev.c
│ │ ├── x86/
│ │ │ ├── arch_prctl_x86.c
│ │ │ ├── arch_prctl_xstate.c
│ │ │ ├── blocked_sigsegv.c
│ │ │ ├── blocked_sigsegv.run
│ │ │ ├── break_rdtsc.run
│ │ │ ├── chew_cpu_cpuid.c
│ │ │ ├── cpuid.c
│ │ │ ├── cpuid.run
│ │ │ ├── cpuid_loop.S
│ │ │ ├── cpuid_same_state.c
│ │ │ ├── cpuid_singlestep.c
│ │ │ ├── cpuid_singlestep.py
│ │ │ ├── cpuid_singlestep.run
│ │ │ ├── cross_arch.c
│ │ │ ├── deferred_patch.c
│ │ │ ├── diversion_rdtsc.c
│ │ │ ├── diversion_rdtsc.py
│ │ │ ├── diversion_rdtsc.run
│ │ │ ├── explicit_checkpoints.c
│ │ │ ├── explicit_checkpoints.py
│ │ │ ├── explicit_checkpoints.run
│ │ │ ├── fault_in_code_page.c
│ │ │ ├── fxregs.c
│ │ │ ├── fxregs.py
│ │ │ ├── fxregs.run
│ │ │ ├── gdb_avx512.c
│ │ │ ├── gdb_avx512.py
│ │ │ ├── gdb_avx512.run
│ │ │ ├── hle.c
│ │ │ ├── hlt.c
│ │ │ ├── int3_ok.c
│ │ │ ├── int3_ok.run
│ │ │ ├── ioperm.c
│ │ │ ├── iopl.c
│ │ │ ├── la57.c
│ │ │ ├── lsl.c
│ │ │ ├── modify_ldt.c
│ │ │ ├── morestack_unwind.c
│ │ │ ├── morestack_unwind.py
│ │ │ ├── morestack_unwind.run
│ │ │ ├── old_fork.c
│ │ │ ├── patch_40_80_f6_81.c
│ │ │ ├── patch_40_80_f6_81.run
│ │ │ ├── patch_pc_rel.c
│ │ │ ├── patch_pc_rel.run
│ │ │ ├── patch_syscall_restart.c
│ │ │ ├── pkeys.c
│ │ │ ├── ptrace.c
│ │ │ ├── ptrace_debug_regs.c
│ │ │ ├── ptrace_exec32.c
│ │ │ ├── ptrace_sysemu.c
│ │ │ ├── ptrace_tls.c
│ │ │ ├── rdtsc.c
│ │ │ ├── rdtsc_flags.c
│ │ │ ├── rdtsc_interfering.c
│ │ │ ├── rdtsc_interfering.run
│ │ │ ├── rdtsc_loop.c
│ │ │ ├── rdtsc_loop.run
│ │ │ ├── rdtsc_loop2.c
│ │ │ ├── rdtsc_loop2.run
│ │ │ ├── set_thread_area.c
│ │ │ ├── signal_xmm_state.c
│ │ │ ├── sigreturn.c
│ │ │ ├── sigreturn_checksum.run
│ │ │ ├── singlestep_pushf.c
│ │ │ ├── singlestep_pushf.py
│ │ │ ├── singlestep_pushf.run
│ │ │ ├── step_rdtsc.py
│ │ │ ├── step_rdtsc.run
│ │ │ ├── string_instructions.c
│ │ │ ├── string_instructions.py
│ │ │ ├── string_instructions.run
│ │ │ ├── string_instructions_async_signals.c
│ │ │ ├── string_instructions_async_signals.run
│ │ │ ├── string_instructions_async_signals_shared.c
│ │ │ ├── string_instructions_async_signals_shared.run
│ │ │ ├── string_instructions_break.py
│ │ │ ├── string_instructions_break.run
│ │ │ ├── string_instructions_multiwatch.c
│ │ │ ├── string_instructions_multiwatch.py
│ │ │ ├── string_instructions_multiwatch.run
│ │ │ ├── string_instructions_replay.c
│ │ │ ├── string_instructions_replay.run
│ │ │ ├── string_instructions_replay_quirk.py
│ │ │ ├── string_instructions_replay_quirk.run
│ │ │ ├── string_instructions_singlestep_fastforward.c
│ │ │ ├── string_instructions_singlestep_fastforward.run
│ │ │ ├── string_instructions_watch.c
│ │ │ ├── string_instructions_watch.py
│ │ │ ├── string_instructions_watch.run
│ │ │ ├── syscallbuf_branch_check.c
│ │ │ ├── syscallbuf_branch_check.run
│ │ │ ├── syscallbuf_rdtsc_page.c
│ │ │ ├── syscallbuf_rdtsc_page.run
│ │ │ ├── sysfs.c
│ │ │ ├── util.h
│ │ │ ├── util.sh
│ │ │ ├── watchpoint_error.c
│ │ │ ├── watchpoint_error.py
│ │ │ ├── watchpoint_error.run
│ │ │ └── x87env.c
│ │ ├── xattr.c
│ │ └── zero_length_read.c
│ ├── test-monitor/
│ │ └── test-monitor.cc
│ ├── util.cc
│ └── util.h
└── third-party/
├── blake2/
│ ├── README
│ ├── blake2-impl.h
│ ├── blake2.h
│ ├── neon/
│ │ ├── blake2b-load-neon.h
│ │ ├── blake2b-neon.c
│ │ ├── blake2b-round.h
│ │ └── blake2b.c
│ └── sse/
│ ├── blake2-config.h
│ ├── blake2b-load-sse2.h
│ ├── blake2b-load-sse41.h
│ ├── blake2b-round.h
│ └── blake2b.c
├── brotli/
│ ├── README.md
│ ├── common/
│ │ ├── constants.c
│ │ ├── constants.h
│ │ ├── context.c
│ │ ├── context.h
│ │ ├── dictionary.bin.br
│ │ ├── dictionary.c
│ │ ├── dictionary.h
│ │ ├── platform.c
│ │ ├── platform.h
│ │ ├── shared_dictionary.c
│ │ ├── shared_dictionary_internal.h
│ │ ├── transform.c
│ │ ├── transform.h
│ │ └── version.h
│ ├── dec/
│ │ ├── bit_reader.c
│ │ ├── bit_reader.h
│ │ ├── decode.c
│ │ ├── huffman.c
│ │ ├── huffman.h
│ │ ├── prefix.h
│ │ ├── state.c
│ │ └── state.h
│ ├── enc/
│ │ ├── backward_references.c
│ │ ├── backward_references.h
│ │ ├── backward_references_hq.c
│ │ ├── backward_references_hq.h
│ │ ├── backward_references_inc.h
│ │ ├── bit_cost.c
│ │ ├── bit_cost.h
│ │ ├── bit_cost_inc.h
│ │ ├── block_encoder_inc.h
│ │ ├── block_splitter.c
│ │ ├── block_splitter.h
│ │ ├── block_splitter_inc.h
│ │ ├── brotli_bit_stream.c
│ │ ├── brotli_bit_stream.h
│ │ ├── cluster.c
│ │ ├── cluster.h
│ │ ├── cluster_inc.h
│ │ ├── command.c
│ │ ├── command.h
│ │ ├── compound_dictionary.c
│ │ ├── compound_dictionary.h
│ │ ├── compress_fragment.c
│ │ ├── compress_fragment.h
│ │ ├── compress_fragment_two_pass.c
│ │ ├── compress_fragment_two_pass.h
│ │ ├── dictionary_hash.c
│ │ ├── dictionary_hash.h
│ │ ├── encode.c
│ │ ├── encoder_dict.c
│ │ ├── encoder_dict.h
│ │ ├── entropy_encode.c
│ │ ├── entropy_encode.h
│ │ ├── entropy_encode_static.h
│ │ ├── fast_log.c
│ │ ├── fast_log.h
│ │ ├── find_match_length.h
│ │ ├── hash.h
│ │ ├── hash_composite_inc.h
│ │ ├── hash_forgetful_chain_inc.h
│ │ ├── hash_longest_match64_inc.h
│ │ ├── hash_longest_match_inc.h
│ │ ├── hash_longest_match_quickly_inc.h
│ │ ├── hash_rolling_inc.h
│ │ ├── hash_to_binary_tree_inc.h
│ │ ├── histogram.c
│ │ ├── histogram.h
│ │ ├── histogram_inc.h
│ │ ├── literal_cost.c
│ │ ├── literal_cost.h
│ │ ├── memory.c
│ │ ├── memory.h
│ │ ├── metablock.c
│ │ ├── metablock.h
│ │ ├── metablock_inc.h
│ │ ├── params.h
│ │ ├── prefix.h
│ │ ├── quality.h
│ │ ├── ringbuffer.h
│ │ ├── state.h
│ │ ├── static_dict.c
│ │ ├── static_dict.h
│ │ ├── static_dict_lut.h
│ │ ├── utf8_util.c
│ │ ├── utf8_util.h
│ │ └── write_bits.h
│ └── include/
│ └── brotli/
│ ├── decode.h
│ ├── encode.h
│ ├── port.h
│ ├── shared_dictionary.h
│ └── types.h
├── gdb/
│ ├── 32bit-avx.xml
│ ├── 32bit-avx512.xml
│ ├── 32bit-core.xml
│ ├── 32bit-linux.xml
│ ├── 32bit-pkeys.xml
│ ├── 32bit-sse.xml
│ ├── 64bit-avx.xml
│ ├── 64bit-avx512.xml
│ ├── 64bit-core.xml
│ ├── 64bit-linux.xml
│ ├── 64bit-pkeys.xml
│ ├── 64bit-seg.xml
│ ├── 64bit-sse.xml
│ ├── README
│ ├── aarch64-core.xml
│ ├── aarch64-fpu.xml
│ └── aarch64-pauth.xml
├── proc-service/
│ ├── README
│ └── proc_service.h
└── zen-pmu-workaround/
├── README
└── zen_workaround.c
================================================
FILE CONTENTS
================================================
================================================
FILE: .android/Dockerfile
================================================
FROM ubuntu:latest
ARG ndk_version=r27c
RUN apt-get update && apt-get install -y \
build-essential \
curl \
cmake \
ninja-build \
python3 \
unzip
RUN curl -o ndk.zip https://dl.google.com/android/repository/android-ndk-${ndk_version}-linux.zip
RUN unzip ndk.zip && mv android-ndk-${ndk_version} /ndk
RUN curl -o capnproto.tar.gz https://capnproto.org/capnproto-c++-0.10.2.tar.gz
RUN mkdir -p /src/capnproto
RUN tar zxf capnproto.tar.gz -C /src/capnproto --strip-components=1
RUN mkdir -p /build/capnproto
RUN cd /build/capnproto
RUN /src/capnproto/configure
RUN make -j$(nproc) install
RUN cd -
RUN mkdir -p /build/rr
RUN chmod 777 /build/rr
WORKDIR /build/rr
CMD ["/bin/bash", "/src/rr/.android/build.sh"]
================================================
FILE: .android/README.md
================================================
# Building for Android
To build for Android (from the root of the rr source tree):
```
docker build .android -t rr-android
mkdir -p obj/dist
docker run -it --rm \
-u $UID:$GID \
-v $(pwd):/src/rr \
-v $(pwd)/obj/dist:/dist \
rr-android
```
`-u $UID:GID` ensures that the build runs with your current UID/GID, which is
necessary to avoid the output being only writable by root.
`-v $(pwd):/src/rr` mounts the source tree in the container so it can be built.
`-v $(pwd)/obj/dist:/dist` sets the output directory for the container to the
current directory. The last step of the build will copy the rr tarball to the
directory on the left of `:`.
================================================
FILE: .android/build.sh
================================================
#!/usr/bin/env bash
set -e
set -x
DEVICE_CMAKE_DEFS="-DCMAKE_TOOLCHAIN_FILE=/ndk/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DANDROID_PLATFORM=android-28"
# Build capnp again for the device
INSTALL_PREFIX=$(pwd)/install
mkdir -p $INSTALL_PREFIX
mkdir capnproto-android
cd capnproto-android
cmake -G Ninja \
$DEVICE_CMAKE_DEFS \
-DEXTERNAL_CAPNP=True \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
/src/capnproto
cmake --build .
cmake --install .
cd -
mkdir obj
cd obj
cmake -G Ninja \
$DEVICE_CMAKE_DEFS \
-Ddisable32bit=True \
-DBUILD_TESTS=False \
-DCMAKE_FIND_ROOT_PATH=$INSTALL_PREFIX \
-DSKIP_PKGCONFIG=True \
-DEXTRA_VERSION_STRING="$BUILD_ID" \
-DZLIB_LDFLAGS=-lz \
-DEXTRA_EXTERNAL_SOLIBS="/build/rr/capnproto-android/src/kj/libkj.so;/build/rr/capnproto-android/src/capnp/libcapnp.so" \
/src/rr
cmake --build .
cpack -G TGZ
cp dist/* /dist/
================================================
FILE: .buildkite/.gitignore
================================================
test.yml
test-*.yml
================================================
FILE: .buildkite/CTestCostData.txt
================================================
check_environment 2 0.0177417
64bit_child 2 0.388554
64bit_child-no-syscallbuf 2 0.343397
_llseek 2 0.178732
_llseek-no-syscallbuf 2 0.176157
abort 2 0.405355
abort-no-syscallbuf 2 0.401123
accept 2 0.296525
accept-no-syscallbuf 2 0.238087
acct 2 0.172497
acct-no-syscallbuf 2 0.157378
adjtimex 2 0.164065
adjtimex-no-syscallbuf 2 0.157286
aio 2 0.174191
aio-no-syscallbuf 2 0.172184
alarm 2 2.31239
alarm-no-syscallbuf 2 2.62346
alarm2 2 1.14969
alarm2-no-syscallbuf 2 1.17563
alsa_ioctl 2 0.183019
alsa_ioctl-no-syscallbuf 2 0.175809
arch_prctl 2 0.165938
arch_prctl-no-syscallbuf 2 0.164753
async_segv_ignored 2 0.176697
async_segv_ignored-no-syscallbuf 2 0.158012
at_threadexit 2 0.222064
at_threadexit-no-syscallbuf 2 0.206986
bad_ip 2 0.165407
bad_ip-no-syscallbuf 2 0.187529
bad_syscall 2 0.174693
bad_syscall-no-syscallbuf 2 0.143219
barrier 2 0.33947
barrier-no-syscallbuf 2 0.335352
big_buffers 2 0.180078
big_buffers-no-syscallbuf 2 0.185628
block 2 9.35626
block-no-syscallbuf 2 9.41618
block_open 2 0.213755
block_open-no-syscallbuf 2 0.210349
bpf 2 0.19726
bpf-no-syscallbuf 2 0.178959
bpf_map 2 0.182377
bpf_map-no-syscallbuf 2 0.16628
brk 2 0.202035
brk-no-syscallbuf 2 0.268974
brk2 2 0.192675
brk2-no-syscallbuf 2 0.1618
capget 2 0.186253
capget-no-syscallbuf 2 0.178183
chew_cpu 2 9.10871
chew_cpu-no-syscallbuf 2 9.7596
x86/chew_cpu_cpuid 2 0.909633
x86/chew_cpu_cpuid-no-syscallbuf 2 0.241009
chmod 2 0.175173
chmod-no-syscallbuf 2 0.193
chown 2 0.260438
chown-no-syscallbuf 2 0.247314
clock 2 0.321689
clock-no-syscallbuf 2 0.405406
clock_adjtime 2 0.179823
clock_adjtime-no-syscallbuf 2 0.182865
clock_nanosleep 2 1.17138
clock_nanosleep-no-syscallbuf 2 1.15077
clock_time64 2 0.18665
clock_time64-no-syscallbuf 2 0.16131
clone 2 0.184247
clone-no-syscallbuf 2 0.194884
clone_bad_stack 2 0.322686
clone_bad_stack-no-syscallbuf 2 0.305627
clone_bad_tls 2 0.200441
clone_bad_tls-no-syscallbuf 2 0.159102
clone_cleartid_coredump 2 0.382393
clone_cleartid_coredump-no-syscallbuf 2 0.327541
clone_fail 2 0.182033
clone_fail-no-syscallbuf 2 0.160097
clone_file_range 2 0.225524
clone_file_range-no-syscallbuf 2 0.19126
clone_immediate_exit 2 0.187786
clone_immediate_exit-no-syscallbuf 2 0.184644
clone_newflags 2 0.187025
clone_newflags-no-syscallbuf 2 0.945696
clone_parent 2 0.182157
clone_parent-no-syscallbuf 2 0.204792
clone_untraced 2 0.196201
clone_untraced-no-syscallbuf 2 0.207853
clone_vfork_pidfd 2 0.168749
clone_vfork_pidfd-no-syscallbuf 2 0.169371
cloned_sigmask 2 0.304638
cloned_sigmask-no-syscallbuf 2 0.315861
constructor 2 2.22217
constructor-no-syscallbuf 2 2.21146
copy_file_range 2 0.187135
copy_file_range-no-syscallbuf 2 0.181734
x86/cpuid_same_state 2 0.159951
x86/cpuid_same_state-no-syscallbuf 2 0.165536
creat_address_not_truncated 2 0.182924
creat_address_not_truncated-no-syscallbuf 2 0.17218
x86/cross_arch 2 0.175549
x86/cross_arch-no-syscallbuf 2 0.173372
cwd_inaccessible 2 0.275782
cwd_inaccessible-no-syscallbuf 2 0.234584
daemon 2 0.205866
daemon-no-syscallbuf 2 0.174672
desched_blocking_poll 2 0.184894
desched_blocking_poll-no-syscallbuf 2 0.172352
desched_sigkill 2 0.30291
desched_sigkill-no-syscallbuf 2 0.240905
detach_state 2 0.219355
detach_state-no-syscallbuf 2 0.220512
detach_threads 2 0.314015
detach_threads-no-syscallbuf 2 0.280626
detach_sigkill 2 0.196443
detach_sigkill-no-syscallbuf 2 0.218506
detach_sigkill_exit 2 0.207984
detach_sigkill_exit-no-syscallbuf 2 0.197267
deterministic_sigsys 2 0.346079
deterministic_sigsys-no-syscallbuf 2 0.307801
dev_zero 2 0.154614
dev_zero-no-syscallbuf 2 0.23869
direct 2 0.243545
direct-no-syscallbuf 2 0.172084
dup 2 0.232475
dup-no-syscallbuf 2 0.189027
doublesegv 2 0.501823
doublesegv-no-syscallbuf 2 0.408514
epoll_create 2 0.194815
epoll_create-no-syscallbuf 2 0.153384
epoll_create1 2 0.171597
epoll_create1-no-syscallbuf 2 0.17207
epoll_edge 2 0.178929
epoll_edge-no-syscallbuf 2 0.158552
epoll_pwait_eintr_sigmask 2 2.19519
epoll_pwait_eintr_sigmask-no-syscallbuf 2 2.21515
eventfd 2 0.165454
eventfd-no-syscallbuf 2 0.166546
exec_flags 2 0.161951
exec_flags-no-syscallbuf 2 0.183996
exec_no_env 2 0.220634
exec_no_env-no-syscallbuf 2 0.212066
exec_self 2 0.235062
exec_self-no-syscallbuf 2 0.228894
exec_from_main_thread 2 0.274183
exec_from_main_thread-no-syscallbuf 2 0.293866
exec_from_other_thread 2 16.1407
exec_from_other_thread-no-syscallbuf 2 7.33557
exec_stopsig 2 0.251712
exec_stopsig-no-syscallbuf 2 0.344252
execveat 2 0.231512
execveat-no-syscallbuf 2 0.227455
exit_with_syscallbuf_signal 2 0.217025
exit_with_syscallbuf_signal-no-syscallbuf 2 0.167443
fadvise 2 0.170039
fadvise-no-syscallbuf 2 0.160222
fanotify 2 0.174126
fanotify-no-syscallbuf 2 0.166894
fatal_init_signal 2 0.220292
fatal_init_signal-no-syscallbuf 2 0.191934
fatal_sigsegv_thread 2 0.645623
fatal_sigsegv_thread-no-syscallbuf 2 0.624305
x86/fault_in_code_page 2 0.18644
x86/fault_in_code_page-no-syscallbuf 2 0.183687
fcntl_dupfd 2 0.178214
fcntl_dupfd-no-syscallbuf 2 0.18758
fcntl_misc 2 0.178466
fcntl_misc-no-syscallbuf 2 0.164349
fcntl_notify 2 0.178185
fcntl_notify-no-syscallbuf 2 0.17075
fcntl_owner_ex 2 0.172739
fcntl_owner_ex-no-syscallbuf 2 0.189245
fcntl_rw_hints 2 0.177118
fcntl_rw_hints-no-syscallbuf 2 0.169723
fcntl_seals 2 0.169003
fcntl_seals-no-syscallbuf 2 0.16143
fcntl_sig 2 0.192377
fcntl_sig-no-syscallbuf 2 0.172423
fd_cleanup 2 0.181429
fd_cleanup-no-syscallbuf 2 0.190582
fd_tracking_across_threads 2 0.233957
fd_tracking_across_threads-no-syscallbuf 2 0.202603
fds_clean 2 0.281325
fds_clean-no-syscallbuf 2 0.250604
flock 2 0.684811
flock-no-syscallbuf 2 1.10324
flock_ofd 2 0.251028
flock_ofd-no-syscallbuf 2 0.608903
flock2 2 0.178437
flock2-no-syscallbuf 2 0.166685
fork_brk 2 0.22916
fork_brk-no-syscallbuf 2 0.161856
fork_child_crash 2 0.297335
fork_child_crash-no-syscallbuf 2 0.305658
fork_many 2 1.1968
fork_many-no-syscallbuf 2 0.665619
futex_exit_race 2 0.580114
futex_exit_race-no-syscallbuf 2 0.402464
futex_exit_race_sigsegv 2 0.56445
futex_exit_race_sigsegv-no-syscallbuf 2 0.393731
futex_pi 2 0.215186
futex_pi-no-syscallbuf 2 0.181878
futex_priorities 2 0.261775
futex_priorities-no-syscallbuf 2 0.198346
futex_requeue 2 1.18771
futex_requeue-no-syscallbuf 2 1.18066
gcrypt_rdrand 2 0.178023
gcrypt_rdrand-no-syscallbuf 2 0.167756
getcpu 2 0.22876
getcpu-no-syscallbuf 2 0.167692
getgroups 2 0.172681
getgroups-no-syscallbuf 2 0.17935
getpwnam 2 0.237821
getpwnam-no-syscallbuf 2 0.32354
getrandom 2 0.204551
getrandom-no-syscallbuf 2 0.194019
setitimer 2 0.222777
setitimer-no-syscallbuf 2 0.175497
getsid 2 0.184714
getsid-no-syscallbuf 2 0.172561
gettimeofday 2 0.179022
gettimeofday-no-syscallbuf 2 0.18866
grandchild_threads 2 0.219542
grandchild_threads-no-syscallbuf 2 0.193676
grandchild_threads_main_running 2 2.24898
grandchild_threads_main_running-no-syscallbuf 2 2.27881
grandchild_threads_thread_running 2 5.26817
grandchild_threads_thread_running-no-syscallbuf 2 5.25683
grandchild_threads_parent_alive 2 0.197781
grandchild_threads_parent_alive-no-syscallbuf 2 0.224033
x86/hle 2 1.06105
x86/hle-no-syscallbuf 2 0.951817
inotify 2 0.206718
inotify-no-syscallbuf 2 0.161259
int3 2 0.174208
int3-no-syscallbuf 2 0.153777
intr_futex_wait_restart 2 1.77408
intr_futex_wait_restart-no-syscallbuf 2 1.69339
intr_poll 2 3.71479
intr_poll-no-syscallbuf 2 3.66918
intr_ppoll 2 21.3612
intr_ppoll-no-syscallbuf 2 21.3163
intr_pselect 2 9.16476
intr_pselect-no-syscallbuf 2 9.20851
intr_read_no_restart 2 1.40236
intr_read_no_restart-no-syscallbuf 2 1.32017
intr_read_restart 2 2.42967
intr_read_restart-no-syscallbuf 2 2.44465
intr_sleep 2 4.18177
intr_sleep-no-syscallbuf 2 4.16812
intr_sleep_no_restart 2 2.16093
intr_sleep_no_restart-no-syscallbuf 2 1.78601
invalid_exec 2 0.179465
invalid_exec-no-syscallbuf 2 0.174301
invalid_fcntl 2 0.175987
invalid_fcntl-no-syscallbuf 2 0.165666
invalid_ioctl 2 0.181297
invalid_ioctl-no-syscallbuf 2 0.176853
io 2 0.171498
io-no-syscallbuf 2 0.161433
io_uring 2 0.170709
io_uring-no-syscallbuf 2 0.225948
ioctl 2 0.182441
ioctl-no-syscallbuf 2 0.167527
ioctl_blk 2 0.176945
ioctl_blk-no-syscallbuf 2 0.184102
ioctl_fb 2 0.191506
ioctl_fb-no-syscallbuf 2 0.18009
ioctl_fs 2 0.185416
ioctl_fs-no-syscallbuf 2 0.183753
ioctl_pty 2 0.211126
ioctl_pty-no-syscallbuf 2 0.193052
ioctl_sg 2 0.18375
ioctl_sg-no-syscallbuf 2 0.16753
ioctl_tty 2 0.356545
ioctl_tty-no-syscallbuf 2 0.213868
ioctl_vt 2 0.244868
ioctl_vt-no-syscallbuf 2 0.159736
ioprio 2 0.169212
ioprio-no-syscallbuf 2 0.178082
x86/ioperm 2 0.186083
x86/ioperm-no-syscallbuf 2 0.164016
x86/iopl 2 0.185867
x86/iopl-no-syscallbuf 2 0.182458
join_threads 2 4.90819
join_threads-no-syscallbuf 2 3.54206
joystick 2 0.159592
joystick-no-syscallbuf 2 0.201406
kcmp 2 0.19948
kcmp-no-syscallbuf 2 0.168435
keyctl 2 0.187736
keyctl-no-syscallbuf 2 0.171832
kill_newborn 2 0.413833
kill_newborn-no-syscallbuf 2 0.300332
kill_ptracee 2 1.81914
kill_ptracee-no-syscallbuf 2 1.77773
large_hole 2 0.188435
large_hole-no-syscallbuf 2 0.170501
large_write_deadlock 2 0.205733
large_write_deadlock-no-syscallbuf 2 0.198197
legacy_ugid 2 0.165708
legacy_ugid-no-syscallbuf 2 0.182131
x86/lsl 2 0.167781
x86/lsl-no-syscallbuf 2 0.167028
madvise 2 0.190806
madvise-no-syscallbuf 2 0.196604
madvise_free 2 0.200002
madvise_free-no-syscallbuf 2 0.171689
madvise_wipeonfork 2 0.317507
madvise_wipeonfork-no-syscallbuf 2 0.348225
map_fixed 2 0.167354
map_fixed-no-syscallbuf 2 0.179426
map_shared_syscall 2 0.175052
map_shared_syscall-no-syscallbuf 2 0.170174
membarrier 2 0.228412
membarrier-no-syscallbuf 2 0.230171
memfd_create 2 0.182084
memfd_create-no-syscallbuf 2 0.169879
memfd_create_shared 2 0.222174
memfd_create_shared-no-syscallbuf 2 0.174558
memfd_create_shared_huge 2 0.185374
memfd_create_shared_huge-no-syscallbuf 2 0.223016
mincore 2 0.174544
mincore-no-syscallbuf 2 0.192059
mknod 2 0.179847
mknod-no-syscallbuf 2 0.196489
mlock 2 0.173352
mlock-no-syscallbuf 2 0.167404
mmap_adjacent_to_rr_usage 2 0.17767
mmap_adjacent_to_rr_usage-no-syscallbuf 2 0.186486
mmap_private 2 1.12045
mmap_private-no-syscallbuf 2 1.06585
mmap_private_grow_under_map 2 0.189616
mmap_private_grow_under_map-no-syscallbuf 2 0.155726
mmap_recycle 2 0.20233
mmap_recycle-no-syscallbuf 2 0.211311
mmap_ro 2 0.185541
mmap_ro-no-syscallbuf 2 0.169573
mmap_self_maps_shared 2 0.229838
mmap_self_maps_shared-no-syscallbuf 2 0.281218
mmap_shared 2 0.191652
mmap_shared-no-syscallbuf 2 0.220219
mmap_shared_dev_zero 2 0.212095
mmap_shared_dev_zero-no-syscallbuf 2 0.183368
mmap_shared_grow 2 0.177507
mmap_shared_grow-no-syscallbuf 2 0.178328
mmap_shared_grow_under_map 2 0.199644
mmap_shared_grow_under_map-no-syscallbuf 2 0.166737
mmap_shared_multiple 2 0.19847
mmap_shared_multiple-no-syscallbuf 2 0.157765
mmap_shared_subpage 2 0.218759
mmap_shared_subpage-no-syscallbuf 2 0.231295
mmap_shared_write 2 6.26377
mmap_shared_write-no-syscallbuf 2 7.91176
mmap_shared_write_fork 2 0.237884
mmap_shared_write_fork-no-syscallbuf 2 3.13827
mmap_short_file 2 0.189922
mmap_short_file-no-syscallbuf 2 0.171696
mmap_write_complex 2 0.202205
mmap_write_complex-no-syscallbuf 2 0.175287
mmap_zero_size_fd 2 0.18312
mmap_zero_size_fd-no-syscallbuf 2 0.162213
x86/modify_ldt 2 0.188821
x86/modify_ldt-no-syscallbuf 2 0.166663
mount_ns_exec 2 0.23793
mount_ns_exec-no-syscallbuf 2 0.250413
mount_ns_exec2 2 0.24358
mount_ns_exec2-no-syscallbuf 2 0.268304
mprotect 2 0.191343
mprotect-no-syscallbuf 2 0.166355
mprotect_heterogenous 2 0.193389
mprotect_heterogenous-no-syscallbuf 2 0.184813
mprotect_none 2 0.19807
mprotect_none-no-syscallbuf 2 0.172753
mprotect_stack 2 0.171026
mprotect_stack-no-syscallbuf 2 0.183265
mq 2 2.18257
mq-no-syscallbuf 2 2.24255
mremap 2 2.04727
mremap-no-syscallbuf 2 8.17459
mremap_after_coalesce 2 0.17843
mremap_after_coalesce-no-syscallbuf 2 0.20688
mremap_grow 2 0.20804
mremap_grow-no-syscallbuf 2 0.160446
mremap_grow_shared 2 0.225226
mremap_grow_shared-no-syscallbuf 2 0.16525
mremap_non_page_size 2 0.177265
mremap_non_page_size-no-syscallbuf 2 1.12233
mremap_overwrite 2 0.17549
mremap_overwrite-no-syscallbuf 2 0.160699
mremap_private_grow_under_map 2 0.1715
mremap_private_grow_under_map-no-syscallbuf 2 0.187527
mremap_shrink 2 0.182712
mremap_shrink-no-syscallbuf 2 0.167213
msg 2 1.72379
msg-no-syscallbuf 2 1.69238
msg_trunc 2 0.185576
msg_trunc-no-syscallbuf 2 0.170801
msync 2 1.10828
msync-no-syscallbuf 2 1.67113
mtio 2 0.175655
mtio-no-syscallbuf 2 0.185065
multiple_pending_signals 2 0.241691
multiple_pending_signals-no-syscallbuf 2 0.208994
multiple_pending_signals_sequential 2 0.228107
multiple_pending_signals_sequential-no-syscallbuf 2 0.247733
munmap_segv 2 0.187787
munmap_segv-no-syscallbuf 2 0.167144
munmap_discontinuous 2 0.178539
munmap_discontinuous-no-syscallbuf 2 0.168095
nanosleep 2 1.17135
nanosleep-no-syscallbuf 2 1.15676
netfilter 2 0.194444
netfilter-no-syscallbuf 2 0.247537
netlink_mmap_disable 2 0.179323
netlink_mmap_disable-no-syscallbuf 2 0.166943
no_mask_timeslice 2 1.0076
no_mask_timeslice-no-syscallbuf 2 0.869596
nscd 2 0.166578
nscd-no-syscallbuf 2 0.17653
numa 2 0.183699
numa-no-syscallbuf 2 0.199299
x86/old_fork 2 0.180442
x86/old_fork-no-syscallbuf 2 0.218585
orphan_process 2 0.197056
orphan_process-no-syscallbuf 2 0.188056
packet_mmap_disable 2 0.183351
packet_mmap_disable-no-syscallbuf 2 0.193332
pause 2 1.15275
pause-no-syscallbuf 2 1.17576
perf_event 2 0.204277
perf_event-no-syscallbuf 2 0.174976
personality 2 0.203447
personality-no-syscallbuf 2 0.18611
pid_ns_kill_child 2 0.46607
pid_ns_kill_child-no-syscallbuf 2 0.252649
pid_ns_kill_child_threads 2 0.239128
pid_ns_kill_child_threads-no-syscallbuf 2 0.204937
pid_ns_kill_child_zombie 2 0.275996
pid_ns_kill_child_zombie-no-syscallbuf 2 0.194321
pid_ns_kill_threads 2 0.269501
pid_ns_kill_threads-no-syscallbuf 2 0.216829
pid_ns_kill_threads_exit_wait 2 0.279025
pid_ns_kill_threads_exit_wait-no-syscallbuf 2 0.265377
pid_ns_reap 2 0.253094
pid_ns_reap-no-syscallbuf 2 0.221562
pid_ns_segv 2 0.305488
pid_ns_segv-no-syscallbuf 2 0.296093
pid_ns_shutdown 2 0.425677
pid_ns_shutdown-no-syscallbuf 2 0.401956
pidfd 2 0.239427
pidfd-no-syscallbuf 2 0.178746
x86/pkeys 2 0.195752
x86/pkeys-no-syscallbuf 2 0.151316
poll_sig_race 2 2.97674
poll_sig_race-no-syscallbuf 2 2.9028
ppoll 2 5.72922
ppoll-no-syscallbuf 2 5.73113
prctl 2 0.207562
prctl-no-syscallbuf 2 0.213663
prctl_caps 2 0.522074
prctl_caps-no-syscallbuf 2 0.399332
prctl_deathsig 2 0.202488
prctl_deathsig-no-syscallbuf 2 0.172917
prctl_name 2 0.27457
prctl_name-no-syscallbuf 2 0.272148
prctl_short_name 2 0.2066
prctl_short_name-no-syscallbuf 2 0.177081
prctl_speculation_ctrl 2 0.197116
prctl_speculation_ctrl-no-syscallbuf 2 0.161439
x86/prctl_tsc 2 0.179877
x86/prctl_tsc-no-syscallbuf 2 0.190523
privileged_net_ioctl 2 0.364182
privileged_net_ioctl-no-syscallbuf 2 0.405736
proc_fds 2 0.805502
proc_fds-no-syscallbuf 2 0.599653
proc_mem 2 0.337102
proc_mem-no-syscallbuf 2 0.315536
protect_rr_fds 2 3.74297
protect_rr_fds-no-syscallbuf 2 3.30292
prw 2 0.168392
prw-no-syscallbuf 2 0.194568
pthread_condvar_locking 2 0.185851
pthread_condvar_locking-no-syscallbuf 2 0.214291
pthread_mutex_timedlock 2 0.158389
pthread_mutex_timedlock-no-syscallbuf 2 0.183897
pthread_pi_mutex 2 0.205553
pthread_pi_mutex-no-syscallbuf 2 0.16821
pthread_rwlocks 2 0.211671
pthread_rwlocks-no-syscallbuf 2 0.196137
x86/ptrace 2 0.225648
x86/ptrace-no-syscallbuf 2 0.214048
ptrace_attach_null_status 2 0.239081
ptrace_attach_null_status-no-syscallbuf 2 0.236807
ptrace_attach_running 2 0.323048
ptrace_attach_running-no-syscallbuf 2 0.318352
ptrace_attach_sleeping 2 0.252628
ptrace_attach_sleeping-no-syscallbuf 2 0.212059
ptrace_attach_stopped 2 0.238656
ptrace_attach_stopped-no-syscallbuf 2 0.232865
ptrace_attach_thread_running 2 7.74088
ptrace_attach_thread_running-no-syscallbuf 2 9.15948
ptrace_breakpoint 2 0.205013
ptrace_breakpoint-no-syscallbuf 2 0.201343
ptrace_change_patched_syscall 2 0.195804
ptrace_change_patched_syscall-no-syscallbuf 2 0.195317
x86/ptrace_debug_regs 2 0.193017
x86/ptrace_debug_regs-no-syscallbuf 2 0.184957
ptrace_exec 2 0.301733
ptrace_exec-no-syscallbuf 2 0.29256
x86/ptrace_exec32 2 0.182961
x86/ptrace_exec32-no-syscallbuf 2 0.171233
ptrace_kill_grandtracee 2 0.200743
ptrace_kill_grandtracee-no-syscallbuf 2 0.213814
x86/ptrace_tls 2 0.249886
x86/ptrace_tls-no-syscallbuf 2 0.223517
ptrace_seize 2 0.188635
ptrace_seize-no-syscallbuf 2 0.195198
ptrace_sigchld_blocked 2 0.18947
ptrace_sigchld_blocked-no-syscallbuf 2 0.168162
ptrace_signals 2 0.345102
ptrace_signals-no-syscallbuf 2 0.289898
ptrace_singlestep 2 0.421221
ptrace_singlestep-no-syscallbuf 2 0.194343
ptrace_syscall 2 0.218101
ptrace_syscall-no-syscallbuf 2 0.179181
ptrace_syscall_clone_untraced 2 0.253265
ptrace_syscall_clone_untraced-no-syscallbuf 2 0.273692
x86/ptrace_sysemu 2 0.280929
x86/ptrace_sysemu-no-syscallbuf 2 0.260563
ptrace_sysemu_syscall 2 0.237037
ptrace_sysemu_syscall-no-syscallbuf 2 0.195508
ptrace_trace_clone 2 0.239851
ptrace_trace_clone-no-syscallbuf 2 0.228288
ptrace_trace_exit 2 0.193537
ptrace_trace_exit-no-syscallbuf 2 0.205698
ptrace_traceme 2 0.23772
ptrace_traceme-no-syscallbuf 2 0.186207
ptracer_death 2 0.231978
ptracer_death-no-syscallbuf 2 0.21803
ptracer_death_multithread 2 0.438148
ptracer_death_multithread-no-syscallbuf 2 0.64384
ptracer_death_multithread_peer 2 0.423491
ptracer_death_multithread_peer-no-syscallbuf 2 0.454556
quotactl 2 0.217318
quotactl-no-syscallbuf 2 0.195922
x86/rdtsc 2 0.259211
x86/rdtsc-no-syscallbuf 2 0.237116
read_nothing 2 8.08106
read_nothing-no-syscallbuf 2 14.8259
readdir 2 0.188428
readdir-no-syscallbuf 2 0.173345
read_large 2 0.445476
read_large-no-syscallbuf 2 1.57062
read_oversize 2 0.179858
read_oversize-no-syscallbuf 2 0.178238
readlink 2 0.188913
readlink-no-syscallbuf 2 0.225705
readlinkat 2 0.183314
readlinkat-no-syscallbuf 2 0.202814
readv 2 0.188892
readv-no-syscallbuf 2 0.184751
record_replay_subject 2 3.55163
record_replay_subject-no-syscallbuf 2 3.51079
recvfrom 2 0.167764
recvfrom-no-syscallbuf 2 0.21244
redzone_integrity 2 1.14234
redzone_integrity-no-syscallbuf 2 1.15655
rename 2 0.184375
rename-no-syscallbuf 2 0.167062
rlimit 2 0.2005
rlimit-no-syscallbuf 2 0.170453
robust_futex 2 0.212345
robust_futex-no-syscallbuf 2 0.206051
rusage 2 0.19015
rusage-no-syscallbuf 2 0.165888
samask 2 0.38831
samask-no-syscallbuf 2 0.328854
save_data_fd 2 0.177818
save_data_fd-no-syscallbuf 2 0.16115
sched_attr 2 0.178041
sched_attr-no-syscallbuf 2 0.199286
sched_setaffinity 2 0.190171
sched_setaffinity-no-syscallbuf 2 0.177428
sched_setparam 2 0.183471
sched_setparam-no-syscallbuf 2 0.164994
sched_yield 2 0.270152
sched_yield-no-syscallbuf 2 0.240553
sched_yield_to_lower_priority 2 0.183273
sched_yield_to_lower_priority-no-syscallbuf 2 0.190446
scm_rights 2 0.671003
scm_rights-no-syscallbuf 2 0.687657
scratch_read 2 0.197939
scratch_read-no-syscallbuf 2 0.186784
seccomp 2 0.212935
seccomp-no-syscallbuf 2 0.201332
seccomp_cloning 2 0.186753
seccomp_cloning-no-syscallbuf 2 0.181473
seccomp_clone_fail 2 0.172286
seccomp_clone_fail-no-syscallbuf 2 0.179858
seccomp_desched 2 0.24543
seccomp_desched-no-syscallbuf 2 0.181397
seccomp_kill_exit 2 0.198507
seccomp_kill_exit-no-syscallbuf 2 0.189345
seccomp_null 2 0.178688
seccomp_null-no-syscallbuf 2 0.231606
seccomp_sigsys_args 2 0.181621
seccomp_sigsys_args-no-syscallbuf 2 0.178718
seccomp_sigsys_sigtrap 2 0.184341
seccomp_sigsys_sigtrap-no-syscallbuf 2 0.185873
seccomp_sigsys_syscallbuf 2 0.177722
seccomp_sigsys_syscallbuf-no-syscallbuf 2 0.21653
seccomp_tsync 2 0.224772
seccomp_tsync-no-syscallbuf 2 0.198235
seccomp_veto_exec 2 0.238224
seccomp_veto_exec-no-syscallbuf 2 0.182102
self_shebang 2 0.209619
self_shebang-no-syscallbuf 2 0.234194
self_sigint 2 0.16655
self_sigint-no-syscallbuf 2 0.162785
sem 2 0.240934
sem-no-syscallbuf 2 0.220949
send_block 2 0.254059
send_block-no-syscallbuf 2 1.77992
sendfile 2 0.198339
sendfile-no-syscallbuf 2 0.186502
set_ptracer 2 0.161933
set_ptracer-no-syscallbuf 2 0.17299
set_tid_address 2 0.190797
set_tid_address-no-syscallbuf 2 0.189553
setgid 2 0.173111
setgid-no-syscallbuf 2 0.152735
setgroups 2 0.181831
setgroups-no-syscallbuf 2 0.162135
setsid 2 0.188063
setsid-no-syscallbuf 2 0.187996
setuid 2 0.360408
setuid-no-syscallbuf 2 0.245904
shared_exec 2 0.172825
shared_exec-no-syscallbuf 2 0.174199
shared_monitor 2 0.172391
shared_monitor-no-syscallbuf 2 0.168222
shared_offset 2 0.242735
shared_offset-no-syscallbuf 2 0.162085
shared_write 2 0.183634
shared_write-no-syscallbuf 2 0.178486
shm 2 0.220493
shm-no-syscallbuf 2 0.241913
shm_unmap 2 0.186592
shm_unmap-no-syscallbuf 2 0.170327
sigaction_old 2 0.19866
sigaction_old-no-syscallbuf 2 0.220548
sigaltstack 2 0.180545
sigaltstack-no-syscallbuf 2 0.1682
sigchld_interrupt_signal 2 5.15186
sigchld_interrupt_signal-no-syscallbuf 2 4.65416
sigcont 2 0.189647
sigcont-no-syscallbuf 2 0.192489
sighandler_bad_rsp_sigsegv 2 0.192811
sighandler_bad_rsp_sigsegv-no-syscallbuf 2 0.16453
sighandler_fork 2 0.25179
sighandler_fork-no-syscallbuf 2 0.223138
sighandler_mask 2 0.192857
sighandler_mask-no-syscallbuf 2 0.169821
sigill 2 0.197423
sigill-no-syscallbuf 2 0.153897
signal_deferred 2 0.206914
signal_deferred-no-syscallbuf 2 0.201921
signal_during_preload_init 2 0.207008
signal_during_preload_init-no-syscallbuf 2 0.195584
signal_frame 2 0.196477
signal_frame-no-syscallbuf 2 0.176133
signal_unstoppable 2 0.202938
signal_unstoppable-no-syscallbuf 2 0.181003
signalfd 2 0.174708
signalfd-no-syscallbuf 2 0.174824
sigprocmask 2 0.553978
sigprocmask-no-syscallbuf 2 0.545624
sigprocmask_ensure_delivery 2 0.198806
sigprocmask_ensure_delivery-no-syscallbuf 2 0.211635
sigprocmask_exec 2 0.235655
sigprocmask_exec-no-syscallbuf 2 0.224897
sigprocmask_evil 2 0.163768
sigprocmask_evil-no-syscallbuf 2 0.171957
sigprocmask_in_syscallbuf_sighandler 2 1.15345
sigprocmask_in_syscallbuf_sighandler-no-syscallbuf 2 1.14064
sigprocmask_rr_sigs 2 0.203026
sigprocmask_rr_sigs-no-syscallbuf 2 0.178018
sigprocmask_syscallbuf 2 0.197603
sigprocmask_syscallbuf-no-syscallbuf 2 0.183032
sigqueueinfo 2 0.176825
sigqueueinfo-no-syscallbuf 2 0.222178
x86/sigreturn 2 0.207268
x86/sigreturn-no-syscallbuf 2 0.203306
sigreturn_reg 2 0.163808
sigreturn_reg-no-syscallbuf 2 0.208531
sigreturnmask 2 0.386215
sigreturnmask-no-syscallbuf 2 0.342396
sigrt 2 0.286826
sigrt-no-syscallbuf 2 0.279347
sigstop 2 0.259614
sigstop-no-syscallbuf 2 0.223598
sigstop2 2 0.2055
sigstop2-no-syscallbuf 2 0.173578
sigsuspend 2 0.193424
sigsuspend-no-syscallbuf 2 0.208011
sigtrap 2 0.208714
sigtrap-no-syscallbuf 2 0.193717
simple_threads_stress 2 2.02023
simple_threads_stress-no-syscallbuf 2 2.52639
sioc 2 0.611289
sioc-no-syscallbuf 2 0.791008
small_holes 2 0.186866
small_holes-no-syscallbuf 2 0.160374
sock_names_opts 2 0.196644
sock_names_opts-no-syscallbuf 2 0.200876
spinlock_priorities 2 0.883957
spinlock_priorities-no-syscallbuf 2 1.77485
splice 2 0.1984
splice-no-syscallbuf 2 0.168069
stack_growth_after_syscallbuf 2 0.184737
stack_growth_after_syscallbuf-no-syscallbuf 2 0.180046
stack_growth_syscallbuf 2 0.260481
stack_growth_syscallbuf-no-syscallbuf 2 9.22802
stack_growth_with_guard 2 0.203816
stack_growth_with_guard-no-syscallbuf 2 0.187512
stack_invalid 2 0.207892
stack_invalid-no-syscallbuf 2 0.178875
stack_overflow 2 0.291206
stack_overflow-no-syscallbuf 2 0.270871
stack_overflow_altstack 2 0.179979
stack_overflow_altstack-no-syscallbuf 2 0.1755
stack_overflow_with_guard 2 0.269542
stack_overflow_with_guard-no-syscallbuf 2 0.235477
statfs 2 0.180439
statfs-no-syscallbuf 2 0.205603
statx 2 0.194644
statx-no-syscallbuf 2 0.163539
stdout_child 2 0.225356
stdout_child-no-syscallbuf 2 0.25816
stdout_cloexec 2 0.258915
stdout_cloexec-no-syscallbuf 2 0.218053
stdout_dup 2 0.184115
stdout_dup-no-syscallbuf 2 0.153221
stdout_redirect 2 0.324121
stdout_redirect-no-syscallbuf 2 0.236225
switch_read 2 0.69731
switch_read-no-syscallbuf 2 0.670853
symlink 2 0.185111
symlink-no-syscallbuf 2 0.19091
sync 2 0.23794
sync-no-syscallbuf 2 0.18673
sync_file_range 2 0.173225
sync_file_range-no-syscallbuf 2 0.236857
syscall_bp 2 0.177799
syscall_bp-no-syscallbuf 2 0.156245
syscall_in_writable_mem 2 0.174906
syscall_in_writable_mem-no-syscallbuf 2 0.177983
syscallbuf_signal_reset 2 0.183644
syscallbuf_signal_reset-no-syscallbuf 2 0.184238
syscallbuf_signal_blocking 2 0.190065
syscallbuf_signal_blocking-no-syscallbuf 2 0.198511
syscallbuf_sigstop 2 9.68564
syscallbuf_sigstop-no-syscallbuf 2 28.1754
syscallbuf_timeslice 2 0.251698
syscallbuf_timeslice-no-syscallbuf 2 3.52121
syscallbuf_timeslice2 2 0.249679
syscallbuf_timeslice2-no-syscallbuf 2 9.23084
sysconf 2 0.186269
sysconf-no-syscallbuf 2 0.159917
sysctl 2 0.185003
sysctl-no-syscallbuf 2 0.158481
sysemu_singlestep 2 0.182821
sysemu_singlestep-no-syscallbuf 2 0.162622
x86/sysfs 2 0.227965
x86/sysfs-no-syscallbuf 2 0.237494
sysinfo 2 0.193888
sysinfo-no-syscallbuf 2 0.164539
tgkill 2 0.238723
tgkill-no-syscallbuf 2 0.185187
thread_yield 2 5.33778
thread_yield-no-syscallbuf 2 3.68714
timer 2 63.0617
timer-no-syscallbuf 2 65.8362
timerfd 2 0.313991
timerfd-no-syscallbuf 2 0.272372
times 2 0.20467
times-no-syscallbuf 2 0.160248
truncate_temp 2 0.208904
truncate_temp-no-syscallbuf 2 0.200974
tun 2 0.258967
tun-no-syscallbuf 2 0.207755
two_signals_with_mask 2 0.191743
two_signals_with_mask-no-syscallbuf 2 0.177604
ulimit_low 2 0.193423
ulimit_low-no-syscallbuf 2 0.187551
uname 2 0.189885
uname-no-syscallbuf 2 0.16555
unexpected_exit 2 0.244427
unexpected_exit-no-syscallbuf 2 0.54684
unexpected_exit_execve 2 0.267448
unexpected_exit_execve-no-syscallbuf 2 0.494722
unexpected_exit_execve_twice 2 1.3297
unexpected_exit_execve_twice-no-syscallbuf 2 1.43974
unexpected_exit_pid_ns 2 0.741595
unexpected_exit_pid_ns-no-syscallbuf 2 0.233324
unjoined_thread 2 0.182445
unjoined_thread-no-syscallbuf 2 0.172195
unshare 2 0.35039
unshare-no-syscallbuf 2 1.13442
userfaultfd 2 0.169134
userfaultfd-no-syscallbuf 2 0.183975
utimes 2 0.189225
utimes-no-syscallbuf 2 0.168458
vdso_parts 2 0.166982
vdso_parts-no-syscallbuf 2 0.159098
vfork_flush 2 0.20091
vfork_flush-no-syscallbuf 2 0.169755
vfork_shared 2 0.267209
vfork_shared-no-syscallbuf 2 0.171063
video_capture 2 0.17876
video_capture-no-syscallbuf 2 0.184013
vm_readv_writev 2 0.206471
vm_readv_writev-no-syscallbuf 2 0.189777
vsyscall 2 0.198179
vsyscall-no-syscallbuf 2 0.18036
vsyscall_timeslice 2 0.174966
vsyscall_timeslice-no-syscallbuf 2 0.223726
x86/x87env 2 0.192093
x86/x87env-no-syscallbuf 2 0.220662
wait 2 0.246499
wait-no-syscallbuf 2 0.176315
wait_sigstop 2 0.229046
wait_sigstop-no-syscallbuf 2 0.194761
write_race 2 2.69864
write_race-no-syscallbuf 2 1.78352
writev 2 0.277556
writev-no-syscallbuf 2 0.195201
xattr 2 0.187474
xattr-no-syscallbuf 2 0.194899
zero_length_read 2 0.1832
zero_length_read-no-syscallbuf 2 0.169866
std_random 2 0.229802
std_random-no-syscallbuf 2 0.241042
unwind_rr_page 2 1.15824
unwind_rr_page-no-syscallbuf 2 1.1443
abort_nonmain 2 0.477139
abort_nonmain-no-syscallbuf 2 0.439677
alternate_thread_diversion 2 0.937585
alternate_thread_diversion-no-syscallbuf 2 0.893965
args 2 0.204811
args-no-syscallbuf 2 0.165566
async_kill_with_syscallbuf 2 2.82132
async_kill_with_syscallbuf-no-syscallbuf 2 3.81114
async_kill_with_syscallbuf2 2 2.27422
async_kill_with_syscallbuf2-no-syscallbuf 2 2.30266
async_kill_with_threads 2 2.21251
async_kill_with_threads-no-syscallbuf 2 2.31443
async_kill_with_threads_main_running 2 2.28136
async_kill_with_threads_main_running-no-syscallbuf 2 2.30519
async_kill_with_threads_thread_running 2 6.19838
async_kill_with_threads_thread_running-no-syscallbuf 2 6.15817
async_segv 2 4.7611
async_segv-no-syscallbuf 2 4.72077
async_signal_syscalls 2 1.11327
async_signal_syscalls-no-syscallbuf 2 0.0309316
async_signal_syscalls2 2 0.609031
async_signal_syscalls2-no-syscallbuf 2 0.0218664
async_signal_syscalls_siginfo 2 1.06276
async_signal_syscalls_siginfo-no-syscallbuf 2 0.0292908
async_usr1 2 4.92085
async_usr1-no-syscallbuf 2 4.47758
blacklist 2 0.302815
blacklist-no-syscallbuf 2 0.178595
block_clone_checkpoint 2 1.12958
block_clone_checkpoint-no-syscallbuf 2 1.19362
block_clone_interrupted 2 6.1536
block_clone_interrupted-no-syscallbuf 2 5.39331
block_clone_syscallbuf_overflow 2 3.62867
block_clone_syscallbuf_overflow-no-syscallbuf 2 7.05479
block_intr_sigchld 2 7.05565
block_intr_sigchld-no-syscallbuf 2 5.91357
blocked_bad_ip 2 1.66722
blocked_bad_ip-no-syscallbuf 2 1.21329
blocked_sigill 2 0.475554
blocked_sigill-no-syscallbuf 2 0.473601
x86/blocked_sigsegv 2 0.454217
x86/blocked_sigsegv-no-syscallbuf 2 0.409446
breakpoint 2 0.884155
breakpoint-no-syscallbuf 2 0.911315
breakpoint_conditions 2 0.970024
breakpoint_conditions-no-syscallbuf 2 1.02469
breakpoint_overlap 2 0.936155
breakpoint_overlap-no-syscallbuf 2 0.985176
call_function 2 0.946274
call_function-no-syscallbuf 2 0.90338
call_gettid 2 0.958785
call_gettid-no-syscallbuf 2 0.903787
checkpoint_dying_threads 2 0.936716
checkpoint_dying_threads-no-syscallbuf 2 0.896077
checkpoint_mixed_mode 2 1.07028
checkpoint_mixed_mode-no-syscallbuf 2 1.19646
checksum_sanity 2 2.8623
checksum_sanity-no-syscallbuf 2 1.60946
check_lost_interrupts 2 1.68794
check_lost_interrupts-no-syscallbuf 2 0.0205135
clone_interruption 2 1.16011
clone_interruption-no-syscallbuf 2 1.75708
clone_vfork 2 0.316896
clone_vfork-no-syscallbuf 2 0.238336
conditional_breakpoint_calls 2 0.952078
conditional_breakpoint_calls-no-syscallbuf 2 0.973057
conditional_breakpoint_offload 2 96.5987
conditional_breakpoint_offload-no-syscallbuf 2 90.719
condvar_stress 2 18.4794
condvar_stress-no-syscallbuf 2 29.7448
cont_race 2 16.5406
cont_race-no-syscallbuf 2 58.61349
x86/cpuid_singlestep 2 0.841225
x86/cpuid_singlestep-no-syscallbuf 2 0.858188
crash 2 0.417805
crash-no-syscallbuf 2 0.399749
crash_in_function 2 1.48377
crash_in_function-no-syscallbuf 2 1.42794
daemon_read 2 0.29565
daemon_read-no-syscallbuf 2 0.219573
dconf_mock 2 0.20348
dconf_mock-no-syscallbuf 2 0.186553
dev_tty 2 0.168707
dev_tty-no-syscallbuf 2 0.153884
diversion_sigtrap 2 1.33568
diversion_sigtrap-no-syscallbuf 2 1.33729
diversion_syscall 2 1.11462
diversion_syscall-no-syscallbuf 2 1.09594
dlopen 2 8.35142
dlopen-no-syscallbuf 2 6.31706
early_error 2 0.473624
early_error-no-syscallbuf 2 0.483345
elapsed_time 2 1.85922
elapsed_time-no-syscallbuf 2 1.81124
exclusion_region 2 3.07792
exclusion_region-no-syscallbuf 2 2.39734
exec_failed 2 0.878224
exec_failed-no-syscallbuf 2 0.87247
exec_many 2 7.13534
exec_many-no-syscallbuf 2 14.2697
execve_loop 2 7.54661
execve_loop-no-syscallbuf 2 5.2741
exit_codes 2 0.478534
exit_codes-no-syscallbuf 2 0.450373
exit_group 2 0.184202
exit_group-no-syscallbuf 2 0.196952
exit_race 2 1.99785
exit_race-no-syscallbuf 2 1.24573
exit_status 2 0.129751
exit_status-no-syscallbuf 2 0.11848
x86/explicit_checkpoints 2 2.24325
x86/explicit_checkpoints-no-syscallbuf 2 2.22522
fd_limit 2 0.226523
fd_limit-no-syscallbuf 2 1.05535
fork_stress 2 2.18227
fork_stress-no-syscallbuf 2 1.28322
fork_syscalls 2 0.184567
fork_syscalls-no-syscallbuf 2 0.223932
function_calls 2 2.89782
function_calls-no-syscallbuf 2 2.684
x86/fxregs 2 0.885736
x86/fxregs-no-syscallbuf 2 0.903752
getcwd 2 0.161177
getcwd-no-syscallbuf 2 0.164677
gdb_bogus_breakpoint 2 0.858367
gdb_bogus_breakpoint-no-syscallbuf 2 0.868942
goto_event 2 3.62863
goto_event-no-syscallbuf 2 3.38462
hello 2 0.178746
hello-no-syscallbuf 2 0.168594
hooks 2 0.723224
hooks-no-syscallbuf 2 0.0217813
ignored_async_usr1 2 4.34846
ignored_async_usr1-no-syscallbuf 2 2.41312
ignored_sigsegv 2 0.512287
ignored_sigsegv-no-syscallbuf 2 0.48108
ignore_nested 2 0.319942
ignore_nested-no-syscallbuf 2 0.329892
immediate_restart 2 1.10799
immediate_restart-no-syscallbuf 2 1.05464
x86/int3_ok 2 0.196394
x86/int3_ok-no-syscallbuf 2 0.164032
interrupt 2 5.08432
interrupt-no-syscallbuf 2 5.10831
intr_ptrace_decline 2 4.76314
intr_ptrace_decline-no-syscallbuf 2 4.71857
invalid_interpreter 2 1.39091
invalid_interpreter-no-syscallbuf 2 1.42361
invalid_jump 2 3.35074
invalid_jump-no-syscallbuf 2 2.0456
jit_proc_mem 2 0.923116
jit_proc_mem-no-syscallbuf 2 0.903665
link 2 0.196809
link-no-syscallbuf 2 0.202282
madvise_dontfork 2 1.23451
madvise_dontfork-no-syscallbuf 2 1.13971
main_thread_exit 2 1.27429
main_thread_exit-no-syscallbuf 2 1.21927
many_yields 2 3.52293
many_yields-no-syscallbuf 2 2.76882
mmap_fd_reuse_checkpoint 2 1.20862
mmap_fd_reuse_checkpoint-no-syscallbuf 2 1.17124
mmap_replace_most_mappings 2 2.06602
mmap_replace_most_mappings-no-syscallbuf 2 2.16168
mmap_shared_prot 2 1.11115
mmap_shared_prot-no-syscallbuf 2 1.139
mmap_shared_write_exec_race 2 1.18982
mmap_shared_write_exec_race-no-syscallbuf 2 3.74276
mmap_tmpfs 2 0.203215
mmap_tmpfs-no-syscallbuf 2 0.183339
mmap_write 2 0.0232375
mmap_write-no-syscallbuf 2 0.0192538
mmap_write_private 2 0.33905
mmap_write_private-no-syscallbuf 2 0.278782
morestack_unwind 1 0.810541
morestack_unwind-no-syscallbuf 1 0.0187404
mprotect_growsdown 2 0.334716
mprotect_growsdown-no-syscallbuf 2 0.307453
mprotect_syscallbuf_overflow 2 0.286063
mprotect_syscallbuf_overflow-no-syscallbuf 2 14.2703
mutex_pi_stress 2 20.6333
mutex_pi_stress-no-syscallbuf 2 27.5912
nested_detach_wait 2 0.571855
nested_detach_wait-no-syscallbuf 2 0.56148
overflow_branch_counter 2 3.09102
overflow_branch_counter-no-syscallbuf 2 3.21047
patch_page_end 2 0.21362
patch_page_end-no-syscallbuf 2 0.0250506
x86/patch_40_80_f6_81 2 0.195303
x86/patch_40_80_f6_81-no-syscallbuf 2 0.021418
perf_event_mmap 2 1.40858
perf_event_mmap-no-syscallbuf 2 1.49223
priority 2 0.177644
priority-no-syscallbuf 2 0.181065
ptrace_remote_unmap 2 4.98646
ptrace_remote_unmap-no-syscallbuf 2 3.95753
read_big_struct 2 0.911023
read_big_struct-no-syscallbuf 2 0.917618
remove_latest_trace 2 1.27511
remove_latest_trace-no-syscallbuf 2 1.20751
restart_abnormal_exit 2 1.33336
restart_abnormal_exit-no-syscallbuf 2 1.30786
reverse_continue_breakpoint 2 1.8994
reverse_continue_breakpoint-no-syscallbuf 2 1.58048
reverse_continue_multiprocess 2 10.9357
reverse_continue_multiprocess-no-syscallbuf 2 9.9408
reverse_continue_process_signal 2 3.25294
reverse_continue_process_signal-no-syscallbuf 2 3.37532
reverse_many_breakpoints 2 4.68598
reverse_many_breakpoints-no-syscallbuf 2 4.30084
reverse_step_long 2 6.00979
reverse_step_long-no-syscallbuf 2 7.54732
reverse_step_threads 2 3.28319
reverse_step_threads-no-syscallbuf 2 3.54332
reverse_step_threads_break 2 4.64687
reverse_step_threads_break-no-syscallbuf 2 3.3659
rr_ps 2 0.430032
rr_ps-no-syscallbuf 2 0.374333
rr_ps_ns 2 0.214954
rr_ps_ns-no-syscallbuf 2 0.183478
rseq 2 20.632
rseq-no-syscallbuf 2 20.3601
search 2 0.934634
search-no-syscallbuf 2 0.899349
seccomp_blocks_rr 2 0.419835
seccomp_blocks_rr-no-syscallbuf 2 0.168566
seccomp_signals 2 2.46697
seccomp_signals-no-syscallbuf 2 1.80603
segfault 2 0.184121
segfault-no-syscallbuf 2 0.171907
shared_map 2 0.226207
shared_map-no-syscallbuf 2 0.237703
shared_persistent_file 2 1.2057
shared_persistent_file-no-syscallbuf 2 1.19317
signal_numbers 2 1.16584
signal_numbers-no-syscallbuf 2 1.16436
sigprocmask_race 2 0.201165
sigprocmask_race-no-syscallbuf 2 0.0287277
sigprocmask_rr_sigs_nondefault 2 0.0871455
sigprocmask_rr_sigs_nondefault-no-syscallbuf 2 0.0841662
simple 2 0.302632
simple-no-syscallbuf 2 0.26711
x86/singlestep_pushf 2 0.892934
x86/singlestep_pushf-no-syscallbuf 2 0.900637
stack_growth 2 0.89189
stack_growth-no-syscallbuf 2 0.866447
step_thread 2 2.30356
step_thread-no-syscallbuf 2 1.30052
strict_priorities 2 12.1928
strict_priorities-no-syscallbuf 2 12.6763
x86/string_instructions 2 0.595723
x86/string_instructions-no-syscallbuf 2 0.760244
x86/string_instructions_async_signals 2 0.232696
x86/string_instructions_async_signals-no-syscallbuf 2 71.325464
x86/string_instructions_async_signals_shared 2 0.28007
x86/string_instructions_async_signals_shared-no-syscallbuf 2 96.599713
x86/string_instructions_multiwatch 2 0.942324
x86/string_instructions_multiwatch-no-syscallbuf 2 0.880441
x86/string_instructions_replay 2 13.4061
x86/string_instructions_replay-no-syscallbuf 2 13.7113
x86/string_instructions_singlestep_fastforward 2 7.56842
x86/string_instructions_singlestep_fastforward-no-syscallbuf 2 7.6374
x86/string_instructions_watch 2 0.930721
x86/string_instructions_watch-no-syscallbuf 2 0.889983
syscallbuf_fd_disabling 2 0.271232
syscallbuf_fd_disabling-no-syscallbuf 2 0.228286
syscallbuf_signal_blocking_read 2 1.02176
syscallbuf_signal_blocking_read-no-syscallbuf 2 1.43656
sysconf_onln 2 0.35877
sysconf_onln-no-syscallbuf 2 0.31309
target_fork 2 1.73477
target_fork-no-syscallbuf 2 1.63206
target_process 2 1.7258
target_process-no-syscallbuf 2 1.50867
tcp_sockets 2 0.156821
tcp_sockets-no-syscallbuf 2 0.155016
term_nonmain 2 0.177305
term_nonmain-no-syscallbuf 2 0.213272
term_rr 2 3.42756
term_rr-no-syscallbuf 2 3.40614
term_trace_reset 2 0.248562
term_trace_reset-no-syscallbuf 2 0.214772
term_trace_syscall 2 0.264866
term_trace_syscall-no-syscallbuf 2 0.235758
thread_exit_signal 2 4.35567
thread_exit_signal-no-syscallbuf 2 4.51597
thread_open_race 2 35.2856
thread_open_race-no-syscallbuf 2 0.0207266
thread_stress 2 19.5549
thread_stress-no-syscallbuf 2 15.7079
threaded_syscall_spam 2 1.11981
threaded_syscall_spam-no-syscallbuf 2 0.0223191
threads 2 1.22788
threads-no-syscallbuf 2 1.15627
tls 2 0.912272
tls-no-syscallbuf 2 0.891445
ttyname 2 0.168692
ttyname-no-syscallbuf 2 0.165043
unexpected_stack_growth 2 1.10499
unexpected_stack_growth-no-syscallbuf 2 1.1247
user_ignore_sig 2 0.195225
user_ignore_sig-no-syscallbuf 2 0.16423
vdso_clock_gettime_stack 2 1.26935
vdso_clock_gettime_stack-no-syscallbuf 2 0.0191466
vdso_gettimeofday_stack 2 1.22336
vdso_gettimeofday_stack-no-syscallbuf 2 0.0223277
vdso_time_stack 2 1.09675
vdso_time_stack-no-syscallbuf 2 0.0224125
vfork 2 0.273825
vfork-no-syscallbuf 2 0.235919
vfork_read_clone_stress 2 2.57748
vfork_read_clone_stress-no-syscallbuf 2 1.52819
vsyscall_reverse_next 2 4.01991
vsyscall_reverse_next-no-syscallbuf 2 3.6232
wait_for_all 2 1.14849
wait_for_all-no-syscallbuf 2 1.14272
watchpoint 2 1.4021
watchpoint-no-syscallbuf 2 1.45019
watchpoint_at_sched 2 1.26641
watchpoint_at_sched-no-syscallbuf 2 2.16817
watchpoint_before_signal 2 0.889821
watchpoint_before_signal-no-syscallbuf 2 0.873965
watchpoint_no_progress 2 2.94675
watchpoint_no_progress-no-syscallbuf 2 1.77617
watchpoint_size_change 2 0.914569
watchpoint_size_change-no-syscallbuf 2 0.914861
watchpoint_syscall 2 1.10858
watchpoint_syscall-no-syscallbuf 2 0.967778
watchpoint_unaligned 2 0.885318
watchpoint_unaligned-no-syscallbuf 2 0.850577
async_signal_syscalls_100 2 0.216078
async_signal_syscalls_100-no-syscallbuf 2 3.64995
async_signal_syscalls_1000 2 0.210203
async_signal_syscalls_1000-no-syscallbuf 2 3.41878
bad_breakpoint 2 10.5237
bad_breakpoint-no-syscallbuf 2 9.75803
break_block 2 9.95668
break_block-no-syscallbuf 2 9.98023
break_clock 2 0.997136
break_clock-no-syscallbuf 2 1.19868
break_clone 2 0.860601
break_clone-no-syscallbuf 2 0.866168
break_exec 2 1.05496
break_exec-no-syscallbuf 2 0.928972
break_int3 2 0.84853
break_int3-no-syscallbuf 2 0.826974
break_mmap_private 2 2.2772
break_mmap_private-no-syscallbuf 2 2.3963
break_msg 2 2.33334
break_msg-no-syscallbuf 2 2.31454
x86/break_rdtsc 2 0.906172
x86/break_rdtsc-no-syscallbuf 2 0.898956
break_sigreturn 2 4.86845
break_sigreturn-no-syscallbuf 2 4.7959
break_sync_signal 2 0.889585
break_sync_signal-no-syscallbuf 2 0.953888
break_thread 2 0.987441
break_thread-no-syscallbuf 2 0.95672
break_time_slice 2 9.39381
break_time_slice-no-syscallbuf 2 9.5303
breakpoint_consistent 2 0.864593
breakpoint_consistent-no-syscallbuf 2 0.862363
call_exit 2 1.24356
call_exit-no-syscallbuf 2 1.24033
check_patched_pthread 2 2.17917
check_patched_pthread-no-syscallbuf 2 1.88506
checkpoint_async_signal_syscalls_1000 2 3.53824
checkpoint_async_signal_syscalls_1000-no-syscallbuf 2 0.0191438
checkpoint_mmap_shared 2 25.9316
checkpoint_mmap_shared-no-syscallbuf 2 19.8694
checkpoint_prctl_name 2 36.1448
checkpoint_prctl_name-no-syscallbuf 2 33.1562
checkpoint_simple 2 17.1481
checkpoint_simple-no-syscallbuf 2 20.2543
checksum_sanity_noclone 2 2.47752
checksum_sanity_noclone-no-syscallbuf 2 1.57982
comm 2 0.628376
comm-no-syscallbuf 2 0.752701
cont_signal 2 4.98586
cont_signal-no-syscallbuf 2 5.02741
x86/cpuid 2 0.967095
x86/cpuid-no-syscallbuf 2 0.967151
dead_thread_target 2 1.25742
dead_thread_target-no-syscallbuf 2 1.15103
desched_ticks 2 0.933889
desched_ticks-no-syscallbuf 2 0.0205327
deliver_async_signal_during_syscalls 2 0.708237
deliver_async_signal_during_syscalls-no-syscallbuf 2 0.0201994
env_newline 2 0.172633
env_newline-no-syscallbuf 2 0.176236
exec_deleted 2 0.174422
exec_deleted-no-syscallbuf 2 0.154924
exec_stop 2 0.971989
exec_stop-no-syscallbuf 2 0.932378
execp 2 0.179868
execp-no-syscallbuf 2 0.172007
explicit_checkpoint_clone 2 1.16827
explicit_checkpoint_clone-no-syscallbuf 2 1.13606
file_name_newline 2 0.206819
file_name_newline-no-syscallbuf 2 0.186296
final_sigkill 2 1.2137
final_sigkill-no-syscallbuf 2 1.16333
first_instruction 2 0.714622
first_instruction-no-syscallbuf 2 0.727912
fork_exec_info_thr 2 3.49358
fork_exec_info_thr-no-syscallbuf 2 3.3585
get_thread_list 2 1.14847
get_thread_list-no-syscallbuf 2 1.12759
hardlink_mmapped_files 2 2.21432
hardlink_mmapped_files-no-syscallbuf 2 2.22769
hbreak 2 0.98144
hbreak-no-syscallbuf 2 1.06173
mprotect_step 2 1.19977
mprotect_step-no-syscallbuf 2 1.17342
nested_detach 2 0.443621
nested_detach-no-syscallbuf 2 0.426141
nested_detach_kill 2 0.579554
nested_detach_kill-no-syscallbuf 2 0.57556
nested_release 2 0.416726
nested_release-no-syscallbuf 2 0.320548
parent_no_break_child_bkpt 2 1.35192
parent_no_break_child_bkpt-no-syscallbuf 2 1.43833
parent_no_stop_child_crash 2 1.27584
parent_no_stop_child_crash-no-syscallbuf 2 1.28431
post_exec_fpu_regs 2 0.609478
post_exec_fpu_regs-no-syscallbuf 2 0.616487
proc_maps 2 0.869244
proc_maps-no-syscallbuf 2 0.917006
read_bad_mem 2 0.884557
read_bad_mem-no-syscallbuf 2 0.852502
record_replay 2 141.185
record_replay-no-syscallbuf 2 153.148
remove_watchpoint 2 0.978183
remove_watchpoint-no-syscallbuf 2 0.94822
replay_overlarge_event_number 2 0.194689
replay_overlarge_event_number-no-syscallbuf 2 0.159605
replay_serve_files 2 3.66096
replay_serve_files-no-syscallbuf 2 3.62241
restart_invalid_checkpoint 2 1.21307
restart_invalid_checkpoint-no-syscallbuf 2 1.27762
restart_unstable 2 1.19906
restart_unstable-no-syscallbuf 2 1.13003
restart_diversion 2 1.43123
restart_diversion-no-syscallbuf 2 1.32596
reverse_alarm 2 4.70091
reverse_alarm-no-syscallbuf 2 5.96815
reverse_continue_exec_subprocess 2 2.35457
reverse_continue_exec_subprocess-no-syscallbuf 2 2.94139
reverse_continue_fork_subprocess 2 1.28133
reverse_continue_fork_subprocess-no-syscallbuf 2 1.29387
reverse_continue_int3 2 3.80374
reverse_continue_int3-no-syscallbuf 2 5.79677
reverse_continue_start 2 3.17295
reverse_continue_start-no-syscallbuf 2 2.41344
reverse_finish 2 3.16817
reverse_finish-no-syscallbuf 2 1.85083
reverse_step_breakpoint 2 3.3135
reverse_step_breakpoint-no-syscallbuf 2 3.69605
reverse_step_signal 2 4.24914
reverse_step_signal-no-syscallbuf 2 4.50127
reverse_step_threads2 2 4.63635
reverse_step_threads2-no-syscallbuf 2 4.4955
reverse_watchpoint 2 3.56927
reverse_watchpoint-no-syscallbuf 2 3.64424
reverse_watchpoint_syscall 2 7.81341
reverse_watchpoint_syscall-no-syscallbuf 2 7.23407
run_end 2 1.51075
run_end-no-syscallbuf 2 1.48436
run_in_function 2 1.06551
run_in_function-no-syscallbuf 2 1.22989
sanity 2 1.01111
sanity-no-syscallbuf 2 0.787738
seekticks 2 1.84473
seekticks-no-syscallbuf 2 1.93585
shm_checkpoint 2 1.19522
shm_checkpoint-no-syscallbuf 2 1.15687
siginfo 2 0.772502
siginfo-no-syscallbuf 2 0.865984
x86/sigreturn_checksum 2 0.778667
x86/sigreturn_checksum-no-syscallbuf 2 0.733952
signal_stop 2 0.907598
signal_stop-no-syscallbuf 2 0.881811
signal_checkpoint 2 1.2013
signal_checkpoint-no-syscallbuf 2 1.15467
simple_script 2 0.197487
simple_script-no-syscallbuf 2 0.185854
simple_script_debug 2 0.86698
simple_script_debug-no-syscallbuf 2 0.876364
simple_winch 2 2.97679
simple_winch-no-syscallbuf 2 2.26149
stack_overflow_debug 2 7.46715
stack_overflow_debug-no-syscallbuf 2 6.59686
step1 2 0.895537
step1-no-syscallbuf 2 0.955415
x86/step_rdtsc 2 1.0748
x86/step_rdtsc-no-syscallbuf 2 0.934643
step_signal 2 0.947377
step_signal-no-syscallbuf 2 0.959475
x86/string_instructions_break 2 6.82516
x86/string_instructions_break-no-syscallbuf 2 7.17043
x86/string_instructions_replay_quirk 2 7.50406
x86/string_instructions_replay_quirk-no-syscallbuf 2 6.87678
subprocess_exit_ends_session 2 1.27728
subprocess_exit_ends_session-no-syscallbuf 2 1.21137
switch_processes 2 3.19626
switch_processes-no-syscallbuf 2 2.6858
syscallbuf_timeslice_250 2 0.249806
syscallbuf_timeslice_250-no-syscallbuf 2 3.29356
trace_version 2 2.53497
trace_version-no-syscallbuf 2 2.70248
term_trace_cpu 2 0.514448
term_trace_cpu-no-syscallbuf 2 0.565433
trace_events 2 0.134258
trace_events-no-syscallbuf 2 0.127315
tty 2 0.151032
tty-no-syscallbuf 2 0.150354
unmap_vdso 2 0.353832
unmap_vdso-no-syscallbuf 2 0.341826
unwind_on_signal 2 0.948899
unwind_on_signal-no-syscallbuf 2 0.914195
vfork_exec 2 0.910633
vfork_exec-no-syscallbuf 2 0.922927
vfork_break_parent 2 0.932378
vfork_break_parent-no-syscallbuf 2 0.953784
vsyscall_singlestep 2 0.162971
vsyscall_singlestep-no-syscallbuf 2 0.145158
watch_code 2 3.72841
watch_code-no-syscallbuf 2 2.43417
watchpoint_cond 2 0.891707
watchpoint_cond-no-syscallbuf 2 0.837046
when 2 0.866097
when-no-syscallbuf 2 0.885084
64bit_child-32 2 0.343532
64bit_child-32-no-syscallbuf 2 0.344224
_llseek-32 2 0.236283
_llseek-32-no-syscallbuf 2 0.159258
abort-32 2 0.440587
abort-32-no-syscallbuf 2 0.415051
accept-32 2 0.303637
accept-32-no-syscallbuf 2 0.273315
acct-32 2 0.175651
acct-32-no-syscallbuf 2 0.159558
adjtimex-32 2 0.178372
adjtimex-32-no-syscallbuf 2 0.157448
aio-32 2 0.156827
aio-32-no-syscallbuf 2 0.148936
alarm-32 2 1.95172
alarm-32-no-syscallbuf 2 2.48883
alarm2-32 2 1.14684
alarm2-32-no-syscallbuf 2 1.15135
alsa_ioctl-32 2 0.164307
alsa_ioctl-32-no-syscallbuf 2 0.170314
arch_prctl-32 2 0.183115
arch_prctl-32-no-syscallbuf 2 0.1533
async_segv_ignored-32 2 0.187489
async_segv_ignored-32-no-syscallbuf 2 0.16181
at_threadexit-32 2 0.233616
at_threadexit-32-no-syscallbuf 2 0.240465
bad_ip-32 2 0.161617
bad_ip-32-no-syscallbuf 2 0.153276
bad_syscall-32 2 0.172995
bad_syscall-32-no-syscallbuf 2 0.17333
barrier-32 2 0.304388
barrier-32-no-syscallbuf 2 0.367683
big_buffers-32 2 0.17837
big_buffers-32-no-syscallbuf 2 0.197323
block-32 2 9.32206
block-32-no-syscallbuf 2 9.33081
block_open-32 2 0.190076
block_open-32-no-syscallbuf 2 0.185152
bpf-32 2 0.192451
bpf-32-no-syscallbuf 2 0.202114
bpf_map-32 2 0.169593
bpf_map-32-no-syscallbuf 2 0.177982
brk-32 2 0.172165
brk-32-no-syscallbuf 2 0.153512
brk2-32 2 0.194184
brk2-32-no-syscallbuf 2 0.152208
capget-32 2 0.2065
capget-32-no-syscallbuf 2 0.175296
chew_cpu-32 2 8.73853
chew_cpu-32-no-syscallbuf 2 8.70924
x86/chew_cpu_cpuid-32 2 0.622714
x86/chew_cpu_cpuid-32-no-syscallbuf 2 0.4366
chmod-32 2 0.21103
chmod-32-no-syscallbuf 2 0.174042
chown-32 2 0.21456
chown-32-no-syscallbuf 2 0.223343
clock-32 2 0.255467
clock-32-no-syscallbuf 2 0.358987
clock_adjtime-32 2 0.194787
clock_adjtime-32-no-syscallbuf 2 0.162301
clock_nanosleep-32 2 1.19261
clock_nanosleep-32-no-syscallbuf 2 1.22023
clock_time64-32 2 0.182615
clock_time64-32-no-syscallbuf 2 0.169495
clone-32 2 0.198422
clone-32-no-syscallbuf 2 0.162276
clone_bad_stack-32 2 0.258172
clone_bad_stack-32-no-syscallbuf 2 0.227873
clone_bad_tls-32 2 0.1688
clone_bad_tls-32-no-syscallbuf 2 0.150977
clone_cleartid_coredump-32 2 0.380296
clone_cleartid_coredump-32-no-syscallbuf 2 0.357681
clone_fail-32 2 0.175359
clone_fail-32-no-syscallbuf 2 0.160996
clone_file_range-32 2 0.179275
clone_file_range-32-no-syscallbuf 2 0.166524
clone_immediate_exit-32 2 0.180154
clone_immediate_exit-32-no-syscallbuf 2 0.179751
clone_newflags-32 2 0.213326
clone_newflags-32-no-syscallbuf 2 1.04818
clone_parent-32 2 0.195602
clone_parent-32-no-syscallbuf 2 0.159968
clone_untraced-32 2 0.173588
clone_untraced-32-no-syscallbuf 2 0.205649
clone_vfork_pidfd-32 2 0.183834
clone_vfork_pidfd-32-no-syscallbuf 2 0.170767
cloned_sigmask-32 2 0.31069
cloned_sigmask-32-no-syscallbuf 2 0.264808
constructor-32 2 2.18134
constructor-32-no-syscallbuf 2 2.23034
copy_file_range-32 2 0.170721
copy_file_range-32-no-syscallbuf 2 0.185973
x86/cpuid_same_state-32 2 0.168649
x86/cpuid_same_state-32-no-syscallbuf 2 0.176264
creat_address_not_truncated-32 2 0.172016
creat_address_not_truncated-32-no-syscallbuf 2 0.160827
x86/cross_arch-32 2 0.173734
x86/cross_arch-32-no-syscallbuf 2 0.186919
cwd_inaccessible-32 2 0.230593
cwd_inaccessible-32-no-syscallbuf 2 0.228416
daemon-32 2 0.185343
daemon-32-no-syscallbuf 2 0.159593
desched_blocking_poll-32 2 0.191223
desched_blocking_poll-32-no-syscallbuf 2 0.177699
desched_sigkill-32 2 0.268607
desched_sigkill-32-no-syscallbuf 2 0.238282
detach_state-32 2 0.255978
detach_state-32-no-syscallbuf 2 0.217356
detach_threads-32 2 0.273998
detach_threads-32-no-syscallbuf 2 0.234168
detach_sigkill-32 2 0.270231
detach_sigkill-32-no-syscallbuf 2 0.204298
detach_sigkill_exit-32 2 0.266415
detach_sigkill_exit-32-no-syscallbuf 2 0.181115
deterministic_sigsys-32 2 0.341587
deterministic_sigsys-32-no-syscallbuf 2 0.313071
dev_zero-32 2 0.166296
dev_zero-32-no-syscallbuf 2 0.163734
direct-32 2 0.256896
direct-32-no-syscallbuf 2 0.200562
dup-32 2 0.174304
dup-32-no-syscallbuf 2 0.175881
doublesegv-32 2 0.384812
doublesegv-32-no-syscallbuf 2 0.339395
epoll_create-32 2 0.168445
epoll_create-32-no-syscallbuf 2 0.177292
epoll_create1-32 2 0.24383
epoll_create1-32-no-syscallbuf 2 0.176546
epoll_edge-32 2 0.172137
epoll_edge-32-no-syscallbuf 2 0.17578
epoll_pwait_eintr_sigmask-32 2 2.18362
epoll_pwait_eintr_sigmask-32-no-syscallbuf 2 2.17528
eventfd-32 2 0.170002
eventfd-32-no-syscallbuf 2 0.195814
exec_flags-32 2 0.176703
exec_flags-32-no-syscallbuf 2 0.158051
exec_no_env-32 2 0.210186
exec_no_env-32-no-syscallbuf 2 0.223995
exec_self-32 2 0.212399
exec_self-32-no-syscallbuf 2 0.278598
exec_from_main_thread-32 2 0.256533
exec_from_main_thread-32-no-syscallbuf 2 0.2547
exec_from_other_thread-32 2 11.4391
exec_from_other_thread-32-no-syscallbuf 2 7.97065
exec_stopsig-32 2 0.248389
exec_stopsig-32-no-syscallbuf 2 0.227471
execveat-32 2 0.33122
execveat-32-no-syscallbuf 2 0.212293
exit_with_syscallbuf_signal-32 2 0.208462
exit_with_syscallbuf_signal-32-no-syscallbuf 2 0.177881
fadvise-32 2 0.189585
fadvise-32-no-syscallbuf 2 0.188268
fanotify-32 2 0.15869
fanotify-32-no-syscallbuf 2 0.176326
fatal_init_signal-32 2 0.19146
fatal_init_signal-32-no-syscallbuf 2 0.217814
fatal_sigsegv_thread-32 2 0.664268
fatal_sigsegv_thread-32-no-syscallbuf 2 0.527767
x86/fault_in_code_page-32 2 0.182553
x86/fault_in_code_page-32-no-syscallbuf 2 0.176254
fcntl_dupfd-32 2 0.177373
fcntl_dupfd-32-no-syscallbuf 2 0.188962
fcntl_misc-32 2 0.164345
fcntl_misc-32-no-syscallbuf 2 0.16434
fcntl_notify-32 2 0.190707
fcntl_notify-32-no-syscallbuf 2 0.165259
fcntl_owner_ex-32 2 0.197163
fcntl_owner_ex-32-no-syscallbuf 2 0.155602
fcntl_rw_hints-32 2 0.193598
fcntl_rw_hints-32-no-syscallbuf 2 0.179665
fcntl_seals-32 2 0.169677
fcntl_seals-32-no-syscallbuf 2 0.155835
fcntl_sig-32 2 0.188346
fcntl_sig-32-no-syscallbuf 2 0.1586
fd_cleanup-32 2 0.186579
fd_cleanup-32-no-syscallbuf 2 0.186616
fd_tracking_across_threads-32 2 0.194344
fd_tracking_across_threads-32-no-syscallbuf 2 0.212191
fds_clean-32 2 0.236395
fds_clean-32-no-syscallbuf 2 0.235536
flock-32 2 0.710811
flock-32-no-syscallbuf 2 1.46662
flock_ofd-32 2 0.194817
flock_ofd-32-no-syscallbuf 2 0.958058
flock2-32 2 0.160203
flock2-32-no-syscallbuf 2 0.154417
fork_brk-32 2 0.180829
fork_brk-32-no-syscallbuf 2 0.192136
fork_child_crash-32 2 0.286437
fork_child_crash-32-no-syscallbuf 2 0.25726
fork_many-32 2 1.1483
fork_many-32-no-syscallbuf 2 0.676637
futex_exit_race-32 2 0.473886
futex_exit_race-32-no-syscallbuf 2 0.398697
futex_exit_race_sigsegv-32 2 0.768718
futex_exit_race_sigsegv-32-no-syscallbuf 2 0.395598
futex_pi-32 2 0.169976
futex_pi-32-no-syscallbuf 2 0.171053
futex_priorities-32 2 0.199389
futex_priorities-32-no-syscallbuf 2 0.193813
futex_requeue-32 2 1.16674
futex_requeue-32-no-syscallbuf 2 1.17668
gcrypt_rdrand-32 2 0.198064
gcrypt_rdrand-32-no-syscallbuf 2 0.17078
getcpu-32 2 0.203612
getcpu-32-no-syscallbuf 2 0.162867
getgroups-32 2 0.194776
getgroups-32-no-syscallbuf 2 0.210254
getpwnam-32 2 0.249385
getpwnam-32-no-syscallbuf 2 0.218375
getrandom-32 2 0.219942
getrandom-32-no-syscallbuf 2 0.163141
setitimer-32 2 0.197037
setitimer-32-no-syscallbuf 2 0.174438
getsid-32 2 0.163107
getsid-32-no-syscallbuf 2 0.173976
gettimeofday-32 2 0.215287
gettimeofday-32-no-syscallbuf 2 0.183324
grandchild_threads-32 2 0.194359
grandchild_threads-32-no-syscallbuf 2 0.18839
grandchild_threads_main_running-32 2 2.25777
grandchild_threads_main_running-32-no-syscallbuf 2 2.27805
grandchild_threads_thread_running-32 2 5.25249
grandchild_threads_thread_running-32-no-syscallbuf 2 5.23783
grandchild_threads_parent_alive-32 2 0.199
grandchild_threads_parent_alive-32-no-syscallbuf 2 0.187577
x86/hle-32 2 2.22635
x86/hle-32-no-syscallbuf 2 0.881525
inotify-32 2 0.162154
inotify-32-no-syscallbuf 2 0.16806
int3-32 2 0.159417
int3-32-no-syscallbuf 2 0.157118
intr_futex_wait_restart-32 2 1.69813
intr_futex_wait_restart-32-no-syscallbuf 2 1.69332
intr_poll-32 2 3.68626
intr_poll-32-no-syscallbuf 2 3.66997
intr_ppoll-32 2 21.4084
intr_ppoll-32-no-syscallbuf 2 21.2981
intr_pselect-32 2 9.15019
intr_pselect-32-no-syscallbuf 2 9.19517
intr_read_no_restart-32 2 1.28784
intr_read_no_restart-32-no-syscallbuf 2 1.28253
intr_read_restart-32 2 2.30173
intr_read_restart-32-no-syscallbuf 2 2.27716
intr_sleep-32 2 4.18891
intr_sleep-32-no-syscallbuf 2 4.16715
intr_sleep_no_restart-32 2 1.77529
intr_sleep_no_restart-32-no-syscallbuf 2 1.78142
invalid_exec-32 2 0.17303
invalid_exec-32-no-syscallbuf 2 0.156343
invalid_fcntl-32 2 0.17745
invalid_fcntl-32-no-syscallbuf 2 0.148237
invalid_ioctl-32 2 0.167459
invalid_ioctl-32-no-syscallbuf 2 0.153341
io-32 2 0.153516
io-32-no-syscallbuf 2 0.152155
io_uring-32 2 0.156336
io_uring-32-no-syscallbuf 2 0.172072
ioctl-32 2 0.168334
ioctl-32-no-syscallbuf 2 0.174499
ioctl_blk-32 2 0.172997
ioctl_blk-32-no-syscallbuf 2 0.14378
ioctl_fb-32 2 0.15604
ioctl_fb-32-no-syscallbuf 2 0.177303
ioctl_fs-32 2 0.1805
ioctl_fs-32-no-syscallbuf 2 0.182854
ioctl_pty-32 2 0.245727
ioctl_pty-32-no-syscallbuf 2 0.198318
ioctl_sg-32 2 0.171162
ioctl_sg-32-no-syscallbuf 2 0.154041
ioctl_tty-32 2 0.264824
ioctl_tty-32-no-syscallbuf 2 0.225188
ioctl_vt-32 2 0.170598
ioctl_vt-32-no-syscallbuf 2 0.16299
ioprio-32 2 0.169689
ioprio-32-no-syscallbuf 2 0.179517
x86/ioperm-32 2 0.169697
x86/ioperm-32-no-syscallbuf 2 0.156024
x86/iopl-32 2 0.163983
x86/iopl-32-no-syscallbuf 2 0.1679
join_threads-32 2 1.54955
join_threads-32-no-syscallbuf 2 1.7967
joystick-32 2 0.180789
joystick-32-no-syscallbuf 2 0.188287
kcmp-32 2 0.172476
kcmp-32-no-syscallbuf 2 0.173309
keyctl-32 2 0.213803
keyctl-32-no-syscallbuf 2 0.185761
kill_newborn-32 2 0.434392
kill_newborn-32-no-syscallbuf 2 0.352364
kill_ptracee-32 2 0.245936
kill_ptracee-32-no-syscallbuf 2 1.77335
large_hole-32 2 0.19012
large_hole-32-no-syscallbuf 2 0.152114
large_write_deadlock-32 2 0.187997
large_write_deadlock-32-no-syscallbuf 2 0.157017
legacy_ugid-32 2 0.172081
legacy_ugid-32-no-syscallbuf 2 0.154932
x86/lsl-32 2 0.174847
x86/lsl-32-no-syscallbuf 2 0.182991
madvise-32 2 0.171796
madvise-32-no-syscallbuf 2 0.168836
madvise_free-32 2 0.162956
madvise_free-32-no-syscallbuf 2 0.146138
madvise_wipeonfork-32 2 0.298329
madvise_wipeonfork-32-no-syscallbuf 2 0.248712
map_fixed-32 2 0.171006
map_fixed-32-no-syscallbuf 2 0.156162
map_shared_syscall-32 2 0.240547
map_shared_syscall-32-no-syscallbuf 2 0.188137
membarrier-32 2 0.230167
membarrier-32-no-syscallbuf 2 0.262814
memfd_create-32 2 0.159255
memfd_create-32-no-syscallbuf 2 0.159951
memfd_create_shared-32 2 0.168803
memfd_create_shared-32-no-syscallbuf 2 0.169416
memfd_create_shared_huge-32 2 0.166679
memfd_create_shared_huge-32-no-syscallbuf 2 0.168568
mincore-32 2 0.195951
mincore-32-no-syscallbuf 2 0.179282
mknod-32 2 0.1707
mknod-32-no-syscallbuf 2 0.220839
mlock-32 2 0.178006
mlock-32-no-syscallbuf 2 0.169444
mmap_adjacent_to_rr_usage-32 2 0.173778
mmap_adjacent_to_rr_usage-32-no-syscallbuf 2 0.168001
mmap_private-32 2 1.00159
mmap_private-32-no-syscallbuf 2 0.99163
mmap_private_grow_under_map-32 2 0.173808
mmap_private_grow_under_map-32-no-syscallbuf 2 0.165926
mmap_recycle-32 2 0.191217
mmap_recycle-32-no-syscallbuf 2 0.224146
mmap_ro-32 2 0.174387
mmap_ro-32-no-syscallbuf 2 0.168227
mmap_self_maps_shared-32 2 0.235438
mmap_self_maps_shared-32-no-syscallbuf 2 0.255654
mmap_shared-32 2 0.223286
mmap_shared-32-no-syscallbuf 2 0.177803
mmap_shared_dev_zero-32 2 0.162855
mmap_shared_dev_zero-32-no-syscallbuf 2 0.187624
mmap_shared_grow-32 2 0.172259
mmap_shared_grow-32-no-syscallbuf 2 0.167488
mmap_shared_grow_under_map-32 2 0.177782
mmap_shared_grow_under_map-32-no-syscallbuf 2 0.24619
mmap_shared_multiple-32 2 0.165807
mmap_shared_multiple-32-no-syscallbuf 2 0.182459
mmap_shared_subpage-32 2 0.178498
mmap_shared_subpage-32-no-syscallbuf 2 0.208066
mmap_shared_write-32 2 7.86342
mmap_shared_write-32-no-syscallbuf 2 7.60719
mmap_shared_write_fork-32 2 3.38886
mmap_shared_write_fork-32-no-syscallbuf 2 4.51516
mmap_short_file-32 2 0.17335
mmap_short_file-32-no-syscallbuf 2 0.167058
mmap_write_complex-32 2 0.172373
mmap_write_complex-32-no-syscallbuf 2 0.214238
mmap_zero_size_fd-32 2 0.169857
mmap_zero_size_fd-32-no-syscallbuf 2 0.178777
x86/modify_ldt-32 2 0.180909
x86/modify_ldt-32-no-syscallbuf 2 0.158959
mount_ns_exec-32 2 0.242339
mount_ns_exec-32-no-syscallbuf 2 0.231321
mount_ns_exec2-32 2 0.226181
mount_ns_exec2-32-no-syscallbuf 2 0.239407
mprotect-32 2 0.181316
mprotect-32-no-syscallbuf 2 0.175856
mprotect_heterogenous-32 2 0.173654
mprotect_heterogenous-32-no-syscallbuf 2 0.165665
mprotect_none-32 2 0.180685
mprotect_none-32-no-syscallbuf 2 0.165696
mprotect_stack-32 2 0.172227
mprotect_stack-32-no-syscallbuf 2 0.164478
mq-32 2 2.15956
mq-32-no-syscallbuf 2 2.16518
mremap-32 2 2.73883
mremap-32-no-syscallbuf 2 3.268
mremap_after_coalesce-32 2 0.1893
mremap_after_coalesce-32-no-syscallbuf 2 0.158341
mremap_grow-32 2 0.197778
mremap_grow-32-no-syscallbuf 2 0.157984
mremap_grow_shared-32 2 0.182198
mremap_grow_shared-32-no-syscallbuf 2 0.224127
mremap_non_page_size-32 2 0.19472
mremap_non_page_size-32-no-syscallbuf 2 0.978314
mremap_overwrite-32 2 0.196536
mremap_overwrite-32-no-syscallbuf 2 0.169694
mremap_private_grow_under_map-32 2 0.250805
mremap_private_grow_under_map-32-no-syscallbuf 2 0.154396
mremap_shrink-32 2 0.166243
mremap_shrink-32-no-syscallbuf 2 0.181565
msg-32 2 1.68107
msg-32-no-syscallbuf 2 1.68818
msg_trunc-32 2 0.176434
msg_trunc-32-no-syscallbuf 2 0.165524
msync-32 2 1.04094
msync-32-no-syscallbuf 2 1.28593
mtio-32 2 0.189331
mtio-32-no-syscallbuf 2 0.167114
multiple_pending_signals-32 2 0.188975
multiple_pending_signals-32-no-syscallbuf 2 0.192054
multiple_pending_signals_sequential-32 2 0.190957
multiple_pending_signals_sequential-32-no-syscallbuf 2 0.179665
munmap_segv-32 2 0.218063
munmap_segv-32-no-syscallbuf 2 0.173991
munmap_discontinuous-32 2 0.192355
munmap_discontinuous-32-no-syscallbuf 2 0.167422
nanosleep-32 2 1.17149
nanosleep-32-no-syscallbuf 2 1.15108
netfilter-32 2 0.236264
netfilter-32-no-syscallbuf 2 0.256435
netlink_mmap_disable-32 2 0.157522
netlink_mmap_disable-32-no-syscallbuf 2 0.165765
no_mask_timeslice-32 2 0.850216
no_mask_timeslice-32-no-syscallbuf 2 0.821699
nscd-32 2 0.179882
nscd-32-no-syscallbuf 2 0.160008
numa-32 2 0.197031
numa-32-no-syscallbuf 2 0.166399
x86/old_fork-32 2 0.21567
x86/old_fork-32-no-syscallbuf 2 0.18302
orphan_process-32 2 0.206772
orphan_process-32-no-syscallbuf 2 0.184401
packet_mmap_disable-32 2 0.163268
packet_mmap_disable-32-no-syscallbuf 2 0.151608
pause-32 2 1.15926
pause-32-no-syscallbuf 2 1.14328
perf_event-32 2 0.207887
perf_event-32-no-syscallbuf 2 0.182937
personality-32 2 0.184296
personality-32-no-syscallbuf 2 0.223865
pid_ns_kill_child-32 2 0.385645
pid_ns_kill_child-32-no-syscallbuf 2 0.3028
pid_ns_kill_child_threads-32 2 0.254021
pid_ns_kill_child_threads-32-no-syscallbuf 2 0.20647
pid_ns_kill_child_zombie-32 2 0.223784
pid_ns_kill_child_zombie-32-no-syscallbuf 2 0.196851
pid_ns_kill_threads-32 2 0.230732
pid_ns_kill_threads-32-no-syscallbuf 2 0.212946
pid_ns_kill_threads_exit_wait-32 2 0.328763
pid_ns_kill_threads_exit_wait-32-no-syscallbuf 2 0.248139
pid_ns_reap-32 2 0.227847
pid_ns_reap-32-no-syscallbuf 2 0.243935
pid_ns_segv-32 2 0.292908
pid_ns_segv-32-no-syscallbuf 2 0.241546
pid_ns_shutdown-32 2 0.508542
pid_ns_shutdown-32-no-syscallbuf 2 0.309565
pidfd-32 2 0.194201
pidfd-32-no-syscallbuf 2 0.179072
x86/pkeys-32 2 0.16721
x86/pkeys-32-no-syscallbuf 2 0.151803
poll_sig_race-32 2 2.94428
poll_sig_race-32-no-syscallbuf 2 2.89483
ppoll-32 2 5.72427
ppoll-32-no-syscallbuf 2 5.72158
prctl-32 2 0.243426
prctl-32-no-syscallbuf 2 0.168644
prctl_caps-32 2 0.417118
prctl_caps-32-no-syscallbuf 2 0.362039
prctl_deathsig-32 2 0.253595
prctl_deathsig-32-no-syscallbuf 2 0.175611
prctl_name-32 2 0.28042
prctl_name-32-no-syscallbuf 2 0.240042
prctl_short_name-32 2 0.180561
prctl_short_name-32-no-syscallbuf 2 0.153409
prctl_speculation_ctrl-32 2 0.177203
prctl_speculation_ctrl-32-no-syscallbuf 2 0.168493
x86/prctl_tsc-32 2 0.195859
x86/prctl_tsc-32-no-syscallbuf 2 0.180645
privileged_net_ioctl-32 2 0.435754
privileged_net_ioctl-32-no-syscallbuf 2 0.449377
proc_fds-32 2 0.622971
proc_fds-32-no-syscallbuf 2 0.766995
proc_mem-32 2 0.386866
proc_mem-32-no-syscallbuf 2 0.376723
protect_rr_fds-32 2 3.15255
protect_rr_fds-32-no-syscallbuf 2 3.95277
prw-32 2 0.163791
prw-32-no-syscallbuf 2 0.175139
pthread_condvar_locking-32 2 0.195831
pthread_condvar_locking-32-no-syscallbuf 2 0.198542
pthread_mutex_timedlock-32 2 0.172525
pthread_mutex_timedlock-32-no-syscallbuf 2 0.171628
pthread_pi_mutex-32 2 0.194426
pthread_pi_mutex-32-no-syscallbuf 2 0.147285
pthread_rwlocks-32 2 0.188592
pthread_rwlocks-32-no-syscallbuf 2 0.167646
x86/ptrace-32 2 0.225572
x86/ptrace-32-no-syscallbuf 2 0.230391
ptrace_attach_null_status-32 2 0.21989
ptrace_attach_null_status-32-no-syscallbuf 2 0.221423
ptrace_attach_running-32 2 0.322088
ptrace_attach_running-32-no-syscallbuf 2 1.81167
ptrace_attach_sleeping-32 2 0.229337
ptrace_attach_sleeping-32-no-syscallbuf 2 0.259472
ptrace_attach_stopped-32 2 0.254542
ptrace_attach_stopped-32-no-syscallbuf 2 0.254623
ptrace_attach_thread_running-32 2 7.71519
ptrace_attach_thread_running-32-no-syscallbuf 2 9.21576
ptrace_breakpoint-32 2 0.207377
ptrace_breakpoint-32-no-syscallbuf 2 0.205281
ptrace_change_patched_syscall-32 2 0.214222
ptrace_change_patched_syscall-32-no-syscallbuf 2 0.198213
x86/ptrace_debug_regs-32 2 0.180522
x86/ptrace_debug_regs-32-no-syscallbuf 2 0.192852
ptrace_exec-32 2 0.311664
ptrace_exec-32-no-syscallbuf 2 0.265444
x86/ptrace_exec32-32 2 0.169313
x86/ptrace_exec32-32-no-syscallbuf 2 0.209205
ptrace_kill_grandtracee-32 2 0.218563
ptrace_kill_grandtracee-32-no-syscallbuf 2 0.185387
x86/ptrace_tls-32 2 0.264243
x86/ptrace_tls-32-no-syscallbuf 2 0.186428
ptrace_seize-32 2 0.183568
ptrace_seize-32-no-syscallbuf 2 0.159259
ptrace_sigchld_blocked-32 2 0.200425
ptrace_sigchld_blocked-32-no-syscallbuf 2 0.200648
ptrace_signals-32 2 0.304559
ptrace_signals-32-no-syscallbuf 2 0.278018
ptrace_singlestep-32 2 0.639743
ptrace_singlestep-32-no-syscallbuf 2 0.222714
ptrace_syscall-32 2 0.189698
ptrace_syscall-32-no-syscallbuf 2 0.198213
ptrace_syscall_clone_untraced-32 2 0.303777
ptrace_syscall_clone_untraced-32-no-syscallbuf 2 0.238925
x86/ptrace_sysemu-32 2 0.258322
x86/ptrace_sysemu-32-no-syscallbuf 2 0.320688
ptrace_sysemu_syscall-32 2 0.185471
ptrace_sysemu_syscall-32-no-syscallbuf 2 0.220217
ptrace_trace_clone-32 2 0.212671
ptrace_trace_clone-32-no-syscallbuf 2 0.203035
ptrace_trace_exit-32 2 0.183704
ptrace_trace_exit-32-no-syscallbuf 2 0.167785
ptrace_traceme-32 2 0.184022
ptrace_traceme-32-no-syscallbuf 2 0.18187
ptracer_death-32 2 0.248333
ptracer_death-32-no-syscallbuf 2 0.249883
ptracer_death_multithread-32 2 0.388901
ptracer_death_multithread-32-no-syscallbuf 2 0.369612
ptracer_death_multithread_peer-32 2 0.419266
ptracer_death_multithread_peer-32-no-syscallbuf 2 0.395806
quotactl-32 2 0.182772
quotactl-32-no-syscallbuf 2 0.201297
x86/rdtsc-32 2 0.255399
x86/rdtsc-32-no-syscallbuf 2 0.229242
read_nothing-32 2 7.46141
read_nothing-32-no-syscallbuf 2 7.72549
readdir-32 2 0.174061
readdir-32-no-syscallbuf 2 0.167578
read_large-32 2 0.428546
read_large-32-no-syscallbuf 2 1.15199
read_oversize-32 2 0.162112
read_oversize-32-no-syscallbuf 2 0.162055
readlink-32 2 0.186308
readlink-32-no-syscallbuf 2 0.212726
readlinkat-32 2 0.165631
readlinkat-32-no-syscallbuf 2 0.160991
readv-32 2 0.190512
readv-32-no-syscallbuf 2 0.175585
record_replay_subject-32 2 3.25793
record_replay_subject-32-no-syscallbuf 2 3.43256
recvfrom-32 2 0.186827
recvfrom-32-no-syscallbuf 2 0.168322
redzone_integrity-32 2 1.14239
redzone_integrity-32-no-syscallbuf 2 1.13652
rename-32 2 0.178096
rename-32-no-syscallbuf 2 0.168682
rlimit-32 2 0.182187
rlimit-32-no-syscallbuf 2 0.165564
robust_futex-32 2 0.202095
robust_futex-32-no-syscallbuf 2 0.198996
rusage-32 2 0.168172
rusage-32-no-syscallbuf 2 0.206066
samask-32 2 0.337743
samask-32-no-syscallbuf 2 0.301596
save_data_fd-32 2 0.22658
save_data_fd-32-no-syscallbuf 2 0.16278
sched_attr-32 2 0.164539
sched_attr-32-no-syscallbuf 2 0.162087
sched_setaffinity-32 2 0.20929
sched_setaffinity-32-no-syscallbuf 2 0.173467
sched_setparam-32 2 0.173069
sched_setparam-32-no-syscallbuf 2 0.161447
sched_yield-32 2 0.293288
sched_yield-32-no-syscallbuf 2 0.246936
sched_yield_to_lower_priority-32 2 0.177359
sched_yield_to_lower_priority-32-no-syscallbuf 2 0.167451
scm_rights-32 2 0.700044
scm_rights-32-no-syscallbuf 2 0.681345
scratch_read-32 2 0.19306
scratch_read-32-no-syscallbuf 2 0.193434
seccomp-32 2 0.289931
seccomp-32-no-syscallbuf 2 0.188005
seccomp_cloning-32 2 0.174185
seccomp_cloning-32-no-syscallbuf 2 0.158513
seccomp_clone_fail-32 2 0.20893
seccomp_clone_fail-32-no-syscallbuf 2 0.162227
seccomp_desched-32 2 0.213358
seccomp_desched-32-no-syscallbuf 2 0.162138
seccomp_kill_exit-32 2 0.189344
seccomp_kill_exit-32-no-syscallbuf 2 0.155638
seccomp_null-32 2 0.16527
seccomp_null-32-no-syscallbuf 2 0.194281
seccomp_sigsys_args-32 2 0.200211
seccomp_sigsys_args-32-no-syscallbuf 2 0.161084
seccomp_sigsys_sigtrap-32 2 0.210447
seccomp_sigsys_sigtrap-32-no-syscallbuf 2 0.201276
seccomp_sigsys_syscallbuf-32 2 0.209561
seccomp_sigsys_syscallbuf-32-no-syscallbuf 2 0.162703
seccomp_tsync-32 2 0.187879
seccomp_tsync-32-no-syscallbuf 2 0.176498
seccomp_veto_exec-32 2 0.173933
seccomp_veto_exec-32-no-syscallbuf 2 0.203032
self_shebang-32 2 0.24153
self_shebang-32-no-syscallbuf 2 0.231292
self_sigint-32 2 0.159231
self_sigint-32-no-syscallbuf 2 0.153099
sem-32 2 0.250009
sem-32-no-syscallbuf 2 0.256186
send_block-32 2 1.14479
send_block-32-no-syscallbuf 2 2.88824
sendfile-32 2 0.200584
sendfile-32-no-syscallbuf 2 0.165255
set_ptracer-32 2 0.189767
set_ptracer-32-no-syscallbuf 2 0.167316
set_tid_address-32 2 0.239881
set_tid_address-32-no-syscallbuf 2 0.196003
setgid-32 2 0.172545
setgid-32-no-syscallbuf 2 0.205069
setgroups-32 2 0.171244
setgroups-32-no-syscallbuf 2 0.167926
setsid-32 2 0.169398
setsid-32-no-syscallbuf 2 0.152853
setuid-32 2 0.233078
setuid-32-no-syscallbuf 2 0.239728
shared_exec-32 2 0.16772
shared_exec-32-no-syscallbuf 2 0.156276
shared_monitor-32 2 0.183911
shared_monitor-32-no-syscallbuf 2 0.170766
shared_offset-32 2 0.196638
shared_offset-32-no-syscallbuf 2 0.159853
shared_write-32 2 0.181719
shared_write-32-no-syscallbuf 2 0.164443
shm-32 2 0.217793
shm-32-no-syscallbuf 2 0.201548
shm_unmap-32 2 0.1996
shm_unmap-32-no-syscallbuf 2 0.165694
sigaction_old-32 2 0.163398
sigaction_old-32-no-syscallbuf 2 0.148241
sigaltstack-32 2 0.168017
sigaltstack-32-no-syscallbuf 2 0.177744
sigchld_interrupt_signal-32 2 4.17391
sigchld_interrupt_signal-32-no-syscallbuf 2 4.64724
sigcont-32 2 0.182719
sigcont-32-no-syscallbuf 2 0.17846
sighandler_bad_rsp_sigsegv-32 2 0.165357
sighandler_bad_rsp_sigsegv-32-no-syscallbuf 2 0.200135
sighandler_fork-32 2 0.229891
sighandler_fork-32-no-syscallbuf 2 0.201362
sighandler_mask-32 2 0.198156
sighandler_mask-32-no-syscallbuf 2 0.197925
sigill-32 2 0.175937
sigill-32-no-syscallbuf 2 0.151933
signal_deferred-32 2 0.238068
signal_deferred-32-no-syscallbuf 2 0.22673
signal_during_preload_init-32 2 0.205667
signal_during_preload_init-32-no-syscallbuf 2 0.16874
signal_frame-32 2 0.183135
signal_frame-32-no-syscallbuf 2 0.163214
signal_unstoppable-32 2 0.172697
signal_unstoppable-32-no-syscallbuf 2 0.176041
signalfd-32 2 0.163957
signalfd-32-no-syscallbuf 2 0.173083
sigprocmask-32 2 0.635516
sigprocmask-32-no-syscallbuf 2 0.512729
sigprocmask_ensure_delivery-32 2 0.188993
sigprocmask_ensure_delivery-32-no-syscallbuf 2 0.197066
sigprocmask_exec-32 2 0.224889
sigprocmask_exec-32-no-syscallbuf 2 0.203679
sigprocmask_evil-32 2 0.173367
sigprocmask_evil-32-no-syscallbuf 2 0.161906
sigprocmask_in_syscallbuf_sighandler-32 2 1.1356
sigprocmask_in_syscallbuf_sighandler-32-no-syscallbuf 2 1.16151
sigprocmask_rr_sigs-32 2 0.203465
sigprocmask_rr_sigs-32-no-syscallbuf 2 0.154496
sigprocmask_syscallbuf-32 2 0.257067
sigprocmask_syscallbuf-32-no-syscallbuf 2 0.163535
sigqueueinfo-32 2 0.192575
sigqueueinfo-32-no-syscallbuf 2 0.183718
x86/sigreturn-32 2 0.200426
x86/sigreturn-32-no-syscallbuf 2 0.203151
sigreturn_reg-32 2 0.164388
sigreturn_reg-32-no-syscallbuf 2 0.157327
sigreturnmask-32 2 0.360989
sigreturnmask-32-no-syscallbuf 2 0.329691
sigrt-32 2 0.279908
sigrt-32-no-syscallbuf 2 0.273772
sigstop-32 2 0.272004
sigstop-32-no-syscallbuf 2 0.21508
sigstop2-32 2 0.173375
sigstop2-32-no-syscallbuf 2 0.1829
sigsuspend-32 2 0.179968
sigsuspend-32-no-syscallbuf 2 0.181647
sigtrap-32 2 0.194202
sigtrap-32-no-syscallbuf 2 0.198646
simple_threads_stress-32 2 1.55506
simple_threads_stress-32-no-syscallbuf 2 1.91246
sioc-32 2 0.597241
sioc-32-no-syscallbuf 2 0.984665
small_holes-32 2 0.216759
small_holes-32-no-syscallbuf 2 0.190171
sock_names_opts-32 2 0.24013
sock_names_opts-32-no-syscallbuf 2 0.208039
spinlock_priorities-32 2 1.18743
spinlock_priorities-32-no-syscallbuf 2 2.21217
splice-32 2 0.211997
splice-32-no-syscallbuf 2 0.175437
stack_growth_after_syscallbuf-32 2 0.176133
stack_growth_after_syscallbuf-32-no-syscallbuf 2 0.180134
stack_growth_syscallbuf-32 2 0.224124
stack_growth_syscallbuf-32-no-syscallbuf 2 7.43736
stack_growth_with_guard-32 2 0.176287
stack_growth_with_guard-32-no-syscallbuf 2 0.171927
stack_invalid-32 2 0.198923
stack_invalid-32-no-syscallbuf 2 0.158112
stack_overflow-32 2 0.299813
stack_overflow-32-no-syscallbuf 2 0.306432
stack_overflow_altstack-32 2 0.172148
stack_overflow_altstack-32-no-syscallbuf 2 0.180087
stack_overflow_with_guard-32 2 0.277676
stack_overflow_with_guard-32-no-syscallbuf 2 0.259982
statfs-32 2 0.247123
statfs-32-no-syscallbuf 2 0.223844
statx-32 2 0.18761
statx-32-no-syscallbuf 2 0.156038
stdout_child-32 2 0.228882
stdout_child-32-no-syscallbuf 2 0.202993
stdout_cloexec-32 2 0.37312
stdout_cloexec-32-no-syscallbuf 2 0.233512
stdout_dup-32 2 0.158335
stdout_dup-32-no-syscallbuf 2 0.180505
stdout_redirect-32 2 0.233056
stdout_redirect-32-no-syscallbuf 2 0.228063
switch_read-32 2 0.679615
switch_read-32-no-syscallbuf 2 0.705301
symlink-32 2 0.153647
symlink-32-no-syscallbuf 2 0.151247
sync-32 2 0.224612
sync-32-no-syscallbuf 2 0.373438
sync_file_range-32 2 0.176229
sync_file_range-32-no-syscallbuf 2 0.185675
syscall_bp-32 2 0.227873
syscall_bp-32-no-syscallbuf 2 0.152013
syscall_in_writable_mem-32 2 0.16217
syscall_in_writable_mem-32-no-syscallbuf 2 0.162692
syscallbuf_signal_reset-32 2 0.171769
syscallbuf_signal_reset-32-no-syscallbuf 2 0.172879
syscallbuf_signal_blocking-32 2 0.182044
syscallbuf_signal_blocking-32-no-syscallbuf 2 0.174233
syscallbuf_sigstop-32 2 8.3546
syscallbuf_sigstop-32-no-syscallbuf 2 19.726
syscallbuf_timeslice-32 2 0.195219
syscallbuf_timeslice-32-no-syscallbuf 2 3.18591
syscallbuf_timeslice2-32 2 0.235487
syscallbuf_timeslice2-32-no-syscallbuf 2 8.84544
sysconf-32 2 0.216995
sysconf-32-no-syscallbuf 2 0.183905
sysctl-32 2 0.17549
sysctl-32-no-syscallbuf 2 0.182945
sysemu_singlestep-32 2 0.188511
sysemu_singlestep-32-no-syscallbuf 2 0.160338
x86/sysfs-32 2 0.216447
x86/sysfs-32-no-syscallbuf 2 0.258669
sysinfo-32 2 0.169013
sysinfo-32-no-syscallbuf 2 0.159985
tgkill-32 2 0.211264
tgkill-32-no-syscallbuf 2 0.224148
thread_yield-32 2 3.26443
thread_yield-32-no-syscallbuf 2 3.18955
timer-32 2 65.4883
timer-32-no-syscallbuf 2 61.5215
timerfd-32 2 0.259309
timerfd-32-no-syscallbuf 2 0.25765
times-32 2 0.190807
times-32-no-syscallbuf 2 0.165569
truncate_temp-32 2 0.192476
truncate_temp-32-no-syscallbuf 2 0.183864
tun-32 2 0.266826
tun-32-no-syscallbuf 2 0.224363
two_signals_with_mask-32 2 0.193805
two_signals_with_mask-32-no-syscallbuf 2 0.200266
ulimit_low-32 2 0.202149
ulimit_low-32-no-syscallbuf 2 0.185735
uname-32 2 0.164955
uname-32-no-syscallbuf 2 0.178798
unexpected_exit-32 2 0.230114
unexpected_exit-32-no-syscallbuf 2 0.474315
unexpected_exit_execve-32 2 0.310605
unexpected_exit_execve-32-no-syscallbuf 2 0.483972
unexpected_exit_execve_twice-32 2 1.27987
unexpected_exit_execve_twice-32-no-syscallbuf 2 1.60515
unexpected_exit_pid_ns-32 2 0.676718
unexpected_exit_pid_ns-32-no-syscallbuf 2 0.21609
unjoined_thread-32 2 0.171839
unjoined_thread-32-no-syscallbuf 2 0.16768
unshare-32 2 0.402218
unshare-32-no-syscallbuf 2 1.21276
userfaultfd-32 2 0.189497
userfaultfd-32-no-syscallbuf 2 0.161169
utimes-32 2 0.182642
utimes-32-no-syscallbuf 2 0.170065
vdso_parts-32 2 0.156907
vdso_parts-32-no-syscallbuf 2 0.160536
vfork_flush-32 2 0.240043
vfork_flush-32-no-syscallbuf 2 0.182477
vfork_shared-32 2 0.164851
vfork_shared-32-no-syscallbuf 2 0.157664
video_capture-32 2 0.1824
video_capture-32-no-syscallbuf 2 0.151597
vm_readv_writev-32 2 0.178979
vm_readv_writev-32-no-syscallbuf 2 0.187688
vsyscall-32 2 0.210085
vsyscall-32-no-syscallbuf 2 0.158692
vsyscall_timeslice-32 2 0.188542
vsyscall_timeslice-32-no-syscallbuf 2 0.176226
x86/x87env-32 2 0.178634
x86/x87env-32-no-syscallbuf 2 0.156739
wait-32 2 0.207803
wait-32-no-syscallbuf 2 0.181911
wait_sigstop-32 2 0.245489
wait_sigstop-32-no-syscallbuf 2 0.20551
write_race-32 2 2.81023
write_race-32-no-syscallbuf 2 1.62455
writev-32 2 0.216639
writev-32-no-syscallbuf 2 0.158551
xattr-32 2 0.175634
xattr-32-no-syscallbuf 2 0.185673
zero_length_read-32 2 0.20377
zero_length_read-32-no-syscallbuf 2 0.175449
std_random-32 2 0.215086
std_random-32-no-syscallbuf 2 0.213033
unwind_rr_page-32 2 1.15772
unwind_rr_page-32-no-syscallbuf 2 1.19208
abort_nonmain-32 2 0.419818
abort_nonmain-32-no-syscallbuf 2 0.514262
alternate_thread_diversion-32 2 0.765083
alternate_thread_diversion-32-no-syscallbuf 2 0.754914
args-32 2 0.160012
args-32-no-syscallbuf 2 0.164688
async_kill_with_syscallbuf-32 2 2.96233
async_kill_with_syscallbuf-32-no-syscallbuf 2 3.71867
async_kill_with_syscallbuf2-32 2 2.31923
async_kill_with_syscallbuf2-32-no-syscallbuf 2 2.7653
async_kill_with_threads-32 2 2.28526
async_kill_with_threads-32-no-syscallbuf 2 2.25265
async_kill_with_threads_main_running-32 2 2.32524
async_kill_with_threads_main_running-32-no-syscallbuf 2 2.35965
async_kill_with_threads_thread_running-32 2 6.16048
async_kill_with_threads_thread_running-32-no-syscallbuf 2 6.17832
async_segv-32 2 4.58465
async_segv-32-no-syscallbuf 2 4.26574
async_signal_syscalls-32 2 1.24413
async_signal_syscalls-32-no-syscallbuf 2 0.0191033
async_signal_syscalls2-32 2 0.488521
async_signal_syscalls2-32-no-syscallbuf 2 0.0195984
async_signal_syscalls_siginfo-32 2 2.3458
async_signal_syscalls_siginfo-32-no-syscallbuf 2 0.0198688
async_usr1-32 2 4.18131
async_usr1-32-no-syscallbuf 2 4.37104
blacklist-32 2 0.199968
blacklist-32-no-syscallbuf 2 0.169581
block_clone_checkpoint-32 2 0.972619
block_clone_checkpoint-32-no-syscallbuf 2 1.0248
block_clone_interrupted-32 2 6.1161
block_clone_interrupted-32-no-syscallbuf 2 5.00848
block_clone_syscallbuf_overflow-32 2 7.25687
block_clone_syscallbuf_overflow-32-no-syscallbuf 2 7.23739
block_intr_sigchld-32 2 6.66237
block_intr_sigchld-32-no-syscallbuf 2 5.92013
blocked_bad_ip-32 2 1.24533
blocked_bad_ip-32-no-syscallbuf 2 1.06315
blocked_sigill-32 2 0.449607
blocked_sigill-32-no-syscallbuf 2 0.436688
x86/blocked_sigsegv-32 2 0.427648
x86/blocked_sigsegv-32-no-syscallbuf 2 0.440355
breakpoint-32 2 0.781104
breakpoint-32-no-syscallbuf 2 0.756534
breakpoint_conditions-32 2 0.931492
breakpoint_conditions-32-no-syscallbuf 2 0.899478
breakpoint_overlap-32 2 0.907463
breakpoint_overlap-32-no-syscallbuf 2 0.796609
call_function-32 2 0.895301
call_function-32-no-syscallbuf 2 0.835369
call_gettid-32 2 0.809616
call_gettid-32-no-syscallbuf 2 0.797137
checkpoint_dying_threads-32 2 0.870958
checkpoint_dying_threads-32-no-syscallbuf 2 0.886313
checkpoint_mixed_mode-32 2 0.781085
checkpoint_mixed_mode-32-no-syscallbuf 2 0.810389
checksum_sanity-32 2 2.25127
checksum_sanity-32-no-syscallbuf 2 1.54868
check_lost_interrupts-32 2 1.64176
check_lost_interrupts-32-no-syscallbuf 2 0.0340491
clone_interruption-32 2 1.89058
clone_interruption-32-no-syscallbuf 2 1.7642
clone_vfork-32 2 0.228699
clone_vfork-32-no-syscallbuf 2 0.284549
conditional_breakpoint_calls-32 2 0.8973
conditional_breakpoint_calls-32-no-syscallbuf 2 0.853431
conditional_breakpoint_offload-32 2 97.907
conditional_breakpoint_offload-32-no-syscallbuf 2 98.3436
condvar_stress-32 2 20.5983
condvar_stress-32-no-syscallbuf 2 55.8068
cont_race-32 2 18.4938
cont_race-32-no-syscallbuf 2 7.5187
x86/cpuid_singlestep-32 2 0.788428
x86/cpuid_singlestep-32-no-syscallbuf 2 0.775394
crash-32 2 0.375658
crash-32-no-syscallbuf 2 0.373543
crash_in_function-32 2 1.19966
crash_in_function-32-no-syscallbuf 2 1.1729
daemon_read-32 2 0.239872
daemon_read-32-no-syscallbuf 2 0.206172
dconf_mock-32 2 0.190717
dconf_mock-32-no-syscallbuf 2 0.210945
dev_tty-32 2 0.15771
dev_tty-32-no-syscallbuf 2 0.152782
diversion_sigtrap-32 2 1.14728
diversion_sigtrap-32-no-syscallbuf 2 1.14366
diversion_syscall-32 2 0.958771
diversion_syscall-32-no-syscallbuf 2 0.973065
dlopen-32 2 5.03807
dlopen-32-no-syscallbuf 2 6.69
early_error-32 2 0.407332
early_error-32-no-syscallbuf 2 0.493056
elapsed_time-32 2 1.80462
elapsed_time-32-no-syscallbuf 2 1.81788
exclusion_region-32 2 0.18669
exclusion_region-32-no-syscallbuf 2 0.165941
exec_failed-32 2 0.730666
exec_failed-32-no-syscallbuf 2 0.759682
exec_many-32 2 6.45334
exec_many-32-no-syscallbuf 2 4.53874
execve_loop-32 2 6.09311
execve_loop-32-no-syscallbuf 2 4.70132
exit_codes-32 2 0.445052
exit_codes-32-no-syscallbuf 2 0.477203
exit_group-32 2 0.181852
exit_group-32-no-syscallbuf 2 0.176978
exit_race-32 2 1.38796
exit_race-32-no-syscallbuf 2 1.21512
exit_status-32 2 0.116335
exit_status-32-no-syscallbuf 2 0.114189
x86/explicit_checkpoints-32 2 1.30454
x86/explicit_checkpoints-32-no-syscallbuf 2 1.26135
fd_limit-32 2 0.187127
fd_limit-32-no-syscallbuf 2 0.997723
fork_stress-32 2 3.61525
fork_stress-32-no-syscallbuf 2 1.40335
fork_syscalls-32 2 0.168964
fork_syscalls-32-no-syscallbuf 2 0.208122
function_calls-32 2 3.03073
function_calls-32-no-syscallbuf 2 3.51453
x86/fxregs-32 2 0.765217
x86/fxregs-32-no-syscallbuf 2 0.772687
getcwd-32 2 0.169073
getcwd-32-no-syscallbuf 2 0.169593
gdb_bogus_breakpoint-32 2 0.772146
gdb_bogus_breakpoint-32-no-syscallbuf 2 0.760645
goto_event-32 2 3.68828
goto_event-32-no-syscallbuf 2 1.69596
hello-32 2 0.202056
hello-32-no-syscallbuf 2 0.182372
hooks-32 2 1.00194
hooks-32-no-syscallbuf 2 0.0212301
ignored_async_usr1-32 2 2.39089
ignored_async_usr1-32-no-syscallbuf 2 3.59592
ignored_sigsegv-32 2 0.467501
ignored_sigsegv-32-no-syscallbuf 2 0.448767
ignore_nested-32 2 0.328183
ignore_nested-32-no-syscallbuf 2 0.321336
immediate_restart-32 2 0.901743
immediate_restart-32-no-syscallbuf 2 0.944109
x86/int3_ok-32 2 0.170286
x86/int3_ok-32-no-syscallbuf 2 0.175991
interrupt-32 2 4.98112
interrupt-32-no-syscallbuf 2 4.48325
intr_ptrace_decline-32 2 5.18875
intr_ptrace_decline-32-no-syscallbuf 2 4.69277
invalid_interpreter-32 2 1.16413
invalid_interpreter-32-no-syscallbuf 2 1.12651
invalid_jump-32 2 3.69128
invalid_jump-32-no-syscallbuf 2 1.89185
jit_proc_mem-32 2 0.871428
jit_proc_mem-32-no-syscallbuf 2 0.869078
link-32 2 0.190435
link-32-no-syscallbuf 2 0.166527
madvise_dontfork-32 2 0.915018
madvise_dontfork-32-no-syscallbuf 2 0.916182
main_thread_exit-32 2 0.976596
main_thread_exit-32-no-syscallbuf 2 0.988971
many_yields-32 2 2.70468
many_yields-32-no-syscallbuf 2 2.14603
mmap_fd_reuse_checkpoint-32 2 0.941569
mmap_fd_reuse_checkpoint-32-no-syscallbuf 2 0.939913
mmap_replace_most_mappings-32 2 2.68514
mmap_replace_most_mappings-32-no-syscallbuf 2 2.41771
mmap_shared_prot-32 2 0.929817
mmap_shared_prot-32-no-syscallbuf 2 0.92472
mmap_shared_write_exec_race-32 2 3.81915
mmap_shared_write_exec_race-32-no-syscallbuf 2 4.60813
mmap_tmpfs-32 2 0.194743
mmap_tmpfs-32-no-syscallbuf 2 0.18605
mmap_write-32 2 0.0192549
mmap_write-32-no-syscallbuf 2 0.0200511
mmap_write_private-32 2 0.308225
mmap_write_private-32-no-syscallbuf 2 0.324777
morestack_unwind-32 1 0.537327
morestack_unwind-32-no-syscallbuf 1 0.0202514
mprotect_growsdown-32 2 0.339205
mprotect_growsdown-32-no-syscallbuf 2 0.31326
mprotect_syscallbuf_overflow-32 2 0.280952
mprotect_syscallbuf_overflow-32-no-syscallbuf 2 8.061
mutex_pi_stress-32 2 22.3886
mutex_pi_stress-32-no-syscallbuf 2 27.1594
nested_detach_wait-32 2 0.562413
nested_detach_wait-32-no-syscallbuf 2 0.555944
overflow_branch_counter-32 2 2.97918
overflow_branch_counter-32-no-syscallbuf 2 3.1523
patch_page_end-32 2 0.168311
patch_page_end-32-no-syscallbuf 2 0.027147
x86/patch_40_80_f6_81-32 2 0.164649
x86/patch_40_80_f6_81-32-no-syscallbuf 2 0.0250984
perf_event_mmap-32 2 1.20662
perf_event_mmap-32-no-syscallbuf 2 1.20416
priority-32 2 0.188146
priority-32-no-syscallbuf 2 0.187545
ptrace_remote_unmap-32 2 4.96867
ptrace_remote_unmap-32-no-syscallbuf 2 4.48549
read_big_struct-32 2 0.895185
read_big_struct-32-no-syscallbuf 2 0.971367
remove_latest_trace-32 2 1.19413
remove_latest_trace-32-no-syscallbuf 2 1.18728
restart_abnormal_exit-32 2 1.15147
restart_abnormal_exit-32-no-syscallbuf 2 1.11481
reverse_continue_breakpoint-32 2 1.68965
reverse_continue_breakpoint-32-no-syscallbuf 2 1.79149
reverse_continue_multiprocess-32 2 10.6853
reverse_continue_multiprocess-32-no-syscallbuf 2 10.3271
reverse_continue_process_signal-32 2 3.62473
reverse_continue_process_signal-32-no-syscallbuf 2 5.01924
reverse_many_breakpoints-32 2 4.38134
reverse_many_breakpoints-32-no-syscallbuf 2 5.46287
reverse_step_long-32 2 6.24439
reverse_step_long-32-no-syscallbuf 2 9.08036
reverse_step_threads-32 2 2.50329
reverse_step_threads-32-no-syscallbuf 2 2.31751
reverse_step_threads_break-32 2 5.17554
reverse_step_threads_break-32-no-syscallbuf 2 5.72419
rr_ps-32 2 0.436267
rr_ps-32-no-syscallbuf 2 0.374363
rr_ps_ns-32 2 0.234007
rr_ps_ns-32-no-syscallbuf 2 0.240328
rseq-32 2 67.2539
rseq-32-no-syscallbuf 2 83.9439
search-32 2 0.864452
search-32-no-syscallbuf 2 0.817897
seccomp_blocks_rr-32 2 0.445652
seccomp_blocks_rr-32-no-syscallbuf 2 0.191702
seccomp_signals-32 2 2.71263
seccomp_signals-32-no-syscallbuf 2 3.18287
segfault-32 2 0.187947
segfault-32-no-syscallbuf 2 0.167304
shared_map-32 2 0.231787
shared_map-32-no-syscallbuf 2 0.217581
shared_persistent_file-32 2 0.989357
shared_persistent_file-32-no-syscallbuf 2 0.914795
signal_numbers-32 2 1.06353
signal_numbers-32-no-syscallbuf 2 1.02158
sigprocmask_race-32 2 0.183223
sigprocmask_race-32-no-syscallbuf 2 0.0195983
sigprocmask_rr_sigs_nondefault-32 2 0.0950051
sigprocmask_rr_sigs_nondefault-32-no-syscallbuf 2 0.0818044
simple-32 2 0.324804
simple-32-no-syscallbuf 2 0.29707
x86/singlestep_pushf-32 2 0.870134
x86/singlestep_pushf-32-no-syscallbuf 2 0.75588
stack_growth-32 2 0.835045
stack_growth-32-no-syscallbuf 2 0.865223
step_thread-32 2 1.00272
step_thread-32-no-syscallbuf 2 1.03955
strict_priorities-32 2 10.905
strict_priorities-32-no-syscallbuf 2 12.5371
x86/string_instructions-32 2 0.732684
x86/string_instructions-32-no-syscallbuf 2 0.690063
x86/string_instructions_async_signals-32 2 0.243053
x86/string_instructions_async_signals-32-no-syscallbuf 2 70.768027
x86/string_instructions_async_signals_shared-32 2 0.280141
x86/string_instructions_async_signals_shared-32-no-syscallbuf 2 91.424003
x86/string_instructions_multiwatch-32 2 0.885137
x86/string_instructions_multiwatch-32-no-syscallbuf 2 0.815804
x86/string_instructions_replay-32 2 13.1396
x86/string_instructions_replay-32-no-syscallbuf 2 13.083
x86/string_instructions_singlestep_fastforward-32 2 7.99402
x86/string_instructions_singlestep_fastforward-32-no-syscallbuf 2 8.02594
x86/string_instructions_watch-32 2 0.944771
x86/string_instructions_watch-32-no-syscallbuf 2 0.935292
syscallbuf_fd_disabling-32 2 0.305953
syscallbuf_fd_disabling-32-no-syscallbuf 2 0.282688
syscallbuf_signal_blocking_read-32 2 1.23466
syscallbuf_signal_blocking_read-32-no-syscallbuf 2 1.14413
sysconf_onln-32 2 0.344965
sysconf_onln-32-no-syscallbuf 2 0.327284
target_fork-32 2 2.71431
target_fork-32-no-syscallbuf 2 1.43742
target_process-32 2 1.32236
target_process-32-no-syscallbuf 2 1.21721
tcp_sockets-32 2 0.14743
tcp_sockets-32-no-syscallbuf 2 0.151912
term_nonmain-32 2 0.21022
term_nonmain-32-no-syscallbuf 2 0.208668
term_rr-32 2 3.27718
term_rr-32-no-syscallbuf 2 3.26641
term_trace_reset-32 2 0.214047
term_trace_reset-32-no-syscallbuf 2 0.213101
term_trace_syscall-32 2 0.228815
term_trace_syscall-32-no-syscallbuf 2 0.24171
thread_exit_signal-32 2 3.09934
thread_exit_signal-32-no-syscallbuf 2 2.99841
thread_open_race-32 2 33.8294
thread_open_race-32-no-syscallbuf 2 0.0212188
thread_stress-32 2 13.7434
thread_stress-32-no-syscallbuf 2 16.5669
threaded_syscall_spam-32 2 1.71365
threaded_syscall_spam-32-no-syscallbuf 2 0.0223637
threads-32 2 1.20922
threads-32-no-syscallbuf 2 1.14972
tls-32 2 0.891054
tls-32-no-syscallbuf 2 0.863566
ttyname-32 2 0.155298
ttyname-32-no-syscallbuf 2 0.185634
unexpected_stack_growth-32 2 0.960644
unexpected_stack_growth-32-no-syscallbuf 2 0.938926
user_ignore_sig-32 2 0.169817
user_ignore_sig-32-no-syscallbuf 2 0.166966
vdso_clock_gettime_stack-32 2 0.0198637
vdso_clock_gettime_stack-32-no-syscallbuf 2 0.0198518
vdso_gettimeofday_stack-32 2 0.0196665
vdso_gettimeofday_stack-32-no-syscallbuf 2 0.0200317
vdso_time_stack-32 2 0.0221022
vdso_time_stack-32-no-syscallbuf 2 0.0202745
vfork-32 2 0.236849
vfork-32-no-syscallbuf 2 0.305823
vfork_read_clone_stress-32 2 1.58314
vfork_read_clone_stress-32-no-syscallbuf 2 2.62239
vsyscall_reverse_next-32 2 211.0415
vsyscall_reverse_next-32-no-syscallbuf 2 205.237
wait_for_all-32 2 1.14266
wait_for_all-32-no-syscallbuf 2 1.14552
watchpoint-32 2 1.22955
watchpoint-32-no-syscallbuf 2 1.35199
watchpoint_at_sched-32 2 1.13428
watchpoint_at_sched-32-no-syscallbuf 2 1.25188
watchpoint_before_signal-32 2 0.910176
watchpoint_before_signal-32-no-syscallbuf 2 0.854977
watchpoint_no_progress-32 2 3.67209
watchpoint_no_progress-32-no-syscallbuf 2 1.86114
watchpoint_size_change-32 2 0.887745
watchpoint_size_change-32-no-syscallbuf 2 0.902858
watchpoint_syscall-32 2 0.901712
watchpoint_syscall-32-no-syscallbuf 2 0.813837
watchpoint_unaligned-32 2 0.781136
watchpoint_unaligned-32-no-syscallbuf 2 0.800987
async_signal_syscalls_100-32 2 0.197139
async_signal_syscalls_100-32-no-syscallbuf 2 4.47429
async_signal_syscalls_1000-32 2 0.18801
async_signal_syscalls_1000-32-no-syscallbuf 2 3.44946
bad_breakpoint-32 2 7.34282
bad_breakpoint-32-no-syscallbuf 2 8.09281
break_block-32 2 9.83223
break_block-32-no-syscallbuf 2 9.83806
break_clock-32 2 0.946965
break_clock-32-no-syscallbuf 2 1.12394
break_clone-32 2 0.751169
break_clone-32-no-syscallbuf 2 0.820749
break_exec-32 2 0.84265
break_exec-32-no-syscallbuf 2 0.874733
break_int3-32 2 0.780189
break_int3-32-no-syscallbuf 2 0.759644
break_mmap_private-32 2 1.98541
break_mmap_private-32-no-syscallbuf 2 1.89648
break_msg-32 2 2.89203
break_msg-32-no-syscallbuf 2 3.05882
x86/break_rdtsc-32 2 0.848203
x86/break_rdtsc-32-no-syscallbuf 2 0.841489
break_sigreturn-32 2 4.78895
break_sigreturn-32-no-syscallbuf 2 4.88569
break_sync_signal-32 2 0.753919
break_sync_signal-32-no-syscallbuf 2 0.750371
break_thread-32 2 0.912845
break_thread-32-no-syscallbuf 2 1.16875
break_time_slice-32 2 9.33131
break_time_slice-32-no-syscallbuf 2 9.28867
breakpoint_consistent-32 2 0.792691
breakpoint_consistent-32-no-syscallbuf 2 0.775111
call_exit-32 2 0.981659
call_exit-32-no-syscallbuf 2 0.993623
check_patched_pthread-32 2 1.86368
check_patched_pthread-32-no-syscallbuf 2 1.84408
checkpoint_async_signal_syscalls_1000-32 2 2.25777
checkpoint_async_signal_syscalls_1000-32-no-syscallbuf 2 0.0206373
checkpoint_mmap_shared-32 2 19.0184
checkpoint_mmap_shared-32-no-syscallbuf 2 13.8387
checkpoint_prctl_name-32 2 24.3736
checkpoint_prctl_name-32-no-syscallbuf 2 23.9934
checkpoint_simple-32 2 10.1515
checkpoint_simple-32-no-syscallbuf 2 7.59328
checksum_sanity_noclone-32 2 1.41863
checksum_sanity_noclone-32-no-syscallbuf 2 1.55539
comm-32 2 0.617483
comm-32-no-syscallbuf 2 0.60854
cont_signal-32 2 4.82038
cont_signal-32-no-syscallbuf 2 4.83081
x86/cpuid-32 2 1.34973
x86/cpuid-32-no-syscallbuf 2 0.999242
dead_thread_target-32 2 0.989117
dead_thread_target-32-no-syscallbuf 2 0.952645
desched_ticks-32 2 0.872766
desched_ticks-32-no-syscallbuf 2 0.0242881
deliver_async_signal_during_syscalls-32 2 0.708833
deliver_async_signal_during_syscalls-32-no-syscallbuf 2 0.0201246
env_newline-32 2 0.168631
env_newline-32-no-syscallbuf 2 0.156516
exec_deleted-32 2 0.170722
exec_deleted-32-no-syscallbuf 2 0.168588
exec_stop-32 2 0.897157
exec_stop-32-no-syscallbuf 2 0.909516
execp-32 2 0.180209
execp-32-no-syscallbuf 2 0.161059
explicit_checkpoint_clone-32 2 0.995701
explicit_checkpoint_clone-32-no-syscallbuf 2 0.952514
file_name_newline-32 2 0.187082
file_name_newline-32-no-syscallbuf 2 0.159259
final_sigkill-32 2 0.985235
final_sigkill-32-no-syscallbuf 2 0.96928
first_instruction-32 2 0.741433
first_instruction-32-no-syscallbuf 2 0.718259
fork_exec_info_thr-32 2 3.71603
fork_exec_info_thr-32-no-syscallbuf 2 3.23103
get_thread_list-32 2 0.995385
get_thread_list-32-no-syscallbuf 2 0.946593
hardlink_mmapped_files-32 2 2.21809
hardlink_mmapped_files-32-no-syscallbuf 2 2.19885
hbreak-32 2 0.87166
hbreak-32-no-syscallbuf 2 0.89237
mprotect_step-32 2 1.05356
mprotect_step-32-no-syscallbuf 2 1.12296
nested_detach-32 2 0.48179
nested_detach-32-no-syscallbuf 2 0.407968
nested_detach_kill-32 2 0.620392
nested_detach_kill-32-no-syscallbuf 2 0.522451
nested_release-32 2 0.310225
nested_release-32-no-syscallbuf 2 0.303973
parent_no_break_child_bkpt-32 2 1.07206
parent_no_break_child_bkpt-32-no-syscallbuf 2 1.04337
parent_no_stop_child_crash-32 2 1.06683
parent_no_stop_child_crash-32-no-syscallbuf 2 0.994023
post_exec_fpu_regs-32 2 0.58547
post_exec_fpu_regs-32-no-syscallbuf 2 0.584769
proc_maps-32 2 0.743487
proc_maps-32-no-syscallbuf 2 0.81206
read_bad_mem-32 2 0.741059
read_bad_mem-32-no-syscallbuf 2 0.746854
record_replay-32 2 142.449
record_replay-32-no-syscallbuf 2 142.207
remove_watchpoint-32 2 0.887807
remove_watchpoint-32-no-syscallbuf 2 0.848615
replay_overlarge_event_number-32 2 0.151729
replay_overlarge_event_number-32-no-syscallbuf 2 0.145948
replay_serve_files-32 2 3.53657
replay_serve_files-32-no-syscallbuf 2 3.72855
restart_invalid_checkpoint-32 2 0.979497
restart_invalid_checkpoint-32-no-syscallbuf 2 0.936837
restart_unstable-32 2 0.976465
restart_unstable-32-no-syscallbuf 2 0.946823
restart_diversion-32 2 1.05779
restart_diversion-32-no-syscallbuf 2 1.06658
reverse_alarm-32 2 5.55884
reverse_alarm-32-no-syscallbuf 2 4.26309
reverse_continue_exec_subprocess-32 2 3.53948
reverse_continue_exec_subprocess-32-no-syscallbuf 2 3.5475
reverse_continue_fork_subprocess-32 2 1.11541
reverse_continue_fork_subprocess-32-no-syscallbuf 2 1.12745
reverse_continue_int3-32 2 4.08885
reverse_continue_int3-32-no-syscallbuf 2 3.79756
reverse_continue_start-32 2 1.74623
reverse_continue_start-32-no-syscallbuf 2 1.84734
reverse_finish-32 2 2.71542
reverse_finish-32-no-syscallbuf 2 2.34464
reverse_step_breakpoint-32 2 4.20755
reverse_step_breakpoint-32-no-syscallbuf 2 4.30403
reverse_step_signal-32 2 4.36456
reverse_step_signal-32-no-syscallbuf 2 4.44296
reverse_step_threads2-32 2 4.43858
reverse_step_threads2-32-no-syscallbuf 2 4.3075
reverse_watchpoint-32 2 3.28588
reverse_watchpoint-32-no-syscallbuf 2 3.61425
reverse_watchpoint_syscall-32 2 7.9328
reverse_watchpoint_syscall-32-no-syscallbuf 2 7.61239
run_end-32 2 1.0957
run_end-32-no-syscallbuf 2 1.08614
run_in_function-32 2 0.9406
run_in_function-32-no-syscallbuf 2 0.975155
sanity-32 2 0.730954
sanity-32-no-syscallbuf 2 0.718052
seekticks-32 2 1.89101
seekticks-32-no-syscallbuf 2 1.71722
shm_checkpoint-32 2 0.979113
shm_checkpoint-32-no-syscallbuf 2 0.95366
siginfo-32 2 0.730536
siginfo-32-no-syscallbuf 2 0.768976
x86/sigreturn_checksum-32 2 0.736871
x86/sigreturn_checksum-32-no-syscallbuf 2 0.69224
signal_stop-32 2 0.766017
signal_stop-32-no-syscallbuf 2 0.824693
signal_checkpoint-32 2 0.958273
signal_checkpoint-32-no-syscallbuf 2 1.01121
simple_script-32 2 0.177902
simple_script-32-no-syscallbuf 2 0.191716
simple_script_debug-32 2 0.888283
simple_script_debug-32-no-syscallbuf 2 0.894607
simple_winch-32 2 2.32163
simple_winch-32-no-syscallbuf 2 2.12602
stack_overflow_debug-32 2 6.3049
stack_overflow_debug-32-no-syscallbuf 2 6.60805
step1-32 2 0.841349
step1-32-no-syscallbuf 2 0.766025
x86/step_rdtsc-32 2 0.883087
x86/step_rdtsc-32-no-syscallbuf 2 0.927036
step_signal-32 2 0.879484
step_signal-32-no-syscallbuf 2 0.916336
x86/string_instructions_break-32 2 6.07348
x86/string_instructions_break-32-no-syscallbuf 2 7.3036
x86/string_instructions_replay_quirk-32 2 6.26888
x86/string_instructions_replay_quirk-32-no-syscallbuf 2 6.62562
subprocess_exit_ends_session-32 2 1.00101
subprocess_exit_ends_session-32-no-syscallbuf 2 0.979481
switch_processes-32 2 5.00449
switch_processes-32-no-syscallbuf 2 3.96395
syscallbuf_timeslice_250-32 2 0.2163
syscallbuf_timeslice_250-32-no-syscallbuf 2 3.28733
trace_version-32 2 2.55284
trace_version-32-no-syscallbuf 2 2.55163
term_trace_cpu-32 2 0.541342
term_trace_cpu-32-no-syscallbuf 2 0.621864
trace_events-32 2 0.131738
trace_events-32-no-syscallbuf 2 0.127949
tty-32 2 0.166929
tty-32-no-syscallbuf 2 0.147314
unmap_vdso-32 2 0.336841
unmap_vdso-32-no-syscallbuf 2 0.340823
unwind_on_signal-32 2 0.803562
unwind_on_signal-32-no-syscallbuf 2 0.792202
vfork_exec-32 2 0.942089
vfork_exec-32-no-syscallbuf 2 0.957233
vfork_break_parent-32 2 0.884067
vfork_break_parent-32-no-syscallbuf 2 0.873047
vsyscall_singlestep-32 2 0.0226703
vsyscall_singlestep-32-no-syscallbuf 2 0.0210348
watch_code-32 2 1.8636
watch_code-32-no-syscallbuf 2 1.79997
watchpoint_cond-32 2 0.788546
watchpoint_cond-32-no-syscallbuf 2 0.766512
when-32 2 0.761362
when-32-no-syscallbuf 2 0.787807
close_range 1 0.187604
close_range-no-syscallbuf 1 0.169697
dlchecksum 1 0.240732
dlchecksum-no-syscallbuf 1 0.206452
epoll_many 1 0.216123
epoll_many-no-syscallbuf 1 0.240203
epoll_pwait2 1 1.30869
epoll_pwait2-no-syscallbuf 1 1.22883
futex_invalid_op 1 0.17379
futex_invalid_op-no-syscallbuf 1 0.213894
futex_restart_race 1 0.263257
futex_restart_race-no-syscallbuf 1 0.22909
futex_restart_clone 1 0.205975
futex_restart_clone-no-syscallbuf 1 0.196681
ioctl_br 1 0.40846
ioctl_br-no-syscallbuf 1 0.591008
mremap_dontunmap 1 0.222197
mremap_dontunmap-no-syscallbuf 1 0.192309
ppoll_deliver 1 0.165071
ppoll_deliver-no-syscallbuf 1 0.158939
x86/rdtsc_flags 1 0.161648
x86/rdtsc_flags-no-syscallbuf 1 0.149144
x86/signal_xmm_state 1 6.5201
x86/signal_xmm_state-no-syscallbuf 1 6.15106
sigpwr 1 0.145139
sigpwr-no-syscallbuf 1 0.161406
sock_name_null 1 0.173122
sock_name_null-no-syscallbuf 1 0.134844
sysconf_conf 1 0.155498
sysconf_conf-no-syscallbuf 1 0.13819
chaos_oom 1 0.719051
chaos_oom-no-syscallbuf 1 0.486065
x86/diversion_rdtsc 1 0.97806
x86/diversion_rdtsc-no-syscallbuf 1 1.08858
gdb_qpasssignals 1 110.1108
gdb_qpasssignals-no-syscallbuf 1 97.4456
madvise_fracture_flags 1 57.982
madvise_fracture_flags-no-syscallbuf 1 88.7955
x86/morestack_unwind 1 1.05934
x86/morestack_unwind-no-syscallbuf 1 0.033799
nested_detach_kill_stuck 1 5.52231
nested_detach_kill_stuck-no-syscallbuf 1 5.47973
x86/rdtsc_loop 1 7.49252
x86/rdtsc_loop-no-syscallbuf 1 0.0176659
x86/rdtsc_loop2 1 3.23895
x86/rdtsc_loop2-no-syscallbuf 1 0.0587636
rseq_syscallbuf 1 1.68397
rseq_syscallbuf-no-syscallbuf 1 0.0232907
seccomp_open 1 0.256711
seccomp_open-no-syscallbuf 1 0.224981
x86/syscallbuf_branch_check 1 0.263251
x86/syscallbuf_branch_check-no-syscallbuf 1 0.0358348
x86/syscallbuf_rdtsc_page 1 0.224774
x86/syscallbuf_rdtsc_page-no-syscallbuf 1 0.0200236
term_rr_ok 1 0.239889
term_rr_ok-no-syscallbuf 1 0.411474
copy_all 1 1.14145
copy_all-no-syscallbuf 1 0.99862
tick0 1 0.810798
tick0-no-syscallbuf 1 0.781358
tick0_less 1 0.774784
tick0_less-no-syscallbuf 1 0.708288
watchpoint_unaligned2 1 1.04218
watchpoint_unaligned2-no-syscallbuf 1 1.04466
close_range-32 1 0.145352
close_range-32-no-syscallbuf 1 0.189966
dlchecksum-32 1 0.25934
dlchecksum-32-no-syscallbuf 1 0.256462
epoll_many-32 1 0.152067
epoll_many-32-no-syscallbuf 1 0.201357
epoll_pwait2-32 1 1.2001
epoll_pwait2-32-no-syscallbuf 1 1.14867
futex_invalid_op-32 1 0.20886
futex_invalid_op-32-no-syscallbuf 1 0.211214
futex_restart_race-32 1 0.25145
futex_restart_race-32-no-syscallbuf 1 0.209322
futex_restart_clone-32 1 0.186733
futex_restart_clone-32-no-syscallbuf 1 0.187653
ioctl_br-32 1 0.192089
ioctl_br-32-no-syscallbuf 1 0.168439
mremap_dontunmap-32 1 0.204069
mremap_dontunmap-32-no-syscallbuf 1 0.121815
ppoll_deliver-32 1 0.149065
ppoll_deliver-32-no-syscallbuf 1 0.16973
x86/rdtsc_flags-32 1 0.158374
x86/rdtsc_flags-32-no-syscallbuf 1 0.161395
x86/signal_xmm_state-32 1 5.82273
x86/signal_xmm_state-32-no-syscallbuf 1 5.93857
sigpwr-32 1 0.135917
sigpwr-32-no-syscallbuf 1 0.12206
sock_name_null-32 1 0.216395
sock_name_null-32-no-syscallbuf 1 0.18803
sysconf_conf-32 1 0.236007
sysconf_conf-32-no-syscallbuf 1 0.170377
chaos_oom-32 1 0.258801
chaos_oom-32-no-syscallbuf 1 0.218391
x86/diversion_rdtsc-32 1 1.00397
x86/diversion_rdtsc-32-no-syscallbuf 1 1.03605
gdb_qpasssignals-32 1 75.7295
gdb_qpasssignals-32-no-syscallbuf 1 95.712
madvise_fracture_flags-32 1 58.9242
madvise_fracture_flags-32-no-syscallbuf 1 86.3502
x86/morestack_unwind-32 1 1.2353
x86/morestack_unwind-32-no-syscallbuf 1 0.134301
nested_detach_kill_stuck-32 1 5.67408
nested_detach_kill_stuck-32-no-syscallbuf 1 5.53669
x86/rdtsc_loop-32 1 0.189036
x86/rdtsc_loop-32-no-syscallbuf 1 0.0190103
x86/rdtsc_loop2-32 1 0.119683
x86/rdtsc_loop2-32-no-syscallbuf 1 0.0781239
rseq_syscallbuf-32 1 1.66755
rseq_syscallbuf-32-no-syscallbuf 1 0.0220513
seccomp_open-32 1 0.240722
seccomp_open-32-no-syscallbuf 1 0.183111
x86/syscallbuf_branch_check-32 1 0.320975
x86/syscallbuf_branch_check-32-no-syscallbuf 1 0.0538966
x86/syscallbuf_rdtsc_page-32 1 0.187748
x86/syscallbuf_rdtsc_page-32-no-syscallbuf 1 0.0202657
term_rr_ok-32 1 0.251002
term_rr_ok-32-no-syscallbuf 1 0.222906
copy_all-32 1 1.00337
copy_all-32-no-syscallbuf 1 0.934465
tick0-32 1 0.61251
tick0-32-no-syscallbuf 1 0.634147
tick0_less-32 1 0.605018
tick0_less-32-no-syscallbuf 1 0.652338
watchpoint_unaligned2-32 1 0.860627
watchpoint_unaligned2-32-no-syscallbuf 1 0.854681
---
================================================
FILE: .buildkite/Manifest.toml
================================================
# This file is machine-generated - editing it directly is not advised
julia_version = "1.7.2"
manifest_format = "2.0"
[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
[[deps.Downloads]]
deps = ["ArgTools", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
[[deps.InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[deps.JLLWrappers]]
deps = ["Preferences"]
git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
version = "1.4.1"
[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
[[deps.LibGit2]]
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
[[deps.Libiconv_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778"
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
version = "1.16.1+1"
[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[deps.Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
[[deps.MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
[[deps.Preferences]]
deps = ["TOML"]
git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d"
uuid = "21216c6a-2e73-6563-6e65-726566657250"
version = "1.3.0"
[[deps.Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[deps.REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[deps.Random]]
deps = ["SHA", "Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
[[deps.Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
[[deps.StringEncodings]]
deps = ["Libiconv_jll"]
git-tree-sha1 = "50ccd5ddb00d19392577902f0079267a72c5ab04"
uuid = "69024149-9ee7-55f6-a4c4-859efe599b68"
version = "0.3.5"
[[deps.TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
[[deps.Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
[[deps.UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
[[deps.YAML]]
deps = ["Base64", "Dates", "Printf", "StringEncodings"]
git-tree-sha1 = "3c6e8b9f5cdaaa21340f841653942e1a6b6561e5"
uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
version = "0.4.7"
[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
[[deps.p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
================================================
FILE: .buildkite/Project.toml
================================================
[deps]
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
================================================
FILE: .buildkite/capture_tmpdir.jl
================================================
import Dates
import Pkg
import Tar
function my_exit(process::Base.Process)
wait(process)
@info(
"",
process.exitcode,
process.termsignal,
)
# Pass the exit code back up
if process.termsignal != 0
ccall(:raise, Cvoid, (Cint,), process.termsignal)
# If for some reason the signal did not cause an exit, we'll exit manually.
# We need to make sure that we exit with a non-zero exit code.
if process.exitcode != 0
exit(process.exitcode)
else
exit(1)
end
end
exit(process.exitcode)
end
function get_from_env(name::AbstractString)
value = ENV[name]
result = convert(String, strip(value))::String
return result
end
cleanup_string(str::AbstractString) = replace(str, r"[^A-Za-z0-9_]" => "_")
if Base.VERSION < v"1.6"
throw(ErrorException("The `$(basename(@__FILE__))` script requires Julia 1.6 or greater"))
end
if length(ARGS) < 1
throw(ErrorException("Usage: julia $(basename(@__FILE__)) [command...]"))
end
const build_number = get_from_env("BUILDKITE_BUILD_NUMBER") |> cleanup_string
const commit_full = get_from_env("BUILDKITE_COMMIT") |> cleanup_string
const job_name = get_from_env("BUILDKITE_STEP_KEY") |> cleanup_string
const buildkite_timeout_minutes_string = get_from_env("BUILDKITE_TIMEOUT")
const commit_short = first(commit_full, 10)
const buildkite_timeout_minutes = parse(Int, buildkite_timeout_minutes_string)::Int
const cleanup_minutes = 15
const ctest_timeout_minutes = buildkite_timeout_minutes - cleanup_minutes
if ctest_timeout_minutes < 1
msg = "ctest_timeout_minutes must be strictly positive"
@error(
msg,
ctest_timeout_minutes,
buildkite_timeout_minutes,
cleanup_minutes,
)
throw(ErrorException(msg))
end
@info(
"",
build_number,
job_name,
commit_full,
commit_short,
ctest_timeout_minutes,
buildkite_timeout_minutes,
cleanup_minutes,
)
const my_archives_dir = joinpath(pwd(), "my_archives_dir")
const my_temp_parent_dir = joinpath(pwd(), "my_temp_parent_dir")
mkpath(my_archives_dir)
mkpath(my_temp_parent_dir)
const TMPDIR = mktempdir(my_temp_parent_dir)
proc = nothing
mktempdir(my_temp_parent_dir) do dir
Pkg.activate(dir)
Pkg.add("Zstd_jll")
zstd_jll = Base.require(Base.PkgId(Base.UUID("3161d3a3-bdf6-5164-811a-617609db77b4"), "Zstd_jll"))
# zstdmt(func) = Base.invokelatest(zstd_jll.zstdmt, func; adjust_LIBPATH=false)
zstdmt(func) = Base.invokelatest(zstd_jll.zstdmt, func)
new_env = copy(ENV)
new_env["TMPDIR"] = TMPDIR
command = setenv(`$ARGS`, new_env)
global proc = run(command, (stdin, stdout, stderr); wait = false)
# Start asynchronous timer that will kill `ctest`
@async begin
sleep(ctest_timeout_minutes * 60)
# If we've exceeded the timeout and `ctest` is still running, kill it
if isopen(proc)
@error(
string(
"Process timed out ",
"(with a timeout of $(ctest_timeout_minutes) minutes). ",
"Killing with SIGTERM.",
)
)
kill(proc, Base.SIGTERM)
end
end
# Wait for `ctest` to finish, either through naturally finishing its run, or `SIGTERM`
wait(proc)
if proc.termsignal != 0
@info "Command signalled $(proc.termsignal)"
else
@info "Command returned $(proc.exitcode)"
end
date_str = Dates.format(Dates.now(), Dates.dateformat"yyyy_mm_dd_HH_MM_SS")
artifact_specifications = [
("TMPDIR", TMPDIR),
]
for (artifact_name, artifact_input_dir) in artifact_specifications
dst_file_name = string(
artifact_name,
"--build_$(build_number)",
"--$(job_name)",
"--commit_$(commit_short)",
"--$(date_str)",
".tar.zst",
)
dst_full_path = joinpath(my_archives_dir, dst_file_name)
run(`find . -type p`) # list the named pipes before we delete them
run(`find . -type p -delete`)
run(`find . -type s`) # list the sockets before we delete them
run(`find . -type s -delete`)
zstdmt() do zstdp
tarproc = open(`$(zstdp) -o $(dst_full_path)`, "w")
Tar.create(artifact_input_dir, tarproc)
close(tarproc.in)
end
buildkite_upload_cmd = `buildkite-agent artifact upload $(dst_file_name)`
if !success(proc)
run(setenv(buildkite_upload_cmd; dir = my_archives_dir))
end
end
end
my_exit(proc)
================================================
FILE: .buildkite/pipeline.yml
================================================
steps:
- label: "Launch jobs"
plugins:
- JuliaCI/julia#v1:
persist_depot_dirs: packages,artifacts,compiled
version: '1.7'
timeout_in_minutes: 15
agents:
queue: "juliaecosystem"
os: "linux"
commands: |
echo "--- Instantiate the environment"
julia --project=.buildkite -e 'import Pkg; Pkg.instantiate()'
echo "--- Precompile the environment"
julia --project=.buildkite -e 'import Pkg; Pkg.precompile()'
echo "--- Generate the Buildkite pipeline YAML files"
julia --project=.buildkite .buildkite/lib/generate.jl
echo "--- Upload the Buildkite pipeline YAML files"
julia --project=.buildkite .buildkite/lib/launch.jl
================================================
FILE: .clang-format
================================================
# BasedOnStyle: Mozilla
AccessModifierOffset: -2
ConstructorInitializerIndentWidth: 4
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakTemplateDeclarations: false
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BinPackParameters: true
ColumnLimit: 80
ConstructorInitializerAllOnOneLineOrOnePerLine: true
DerivePointerBinding: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: true
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCSpaceBeforeProtocolList: false
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 60
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerBindsToType: true
SpacesBeforeTrailingComments: 1
Cpp11BracedListStyle: false
Standard: Cpp11
IndentWidth: 2
TabWidth: 8
UseTab: Never
BreakBeforeBraces: Attach
IndentFunctionDeclarationAfterType: false
SpacesInParentheses: false
SpacesInAngles: false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpaceAfterControlStatementKeyword: true
SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
================================================
FILE: .github/workflows/android-build.yml
================================================
name: Android Build
on: [push, pull_request]
jobs:
android-build:
name: Android Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Dockerfile
shell: bash
run: docker build -t rr-android .android
- name: Create dist dir
shell: bash
run: mkdir -p obj/dist
- name: Build RR
shell: bash
run: |
docker run --rm \
-v $(pwd):/src/rr \
-v $(pwd)/obj/dist:/dist \
rr-android
- uses: actions/upload-artifact@v4
with:
name: rr
path: obj/dist/rr-*-Android-x86_64.tar.gz
================================================
FILE: .github/workflows/build-and-test-main.yml
================================================
name: Build and test
on: [push, pull_request]
jobs:
setup:
name: Setup runners
runs-on: ubuntu-latest
if: github.repository == 'rr-debugger/rr'
steps:
- id: generate
name: Generate runner label
run: |
RUNNER_LABEL=rr_runner_$(uuidgen|tr -d -)
echo "RUNNER_LABEL=$RUNNER_LABEL" >> "$GITHUB_OUTPUT"
- name: Start runners
run: |2-
curl --fail -s -X POST -H "Content-Type: application/json" --data "{\"operation\": \"create\", \"architectures\":[\"x86_64\", \"arm64\"], \"label\": \"${{ steps.generate.outputs.RUNNER_LABEL }}\"}" https://bqugdqmvcql6yvz4i362qohyea0namsk.lambda-url.us-east-2.on.aws
outputs:
RUNNER_LABEL: ${{ steps.generate.outputs.RUNNER_LABEL }}
x86-64:
uses: ./.github/workflows/build-and-test.yml
needs: setup
if: github.repository == 'rr-debugger/rr'
with:
label: ${{ needs.setup.outputs.RUNNER_LABEL }}
architecture: x86_64
arm64:
uses: ./.github/workflows/build-and-test.yml
needs: setup
if: github.repository == 'rr-debugger/rr'
with:
label: ${{ needs.setup.outputs.RUNNER_LABEL }}
architecture: arm64
stop-runners:
name: Stop runners
runs-on: ubuntu-latest
needs:
- setup
- x86-64
- arm64
if: ${{ always() && github.repository == 'rr-debugger/rr' }}
steps:
- name: "Stop runners"
run: |2-
curl --fail -s -X POST -H "Content-Type: application/json" --data "{\"operation\": \"destroy\", \"label\": \"${{ needs.setup.outputs.RUNNER_LABEL }}\"}" https://bqugdqmvcql6yvz4i362qohyea0namsk.lambda-url.us-east-2.on.aws
================================================
FILE: .github/workflows/build-and-test.yml
================================================
name: Build and test on runner
on:
workflow_call:
inputs:
label:
required: true
type: string
architecture:
required: true
type: string
jobs:
build-and-test:
name: On runner
runs-on:
- ${{ inputs.label }}
- arch_${{ inputs.architecture }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: ./scripts/github-actions-build.sh
- name: Test
id: test
run: ./scripts/github-actions-test.sh
- name: Upload failed-test artifacts
uses: actions/upload-artifact@v4
if: failure() && steps.test.outcome == 'failure'
with:
name: failed-tests-${{ inputs.architecture }}
path: failed-tests/*
compression-level: 0
================================================
FILE: .gitignore
================================================
*~
.cache
.cproject
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
CPackConfig.cmake
CPackSourceConfig.cmake
_CPack_Packages/
CTestTestfile.cmake
compile_commands.json
Debug
bin_dir
source_dir
dist/
install_manifest.txt
Makefile
Profile
obj/
.project
.vscode/
*.log
*.orig
*.rej
*.pyc
*.record
*.replay
.settings/
Testing/
.idea/
.*.swp
*generated
build/
bin/
lib/
share/
libbrotli*
extra_version_string.h
git_revision.h
third-party/zen-pmu-workaround/.*
third-party/zen-pmu-workaround/*.ko
third-party/zen-pmu-workaround/*.o
third-party/zen-pmu-workaround/*.mod
third-party/zen-pmu-workaround/*.mod.c
third-party/zen-pmu-workaround/Module.symvers
third-party/zen-pmu-workaround/modules.order
rr_trace.capnp.*
test32.c
src/preload/rr_page.ld
================================================
FILE: CMakeLists.txt
================================================
# *-* Mode: cmake; *-*
cmake_minimum_required(VERSION 3.12)
project(rr C CXX ASM)
# Require c++17 as minimum
if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
endif()
# Configure so that we use -std=c++17 (as previously done) not -std=gnu++17
if(NOT DEFINED CMAKE_CXX_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Because `CMAKE_CXX_STANDARD_REQUIRED ON` does not enforce this for us.
if(CMAKE_CXX_STANDARD LESS 17)
message(FATAL_ERROR "C++ standard too low: CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}. Minimum required is C++17.")
endif()
# "Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property."
# This avoids linking executables with -rdynamic. -rdynamic has been observed
# to cause rr_exec_stub to be linked with the dynamic linker with some
# version(s) of clang (but linked to an incorrect file name, causing
# exec of rr_exec_stub to fail).
if(POLICY CMP0065)
cmake_policy(SET CMP0065 NEW)
endif()
# We should switch to using FindPython3, but that requires CMake 3.12.
# We'll switch later.
if(POLICY CMP0148)
cmake_policy(SET CMP0148 OLD)
endif()
# On single configuration generators, make Debug the default configuration
if(NOT CMAKE_CONFIGURATION_TYPES)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Whether to build in `Debug` or `Release` mode." FORCE)
endif()
endif()
option(INSTALL_TESTSUITE "Install the testsuite")
option(force32bit "Force a 32-bit rr build, rather than both 64 and 32-bit. rr will only be able to record and replay 32-bit processes.")
option(disable32bit "On a 64-bit platform, avoid requiring a 32-bit cross-compilation toolchain by not building 32-bit components. rr will be able to record 32-bit processes but not replay them.")
option(staticlibs "Force usage of static linkage for non-standard libraries like capnproto")
option(bpf "Enable bpf acceleration")
option(asan "Build with address sanitizer enabled.")
option(intel_pt_decoding "Build with Intel PT decoding enabled.")
option(strip "Strip debug info from rr binary")
enable_testing()
set(BUILD_SHARED_LIBS ON)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib/rr)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(BUILD_TESTS ON CACHE BOOL "Build tests")
set(WILL_RUN_TESTS ${BUILD_TESTS} CACHE BOOL "Run tests")
# CAREFUL! "-" is an invalid character in RPM package names, while
# debian is happy with it. However, "_" is illegal in debs, while RPM
# is cool with it. Sigh.
set(rr_VERSION_MAJOR 5)
set(rr_VERSION_MINOR 9)
set(rr_VERSION_PATCH 0)
if(ANDROID)
find_package(CapnProto REQUIRED)
endif()
add_definitions(-DRR_VERSION="${rr_VERSION_MAJOR}.${rr_VERSION_MINOR}.${rr_VERSION_PATCH}")
execute_process(
COMMAND git rev-parse HEAD
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
configure_file(
"${PROJECT_SOURCE_DIR}/src/git_revision.h.in"
"${PROJECT_BINARY_DIR}/git_revision.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/src/extra_version_string.h.in"
"${PROJECT_BINARY_DIR}/extra_version_string.h"
)
set(FLAGS_COMMON "-D_FILE_OFFSET_BITS=64 -pthread")
set(supports32bit true)
set(x86ish false)
set(has_syscallbuf false)
if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
set(has_syscallbuf true)
set(supports32bit false)
set(FLAGS_COMMON "${FLAGS_COMMON} -march=armv8.3-a -moutline-atomics")
set(PRELOAD_LIBRARY_PAGE_SIZE 65536)
set(VDSO_NAME "LINUX_2.6.39")
set(VDSO_SYMBOLS "__kernel_clock_getres; __kernel_rt_sigreturn; __kernel_gettimeofday; __kernel_clock_gettime;")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386|i686|x86|x86_64)
set(x86ish true)
set(has_syscallbuf true)
set(FLAGS_COMMON "${FLAGS_COMMON} -msse2 -D__MMX__ -D__SSE__ -D__SSE2__")
set(PRELOAD_LIBRARY_PAGE_SIZE 4096)
set(VDSO_NAME "LINUX_2.6")
set(VDSO_SYMBOLS "gettimeofday; clock_gettime; __vdso_gettimeofday; __vdso_clock_getres; __vdso_time; __vdso_clock_gettime; __vdso_getcpu;")
else()
message(FATAL_ERROR "The architecture " ${CMAKE_SYSTEM_PROCESSOR} " is not yet supported")
endif()
configure_file(src/preload/rr_page.ld.in src/preload/rr_page.ld @ONLY)
include(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG("-fmacro-prefix-map=foo=bar" SUPPORTS_MACRO_PREFIX_MAP)
if (SUPPORTS_MACRO_PREFIX_MAP)
set(FLAGS_COMMON "${FLAGS_COMMON} -fmacro-prefix-map='${PROJECT_SOURCE_DIR}/'=")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS_COMMON} -Wstrict-prototypes -std=gnu11")
# Define __STDC_LIMIT_MACROS so |#include <stdint.h>| works as expected.
# Define __STDC_FORMAT_MACROS so |#include <inttypes.h>| works as expected.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_COMMON} -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS")
# We support three build types:
# DEBUG: suitable for debugging rr
# RELEASE: suitable for using rr in production (but keeps rr debuginfo)
# OTHER: suitable for using rr in production, but honouring distro/user opt/debug settings
# (which we assume are suitable for production use)
# Base settings for debug and release/unspecified builds.
# Use -Werror for debug builds because we assume a developer is building, not a user.
set(RR_FLAGS_DEBUG "-Wall -Wextra -DDEBUG -UNDEBUG")
set(RR_FLAGS_RELEASE "-Wall -Wextra -UDEBUG -DNDEBUG")
# The following settings are the defaults for the OTHER build type.
# Flags used to build the preload library. MUST have debuginfo enabled. SHOULD be optimized.
# LTO breaks us by moving code around.
set(PRELOAD_COMPILE_FLAGS "${RR_FLAGS_RELEASE} -fno-stack-protector -g3 -U_FORTIFY_SOURCE -fno-lto")
set(PRELOAD_LINK_FLAGS "-nostartfiles -fno-lto")
# Flags used to build Brotli. SHOULD be optimized. MUST NOT error on warnings.
set(BROTLI_COMPILE_FLAGS ${RR_FLAGS_RELEASE})
# Flags used to build tests. MUST have -DDEBUG and debuginfo enabled, MUST NOT be optimized.
set(RR_TEST_FLAGS "${RR_FLAGS_DEBUG} -g3 -O0")
# Flags used to build other files. Entirely build-type-dependent.
set(RR_FLAGS ${RR_FLAGS_RELEASE})
# Now override for build type.
string(TOLOWER ${CMAKE_BUILD_TYPE} LOWERCASE_CMAKE_BUILD_TYPE)
if(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "debug")
set(PRELOAD_COMPILE_FLAGS "${PRELOAD_COMPILE_FLAGS} -O2 -Werror")
set(BROTLI_COMPILE_FLAGS "${RR_FLAGS_RELEASE} -O2")
set(RR_TEST_FLAGS "${RR_TEST_FLAGS} -Werror")
set(RR_FLAGS "${RR_FLAGS_DEBUG} -g3 -Werror")
elseif(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "release")
# CMake itself will add optimization flags
set(RR_FLAGS "${RR_FLAGS_RELEASE} -g3 -flto")
endif()
set(LINKER_FLAGS "")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# Gcc generates bogus R_386_GOTOFF relocations in .debug_info which
# lld 9 rejects
set(LINKER_FLAGS "-fuse-ld=bfd")
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument")
endif()
# -fno-integrated-as tells Clang to use whatever "as" happens to be. For an
# Android build that will end up being whatever /usr/bin/as is, and whatever it
# is, it's the wrong assembler for Android, because Android only supports the
# Clang assembler.
if (CMAKE_ASM_COMPILER_ID STREQUAL "Clang" AND NOT ANDROID)
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -fno-integrated-as")
endif()
if(force32bit)
set(rr_32BIT true)
set(rr_64BIT false)
set(rr_MBITNESS_OPTION -m32)
else()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
if(disable32bit OR NOT supports32bit)
set(rr_32BIT false)
else()
set(rr_32BIT true)
endif()
set(rr_64BIT true)
else()
set(rr_32BIT true)
set(rr_64BIT false)
endif()
set(rr_MBITNESS_OPTION)
endif()
# Check that compiling 32-bit code on a 64-bit target works, if required.
if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" AND rr_32BIT)
# try_compile won't accept LINK_FLAGS, so do this manually.
file(WRITE "${CMAKE_BINARY_DIR}/test32.c" "int main() { return 0; }")
execute_process(COMMAND ${CMAKE_C_COMPILER} -o ${CMAKE_BINARY_DIR}/test32 ${CMAKE_BINARY_DIR}/test32.c -m32
RESULT_VARIABLE COMPILER_32BIT_RESULT)
if(NOT (COMPILER_32BIT_RESULT EQUAL 0))
message(FATAL_ERROR "Your toolchain doesn't support 32-bit cross-compilation. Install the required packages or pass -Ddisable32bit=ON to cmake.")
endif()
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${rr_MBITNESS_OPTION}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${rr_MBITNESS_OPTION}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${rr_MBITNESS_OPTION}")
# If SKIP_PKGCONFIG is set then ${PKG}_CFLAGS and ${PKG}_LDFLAGS must be
# provided as well.
if(NOT SKIP_PKGCONFIG)
find_package(PkgConfig REQUIRED)
# If we're cross-compiling a 32-bit rr build on a 64-bit host we need
# to ensure we're looking for the right libraries.
# This has been tested on Ubuntu and Fedora.
if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT rr_64BIT)
set(LIBDIR32_CANDIDATES
/usr/lib/i386-linux-gnu/pkgconfig/
/usr/lib/pkgconfig/
)
foreach(libdir ${LIBDIR32_CANDIDATES})
if(IS_DIRECTORY ${libdir})
set(ENV{PKG_CONFIG_LIBDIR} ${libdir})
break()
endif()
endforeach(libdir)
if(NOT DEFINED ENV{PKG_CONFIG_LIBDIR})
message(FATAL_ERROR "Couldn't find a suitable 32-bit pkgconfig lib dir. You probably need to install a 32-bit pkgconfig package (pkgconfig.i686 for Fedora or pkg-config:i386 for Ubuntu")
endif()
endif()
endif()
find_program(CAPNP capnp)
if(${CAPNP} STREQUAL "CAPNP-NOTFOUND")
message(FATAL_ERROR "Can't find 'capnp' command; install Capnproto packages? https://github.com/rr-debugger/rr/wiki/Building-And-Installing#tldr")
endif()
set(REQUIRED_LIBS
capnp
# zlib is required to handle ELF compression
zlib
)
if(NOT ANDROID)
set(REQUIRED_LIBS
${REQUIRED_LIBS}
# zstd is required to handle ELF compression, but isn't available on Android.
libzstd
)
set(ZSTD 1)
add_definitions(-DZSTD=1)
endif()
if(bpf)
add_definitions(-DBPF=1)
set(REQUIRED_LIBS
${REQUIRED_LIBS}
libbpf
)
endif(bpf)
foreach(required_lib ${REQUIRED_LIBS})
string(TOUPPER ${required_lib} PKG)
if(NOT SKIP_PKGCONFIG)
pkg_check_modules(${PKG} REQUIRED ${required_lib})
endif()
if(staticlibs)
string(REPLACE ";" " " ${PKG}_STATIC_CFLAGS "${${PKG}_STATIC_CFLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PKG}_STATIC_CFLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PKG}_STATIC_CFLAGS}")
else()
string(REPLACE ";" " " ${PKG}_CFLAGS "${${PKG}_CFLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PKG}_CFLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PKG}_CFLAGS}")
endif()
endforeach(required_lib)
# ==== brotli ====
set(BROTLI_FILES
third-party/brotli/common/constants.c
third-party/brotli/common/context.c
third-party/brotli/common/dictionary.c
third-party/brotli/common/platform.c
third-party/brotli/common/shared_dictionary_internal.h
third-party/brotli/common/shared_dictionary.c
third-party/brotli/common/transform.c
third-party/brotli/dec/bit_reader.c
third-party/brotli/dec/decode.c
third-party/brotli/dec/huffman.c
third-party/brotli/dec/state.c
third-party/brotli/enc/backward_references.c
third-party/brotli/enc/backward_references.h
third-party/brotli/enc/backward_references_hq.c
third-party/brotli/enc/backward_references_hq.h
third-party/brotli/enc/backward_references_inc.h
third-party/brotli/enc/bit_cost.c
third-party/brotli/enc/bit_cost.h
third-party/brotli/enc/bit_cost_inc.h
third-party/brotli/enc/block_encoder_inc.h
third-party/brotli/enc/block_splitter.c
third-party/brotli/enc/block_splitter.h
third-party/brotli/enc/block_splitter_inc.h
third-party/brotli/enc/brotli_bit_stream.c
third-party/brotli/enc/brotli_bit_stream.h
third-party/brotli/enc/command.c
third-party/brotli/enc/cluster.c
third-party/brotli/enc/cluster.h
third-party/brotli/enc/cluster_inc.h
third-party/brotli/enc/command.h
third-party/brotli/enc/compress_fragment.c
third-party/brotli/enc/compress_fragment.h
third-party/brotli/enc/compound_dictionary.c
third-party/brotli/enc/compound_dictionary.h
third-party/brotli/enc/compress_fragment_two_pass.c
third-party/brotli/enc/compress_fragment_two_pass.h
third-party/brotli/enc/dictionary_hash.c
third-party/brotli/enc/dictionary_hash.h
third-party/brotli/enc/encode.c
third-party/brotli/enc/encoder_dict.c
third-party/brotli/enc/entropy_encode.c
third-party/brotli/enc/entropy_encode.h
third-party/brotli/enc/entropy_encode_static.h
third-party/brotli/enc/fast_log.c
third-party/brotli/enc/fast_log.h
third-party/brotli/enc/find_match_length.h
third-party/brotli/enc/hash_forgetful_chain_inc.h
third-party/brotli/enc/hash.h
third-party/brotli/enc/hash_longest_match64_inc.h
third-party/brotli/enc/hash_longest_match_inc.h
third-party/brotli/enc/hash_longest_match_quickly_inc.h
third-party/brotli/enc/hash_to_binary_tree_inc.h
third-party/brotli/enc/histogram.c
third-party/brotli/enc/histogram.h
third-party/brotli/enc/histogram_inc.h
third-party/brotli/enc/literal_cost.c
third-party/brotli/enc/literal_cost.h
third-party/brotli/enc/memory.c
third-party/brotli/enc/memory.h
third-party/brotli/enc/metablock.c
third-party/brotli/enc/metablock.h
third-party/brotli/enc/metablock_inc.h
third-party/brotli/enc/prefix.h
third-party/brotli/enc/quality.h
third-party/brotli/enc/ringbuffer.h
third-party/brotli/enc/state.h
third-party/brotli/enc/static_dict.c
third-party/brotli/enc/static_dict.h
third-party/brotli/enc/static_dict_lut.h
third-party/brotli/enc/utf8_util.c
third-party/brotli/enc/utf8_util.h
third-party/brotli/enc/write_bits.h
third-party/brotli/include/brotli/decode.h
third-party/brotli/include/brotli/encode.h
third-party/brotli/include/brotli/port.h
third-party/brotli/include/brotli/shared_dictionary.h
)
add_library(brotli STATIC ${BROTLI_FILES})
set_source_files_properties(${BROTLI_FILES}
PROPERTIES COMPILE_FLAGS ${BROTLI_COMPILE_FLAGS})
# ==== brotli ====
find_library(LIBRT rt)
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF)
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS ON)
find_library(LIBRT_32 rt PATHS "/usr/lib32" "/usr/lib" NO_DEFAULT_PATH)
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS OFF)
find_path(SECCOMP NAMES "linux/seccomp.h")
if(NOT SECCOMP)
message(FATAL_ERROR "Couldn't find linux/seccomp.h. You may need to upgrade your kernel.")
endif()
find_path(PROC_SERVICE_H NAMES "proc_service.h")
if(PROC_SERVICE_H)
add_definitions(-DPROC_SERVICE_H=1)
else()
message(AUTHOR_WARNING "proc_service.h not present. Support for libthread_db.so is disabled.")
endif()
# Test only includes
find_path(MQUEUE_H NAMES "mqueue.h")
if(MQUEUE_H)
add_definitions(-DMQUEUE_H=1)
endif()
find_path(FANOTIFY_H NAMES "sys/fanotify.h")
if(FANOTIFY_H)
add_definitions(-DFANOTIFY_H=1)
endif()
include(CheckSymbolExists)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
check_symbol_exists(LAV_CURRENT "link.h" RTLD_AUDIT)
if(NOT RTLD_AUDIT)
message(AUTHOR_WARNING "Couldn't find rtld-audit support. librraudit skipped.")
endif()
list(REMOVE_ITEM CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
check_symbol_exists(backtrace "execinfo.h" EXECINFO_BACKTRACE)
if(EXECINFO_BACKTRACE)
add_definitions(-DEXECINFO_BACKTRACE)
else()
message(AUTHOR_WARNING "backtrace(3) not present in execinfo.h. Automatic backtraces for failures in rr are disabled.")
endif()
include(CheckTypeSize)
set(SAVE_CMAKE_EXTRA_INCLUDE_FILES "${CMAKE_EXTRA_INCLUDE_FILES}")
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "termios.h")
check_type_size("struct termios2" SIZEOF_TERMIOS2)
if(HAVE_SIZEOF_TERMIOS2)
add_definitions(-DHAVE_TERMIOS2)
endif()
set(CMAKE_EXTRA_INCLUDE_FILES "${SAVE_CMAKE_EXTRA_INCLUDE_FILES}")
# Test only symbols
check_symbol_exists(pthread_mutexattr_setrobust "pthread.h" HAVE_ROBUST_MUTEX)
set(Python_ADDITIONAL_VERSIONS 3 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
find_package(PythonInterp 3 REQUIRED)
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" "# nothing"
RESULT_VARIABLE python_status)
if(python_status)
message(FATAL_ERROR "Couldn't run python interpreter ${PYTHON_EXECUTABLE}.")
endif()
# Check for required Python modules
if(WILL_RUN_TESTS)
if(NOT BUILD_TESTS)
message(FATAL_ERROR "Running tests requires building them")
endif()
set(REQUIRED_PYTHON_MODULES
pexpect
)
else()
set(REQUIRED_PYTHON_MODULES)
endif()
foreach(py_module ${REQUIRED_PYTHON_MODULES})
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c"
"import ${py_module}"
RESULT_VARIABLE module_status)
if(module_status)
message(FATAL_ERROR "Couldn't find required Python module ${py_module}.")
endif()
endforeach(py_module)
if(WILL_RUN_TESTS)
# Check for gdb and lldb
execute_process(COMMAND "gdb" "--version" RESULT_VARIABLE module_status OUTPUT_QUIET)
if(module_status)
message(FATAL_ERROR "Couldn't find gdb.")
endif()
execute_process(COMMAND "lldb" "--version" RESULT_VARIABLE module_status OUTPUT_QUIET)
if(module_status)
message(FATAL_ERROR "Couldn't find lldb.")
endif()
endif()
include_directories("${PROJECT_SOURCE_DIR}/include")
include_directories("${PROJECT_SOURCE_DIR}/third-party/proc-service")
include_directories("${PROJECT_SOURCE_DIR}/third-party/brotli/include")
# We need to know where our generated files are.
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
set(RR_PAGE_FILES
rr_page.S
)
set(RR_PAGE_SOURCE_FILES
${RR_PAGE_FILES}
rr_page_instructions.S
rr_vdso.S
)
add_library(rrpage)
foreach(file ${RR_PAGE_FILES})
target_sources(rrpage PUBLIC "${PROJECT_SOURCE_DIR}/src/preload/${file}")
set_source_files_properties("${PROJECT_SOURCE_DIR}/src/preload/${file}"
PROPERTIES COMPILE_FLAGS ${PRELOAD_COMPILE_FLAGS})
endforeach(file)
# Since librrpage replaces the kernel vDSO for processes exec'd by rr,
# we want it to have the same SONAME as the real vDSO to trick things
# like AddressSanitizer into recognising it as the vDSO.
set_target_properties(rrpage PROPERTIES NO_SONAME ON)
set_target_properties(rrpage PROPERTIES LINK_FLAGS "-Wl,-T -Wl,'${PROJECT_BINARY_DIR}/src/preload/rr_page.ld' -Wl,--hash-style=both -nostdlib ${PRELOAD_LINK_FLAGS} -Wl,-z,max-page-size=${PRELOAD_LIBRARY_PAGE_SIZE} -Wl,-soname,linux-vdso.so.1 ${LINKER_FLAGS}")
set_target_properties(rrpage PROPERTIES LINK_DEPENDS "${PROJECT_BINARY_DIR}/src/preload/rr_page.ld")
# CMake seems to have trouble generating the link line without this
set_target_properties(rrpage PROPERTIES LINKER_LANGUAGE C)
add_custom_command(TARGET rrpage POST_BUILD
COMMAND "${PROJECT_SOURCE_DIR}/src/preload/tweak_librrpage.py" $<TARGET_FILE:rrpage> ${PRELOAD_LIBRARY_PAGE_SIZE})
# Order matters here! syscall_hook.S must be immediately before syscallbuf.c,
# raw_syscall.S must be before overrides.c, which must be last.
if(has_syscallbuf)
set(PRELOAD_FILES
syscall_hook.S
syscallbuf.c
raw_syscall.S
overrides.c
)
else()
set(PRELOAD_FILES
overrides.c
)
endif()
set(PRELOAD_SOURCE_FILES
${PRELOAD_FILES}
preload_interface.h
rrcalls.h
syscallbuf.h
)
add_library(rrpreload)
foreach(file ${PRELOAD_FILES})
target_sources(rrpreload PUBLIC "${PROJECT_SOURCE_DIR}/src/preload/${file}")
set_source_files_properties("${PROJECT_SOURCE_DIR}/src/preload/${file}"
PROPERTIES COMPILE_FLAGS ${PRELOAD_COMPILE_FLAGS})
endforeach(file)
set_target_properties(rrpreload PROPERTIES LINK_FLAGS "${PRELOAD_LINK_FLAGS} ${LINKER_FLAGS}")
set_target_properties(rrpreload PROPERTIES INSTALL_RPATH "\$ORIGIN")
if(RTLD_AUDIT)
set(AUDIT_FILES
rtld-audit.c
stap-note-iter.c
../preload/raw_syscall.S
)
set(AUDIT_SOURCE_FILES
${AUDIT_FILES}
rtld-audit.h
stap-note-iter.h
../preload/preload_interface.h
../preload/rrcalls.h
)
add_library(rraudit)
foreach(file ${AUDIT_FILES})
target_sources(rraudit PUBLIC "${PROJECT_SOURCE_DIR}/src/audit/${file}")
set_source_files_properties("${PROJECT_SOURCE_DIR}/src/audit/${file}"
PROPERTIES COMPILE_FLAGS ${PRELOAD_COMPILE_FLAGS})
endforeach(file)
set_target_properties(rraudit PROPERTIES LINK_FLAGS "${PRELOAD_LINK_FLAGS} -ldl ${LINKER_FLAGS}")
endif()
# Ensure that CMake knows about our generated files.
#
# Alphabetical, please.
set(GENERATED_FILES
AssemblyTemplates.generated
CheckSyscallNumbers.generated
SyscallEnumsX64.generated
SyscallEnumsX86.generated
SyscallEnumsGeneric.generated
SyscallEnumsForTestsX64.generated
SyscallEnumsForTestsX86.generated
SyscallEnumsForTestsGeneric.generated
SyscallHelperFunctions.generated
SyscallnameArch.generated
SyscallRecordCase.generated
)
foreach(generated_file ${GENERATED_FILES})
set_source_files_properties(${generated_file}
PROPERTIES GENERATED true HEADER_FILE_ONLY true)
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${generated_file}"
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/src/generate_syscalls.py"
"${CMAKE_CURRENT_BINARY_DIR}/${generated_file}"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/generate_syscalls.py"
"${CMAKE_CURRENT_SOURCE_DIR}/src/syscalls.py"
"${CMAKE_CURRENT_SOURCE_DIR}/src/assembly_templates.py")
endforeach(generated_file)
add_custom_target(Generated DEPENDS ${GENERATED_FILES})
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/rr_trace.capnp.c++"
"${CMAKE_CURRENT_BINARY_DIR}/rr_trace.capnp.h"
COMMAND capnp compile
"--src-prefix=${CMAKE_CURRENT_SOURCE_DIR}/src"
"-oc++:${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/src/rr_trace.capnp"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/rr_trace.capnp")
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/rr_trace.capnp.c++"
PROPERTIES GENERATED true)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/rr_trace.capnp.h"
PROPERTIES GENERATED true HEADER_FILE_ONLY true)
if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
set(BLAKE_ARCH_DIR third-party/blake2/neon)
else()
set(BLAKE_ARCH_DIR third-party/blake2/sse)
endif()
set(RR_SOURCES
src/AddressSpace.cc
src/AutoRemoteSyscalls.cc
src/BuildidCommand.cc
src/Command.cc
src/CompressedReader.cc
src/CompressedWriter.cc
src/ContextSwitchEvent.cc
src/CPUFeaturesCommand.cc
src/CPUIDBugDetector.cc
src/CPUs.cc
src/DiversionSession.cc
src/DumpCommand.cc
src/Dwarf.cc
src/ElfReader.cc
src/EmuFs.cc
src/Event.cc
src/ExtraRegisters.cc
src/fast_forward.cc
src/FdTable.cc
src/FileMonitor.cc
src/FileNameCommand.cc
src/Flags.cc
src/ftrace.cc
src/DebuggerExtensionCommand.cc
src/DebuggerExtensionCommandHandler.cc
src/GdbServerConnection.cc
src/GdbServerExpression.cc
src/GdbInitCommand.cc
src/GdbServer.cc
src/HasTaskSet.cc
src/HelpCommand.cc
src/ExportImportCheckpoints.cc
src/kernel_abi.cc
src/kernel_metadata.cc
src/launch_debugger.cc
src/log.cc
src/LldbInitCommand.cc
src/LsCommand.cc
src/main.cc
src/MagicSaveDataMonitor.cc
src/MmappedFileMonitor.cc
src/MonitoredSharedMemory.cc
src/Monkeypatcher.cc
src/MvCommand.cc
src/PackCommand.cc
src/PerfCounters.cc
src/PerfCounterBuffers.cc
src/PidFdMonitor.cc
src/processor_trace_check.cc
src/ProcFdDirMonitor.cc
src/ProcMemMonitor.cc
src/ProcStatMonitor.cc
src/PsCommand.cc
src/RecordCommand.cc
src/RecordSession.cc
src/record_signal.cc
src/record_syscall.cc
src/RecordTask.cc
src/Registers.cc
src/remote_code_ptr.cc
src/ReplayCommand.cc
src/ReplaySession.cc
src/replay_syscall.cc
src/ReplayTask.cc
src/ReplayTimeline.cc
src/RerunCommand.cc
src/ReturnAddressList.cc
src/RmCommand.cc
src/Scheduler.cc
src/SeccompFilterRewriter.cc
src/Session.cc
src/SourcesCommand.cc
src/StdioMonitor.cc
src/SysCpuMonitor.cc
src/TargetDescription.cc
src/Task.cc
src/ThreadGroup.cc
src/TraceeAttentionSet.cc
src/TraceField.cc
src/TraceFrame.cc
src/TraceInfoCommand.cc
src/TraceStream.cc
src/VirtualPerfCounterMonitor.cc
src/util.cc
src/WaitManager.cc
src/WaitStatus.cc
${CMAKE_CURRENT_BINARY_DIR}/rr_trace.capnp.c++
${BLAKE_ARCH_DIR}/blake2b.c
)
if(PROC_SERVICE_H)
set(RR_SOURCES ${RR_SOURCES} src/ThreadDb.cc)
endif()
if (x86ish)
set(RR_SOURCES ${RR_SOURCES} src/test/x86/cpuid_loop.S)
endif()
if (asan)
set(ASAN_FLAGS "-fsanitize=address -fno-omit-frame-pointer")
# Without no-omit-frame-pointer incomplete backtraces get stored.
set(RR_FLAGS "${ASAN_FLAGS} ${RR_FLAGS}")
endif()
set_source_files_properties(${RR_SOURCES}
PROPERTIES COMPILE_FLAGS ${RR_FLAGS})
function(post_build_executable target)
# grsecurity needs these. But if we add them ourselves, they may conflict
# with other flags added in other ways, and they all have to match :-(. So
# don't do this until a better solution presents itself
# add_custom_command(TARGET ${target}
# POST_BUILD
# COMMAND setfattr ARGS -n user.pax.flags -v m $<TARGET_FILE:${target}>)
endfunction(post_build_executable)
if(UNIX)
include(GNUInstallDirs)
else()
set(CMAKE_INSTALL_LIBDIR "lib")
set(CMAKE_INSTALL_BINDIR "bin")
set(CMAKE_INSTALL_DATADIR "share")
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATADIR}/doc")
set(CMAKE_INSTALL_INCLUDEDIR "include")
endif()
if (intel_pt_decoding)
set(RR_SOURCES ${RR_SOURCES} src/ProcessorTraceDecoder.cc)
add_definitions(-DINTEL_PT_DECODING=1)
endif()
add_executable(rr ${RR_SOURCES})
target_compile_definitions(rr PRIVATE
"FULL_LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\"")
set_target_properties(rr PROPERTIES ENABLE_EXPORTS true)
post_build_executable(rr)
set(RR_BIN rr)
add_dependencies(rr Generated)
if(bpf)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/share/rr/async_event_filter.o
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/bpf/async_event_filter.c
COMMAND clang -g -target bpf -Wall -O2 -c ${CMAKE_CURRENT_SOURCE_DIR}/src/bpf/async_event_filter.c -o ${CMAKE_CURRENT_BINARY_DIR}/share/rr/async_event_filter.o)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/rr/async_event_filter.o
DESTINATION ${CMAKE_INSTALL_DATADIR}/rr)
add_custom_target(BPF DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/share/rr/async_event_filter.o)
add_dependencies(rr BPF)
endif()
set(RR_MAIN_LINKER_FLAGS ${LINKER_FLAGS})
if(strip)
set(RR_MAIN_LINKER_FLAGS "-s ${RR_MAIN_LINKER_FLAGS}")
endif()
if (asan)
set(RR_MAIN_LINKER_FLAGS " ${ASAN_FLAGS} ${RR_MAIN_LINKER_FLAGS}")
endif()
# Add -flto option to linking step if release
if(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "release")
CHECK_C_COMPILER_FLAG("-flto=auto" SUPPORTS_LTO_AUTO)
if(SUPPORTS_LTO_AUTO)
set(RR_MAIN_LINKER_FLAGS "${RR_MAIN_LINKER_FLAGS} -flto=auto")
else()
set(RR_MAIN_LINKER_FLAGS "${RR_MAIN_LINKER_FLAGS} -flto")
endif()
endif()
if(intel_pt_decoding)
find_library(LIBIPT ipt)
target_link_libraries(rr ${LIBIPT})
endif()
if(LIBRT)
target_link_libraries(rr ${LIBRT})
endif()
target_link_libraries(rr
${CMAKE_DL_LIBS}
${ZLIB_LDFLAGS}
${LIBBPF_LDFLAGS}
brotli
)
if(ZSTD)
target_link_libraries(rr ${LIBZSTD_LDFLAGS})
endif()
if(staticlibs)
# Urgh ... this might not work for everyone, but there doesn't seem to be
# a way to persuade pkg-config/pkg_check_modules to produce the right flags
target_link_libraries(rr -L/home/roc/lib -l:libcapnp.a -l:libkj.a)
# Note that this works for both clang++ and g++
set(RR_MAIN_LINKER_FLAGS "-static-libstdc++ ${RR_MAIN_LINKER_FLAGS}")
elseif(ANDROID)
target_link_libraries(rr CapnProto::capnp)
else()
target_link_libraries(rr ${CAPNP_LDFLAGS})
endif()
set_target_properties(rr PROPERTIES LINK_FLAGS "${RR_MAIN_LINKER_FLAGS}")
target_link_libraries(rrpreload
${CMAKE_DL_LIBS}
)
add_executable(rr_exec_stub src/exec_stub.c)
post_build_executable(rr_exec_stub)
set_target_properties(rr_exec_stub
PROPERTIES LINK_FLAGS "-static -nostartfiles -nodefaultlibs ${LINKER_FLAGS}")
set_source_files_properties(src/exec_stub.c
COMPILE_FLAGS "-fno-stack-protector")
set(RR_GDB_RESOURCES
32bit-avx.xml
32bit-avx512.xml
32bit-core.xml
32bit-linux.xml
32bit-sse.xml
32bit-pkeys.xml
64bit-avx.xml
64bit-avx512.xml
64bit-core.xml
64bit-linux.xml
64bit-seg.xml
64bit-sse.xml
64bit-pkeys.xml
aarch64-core.xml
aarch64-fpu.xml
aarch64-pauth.xml
)
foreach(file ${RR_GDB_RESOURCES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/third-party/gdb/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/share/rr/${file}"
COPYONLY)
install(FILES third-party/gdb/${file}
DESTINATION ${CMAKE_INSTALL_DATADIR}/rr)
endforeach(file)
foreach(file ${PRELOAD_SOURCE_FILES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/preload/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/share/rr/src/preload/${file}"
COPYONLY)
install(FILES src/preload/${file}
DESTINATION ${CMAKE_INSTALL_DATADIR}/rr/src/preload)
endforeach(file)
foreach(file ${RR_PAGE_SOURCE_FILES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/preload/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/share/rr/src/preload/${file}"
COPYONLY)
install(FILES src/preload/${file}
DESTINATION ${CMAKE_INSTALL_DATADIR}/rr/src/preload)
endforeach(file)
configure_file("${CMAKE_CURRENT_BINARY_DIR}/src/preload/rr_page.ld"
"${CMAKE_CURRENT_BINARY_DIR}/share/rr/src/preload/rr_page.ld"
COPYONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/src/preload/rr_page.ld"
DESTINATION ${CMAKE_INSTALL_DATADIR}/rr/src/preload)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/rr-collect-symbols.py"
"${CMAKE_CURRENT_BINARY_DIR}/bin/rr-collect-symbols.py"
COPYONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/rr-gdb-script-host.py"
"${CMAKE_CURRENT_BINARY_DIR}/bin/rr-gdb-script-host.py"
COPYONLY)
install(PROGRAMS scripts/signal-rr-recording.sh
scripts/rr-collect-symbols.py
DESTINATION ${CMAKE_INSTALL_BINDIR})
install(PROGRAMS scripts/rr_completion
DESTINATION ${CMAKE_INSTALL_DATADIR}/bash-completion/completions RENAME rr)
# Note that this works fine when installing to /usr/local, but zsh by default doesn't autoload *any* completions in HOME,
# so people will still have to manually set `FPATH=~/.local/share/zsh/site-functions`.
install(PROGRAMS scripts/rr_completion.zsh
DESTINATION ${CMAKE_INSTALL_DATADIR}/zsh/site-functions RENAME _rr)
set(RR_INSTALL_LIBS rrpreload rrpage rr_exec_stub)
if(RTLD_AUDIT)
set(RR_INSTALL_LIBS ${RR_INSTALL_LIBS} rraudit)
endif()
install(TARGETS ${RR_BIN} ${RR_INSTALL_LIBS}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr)
if(EXTRA_EXTERNAL_SOLIBS)
install(PROGRAMS ${EXTRA_EXTERNAL_SOLIBS}
DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
# Build 32-bit librrpreload and librraudit on 64-bit builds.
# We copy the source files into '32' subdirectories in the output
# directory, so we can set different compile options on them.
# This sucks but I can't find a better way to get CMake to build
# the same source file in two different ways.
if(rr_32BIT AND rr_64BIT)
set(RR_INSTALL_LIBS_32 rrpreload_32 rrpage_32 rr_exec_stub_32)
add_library(rrpage_32)
foreach(file ${RR_PAGE_SOURCE_FILES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/preload/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}"
COPYONLY)
endforeach(file)
foreach(file ${RR_PAGE_FILES})
target_sources(rrpage_32 PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}")
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}"
PROPERTIES COMPILE_FLAGS "-m32 ${PRELOAD_COMPILE_FLAGS}")
endforeach(file)
set_target_properties(rrpage_32 PROPERTIES NO_SONAME ON)
set_target_properties(rrpage_32 PROPERTIES LINK_FLAGS "-m32 -Wl,-T -Wl,'${PROJECT_BINARY_DIR}/src/preload/rr_page.ld' -Wl,--hash-style=both -nostdlib ${PRELOAD_LINK_FLAGS} -Wl,-soname,linux-vdso.so.1 ${LINKER_FLAGS}")
set_target_properties(rrpage_32 PROPERTIES LINK_DEPENDS "${PROJECT_BINARY_DIR}/src/preload/rr_page.ld")
set_target_properties(rrpage_32 PROPERTIES LINKER_LANGUAGE C)
add_custom_command(TARGET rrpage_32 POST_BUILD
COMMAND "${PROJECT_SOURCE_DIR}/src/preload/tweak_librrpage.py" $<TARGET_FILE:rrpage_32> ${PRELOAD_LIBRARY_PAGE_SIZE})
add_library(rrpreload_32)
foreach(file ${PRELOAD_SOURCE_FILES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/preload/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}"
COPYONLY)
endforeach(file)
foreach(file ${PRELOAD_FILES})
target_sources(rrpreload_32 PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}")
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/preload/${file}"
PROPERTIES COMPILE_FLAGS "-m32 ${PRELOAD_COMPILE_FLAGS}")
endforeach(file)
set_target_properties(rrpreload_32 PROPERTIES LINK_FLAGS "-m32 ${PRELOAD_LINK_FLAGS} ${LINKER_FLAGS}")
set_target_properties(rrpreload_32 PROPERTIES INSTALL_RPATH "\$ORIGIN")
target_link_libraries(rrpreload_32
${CMAKE_DL_LIBS}
)
if(RTLD_AUDIT)
add_library(rraudit_32)
foreach(file ${AUDIT_SOURCE_FILES})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/audit/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/32/audit/${file}"
COPYONLY)
endforeach(file)
foreach(file ${AUDIT_FILES})
target_sources(rraudit_32 PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/32/audit/${file}")
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/audit/${file}"
PROPERTIES COMPILE_FLAGS "-m32 ${PRELOAD_COMPILE_FLAGS}")
endforeach(file)
set_target_properties(rraudit_32 PROPERTIES LINK_FLAGS "-m32 -nostartfiles ${LINKER_FLAGS}")
target_link_libraries(rraudit_32
${CMAKE_DL_LIBS}
)
set(RR_INSTALL_LIBS_32 ${RR_INSTALL_LIBS_32} rraudit_32)
endif()
foreach(file exec_stub.c)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/32/${file}"
COPYONLY)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/${file}"
PROPERTIES COMPILE_FLAGS "-m32 -fno-stack-protector")
endforeach(file)
add_executable(rr_exec_stub_32 32/exec_stub.c)
post_build_executable(rr_exec_stub_32)
set_target_properties(rr_exec_stub_32
PROPERTIES LINK_FLAGS "-static -nostartfiles -nodefaultlibs -m32 ${LINKER_FLAGS}")
install(TARGETS ${RR_INSTALL_LIBS_32}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr)
endif()
##--------------------------------------------------
## Testing
# A "basic test" consists of a foo.c source file. All basic tests use the
# same basic_test.run driver script. The test name is passed as an additional
# parameter to the driver script. This script just does
# "compare_test EXIT-SUCCESS", i.e. records and replays the program and verifies
# that the output of both runs is identical and contains EXIT-SUCCESS.
#
# NB: you must update this variable when adding a new test source
# file. The list is not generated automatically.
#
# Alphabetical, please.
set(BASIC_TESTS
64bit_child
_llseek
abort
accept
acct
adjtimex
aio
alarm
alarm2
alsa_ioctl
x86/arch_prctl_x86
x86/arch_prctl_xstate
async_segv_ignored
at_threadexit
bad_ip
bad_syscall
barrier
big_buffers
big_select
block
block_open
bpf
bpf_map
bpf_prog_map
bpf_query
brk
brk2
arm/brk_nonzero
capget
chew_cpu
x86/chew_cpu_cpuid
chmod
chown
clock
clock_adjtime
clock_nanosleep
clock_time64
clone
clone_bad_stack
clone_bad_tls
clone_cleartid_coredump
clone_fail
clone_immediate_exit
clone_newflags
clone_parent
clone_untraced
clone_vfork_pidfd
cloned_sigmask
close_range
constructor
copy_file_range
x86/cpuid_same_state
creat_address_not_truncated
x86/cross_arch
cwd_inaccessible
daemon
x86/deferred_patch
desched_blocking_poll
desched_sigkill
detach_huge_mmap
detach_state
detach_threads
detach_sigkill
detach_sigkill_exit
deterministic_sigsys
dev_zero
direct
dlchecksum
dup
doublesegv
epoll_create
epoll_create1
epoll_edge
epoll_many
epoll_pwait_eintr_sigmask
epoll_pwait2
eventfd
exec_flags
exec_no_env
exec_self
exec_from_main_thread
exec_from_other_thread
exec_stopsig
execveat
exit_with_syscallbuf_signal
fadvise
fatal_init_signal
fatal_sigsegv_thread
x86/fault_in_code_page
fcntl_dupfd
fcntl_lease
fcntl_misc
fcntl_notify
fcntl_owner_ex
fcntl_rw_hints
fcntl_seals
fcntl_sig
fd_cleanup
fd_tracking_across_threads
fds_clean
fexecve
fexecve_memfd
flock
flock_ofd
flock2
fork_brk
fork_child_crash
fork_many
fsmount
fstatat
futex_exit_race
futex_exit_race_sigsegv
futex_invalid_op
futex_pi
futex_priorities
futex_requeue
futex_restart_race
futex_restart_clone
gcrypt_rdrand
getcpu
getgroups
getpwnam
getrandom
setitimer
getsid
gettimeofday
grandchild_threads
grandchild_threads_main_running
grandchild_threads_thread_running
grandchild_threads_parent_alive
group_stop_thundering_herd
x86/hle
x86/hlt
inotify
int3
intr_futex_wait_restart
intr_poll
intr_ppoll
intr_pselect
intr_read_no_restart
intr_read_restart
intr_sleep
intr_sleep_no_restart
invalid_exec
invalid_fcntl
invalid_ioctl
io
io_uring
ioctl
ioctl_blk
ioctl_br
ioctl_fb
ioctl_fs
ioctl_pty
ioctl_sg
ioctl_tty
ioctl_ttyS
ioctl_vt
ioprio
x86/ioperm
x86/iopl
join_threads
joystick
kcmp
keyctl
kill_newborn
kill_ptracee
landlock
x86/la57
large_hole
large_write_deadlock
legacy_ugid
x86/lsl
madvise
madvise_dontneed_private
madvise_free
madvise_misc
madvise_remove
madvise_wipeonfork
map_fixed
map_shared_syscall
membarrier
memfd_create
memfd_create_efault
memfd_create_shared
memfd_create_shared_huge
memfd_create_dotnet_huge_mapping
mincore
mknod
mlock
mlock_madvise
mmap_adjacent_to_rr_usage
mmap_huge
mmap_private
mmap_private_grow_under_map
mmap_recycle
mmap_ro
mmap_self_maps_shared
mmap_shared
mmap_shared_dev_zero
mmap_shared_grow
mmap_shared_grow_under_map
mmap_shared_multiple
mmap_shared_subpage
mmap_shared_write
mmap_shared_write_fork
mmap_short_file
mmap_write_complex
mmap_zero_size_fd
x86/modify_ldt
mount_ns_exec
mount_ns_exec2
mount_ns_execveat
mprotect
mprotect_heterogenous
mprotect_none
mprotect_stack
mremap
mremap_after_coalesce
mremap_dontunmap
mremap_grow
mremap_grow_shared
mremap_non_page_size
mremap_overwrite
mremap_private_grow_under_map
mremap_shrink
msg
msg_trunc
msync
mtio
multiple_pending_signals
multiple_pending_signals_sequential
munmap_segv
munmap_discontinuous
nanosleep
netfilter
netfilter_ipv6
netlink_mmap_disable
no_mask_timeslice
nscd
numa
x86/old_fork
openat2
openat_null
open_tree
orphan_process
packet_mmap_disable
x86/patch_syscall_restart
pause
perf_event
perf_event_ioctl
perf_event_mmap
personality
pid_ns_kill_child
pid_ns_kill_child_threads
pid_ns_kill_child_zombie
pid_ns_kill_threads
pid_ns_kill_threads_exit_wait
pid_ns_reap
pid_ns_segv
pid_ns_shutdown
pidfd
pidfd_getfd
x86/pkeys
poll_sig_race
ppoll
ppoll_deliver
prctl
prctl_anon_vma_name
prctl_auxv
prctl_caps
prctl_deathsig
prctl_mdwe
prctl_name
prctl_short_name
prctl_speculation_ctrl
privileged_net_ioctl
proc_fds
proc_mem
protect_rr_fds
prw
pthread_condvar_locking
pthread_mutex_timedlock
pthread_pi_mutex
pthread_rwlocks
x86/ptrace
ptrace_attach_null_status
ptrace_attach_running
ptrace_attach_sleeping
ptrace_attach_stopped
ptrace_attach_syscall
ptrace_attach_thread_running
ptrace_breakpoint
ptrace_change_patched_syscall
x86/ptrace_debug_regs
ptrace_exec
x86/ptrace_exec32
ptrace_group_stop
ptrace_kill_grandtracee
x86/ptrace_tls
ptrace_seize
ptrace_sigchld
ptrace_sigchld_blocked
ptrace_signals
ptrace_singlestep
ptrace_syscall
ptrace_syscall_clone_untraced
x86/ptrace_sysemu
ptrace_sysemu_syscall
ptrace_trace_clone
ptrace_trace_exit
ptrace_traceme
ptrace_traceme_thread
ptrace_waiter_thread
ptracer_death
ptracer_death_multithread
ptracer_death_multithread_peer
# pivot_root ... disabled because it fails when run as root and does nothing otherwise
quotactl
x86/rdtsc
x86/rdtsc_flags
read_nothing
readdir
read_large
read_oversize
readlink
readlinkat
readv
record_replay_subject
recvfrom
redzone_integrity
rename
rlimit
rseq_cpu_id_reset
rusage
samask
save_data_fd
sched_attr
sched_setaffinity
sched_setparam
sched_yield
sched_yield_to_lower_priority
scm_rights
scratch_read
seccomp
seccomp_cloning
seccomp_clone_fail
seccomp_desched
seccomp_kill_exit
seccomp_madvise
seccomp_null
seccomp_sigsys_args
seccomp_sigsys_sigtrap
seccomp_sigsys_syscallbuf
seccomp_tsync
seccomp_veto_exec
self_shebang
self_sigint
sem
send_block
sendfile
set_ptracer
x86/set_thread_area
set_tid_address
setgid
setgroups
setsid
shared_exec
shared_monitor
shared_offset
shared_write
shm
shm_unmap
sigaction_old
sigaltstack
sigchld_interrupt_signal
sigcont
sigcont_threaded
sigframe_grow_stack
sighandler_bad_rsp_sigsegv
sighandler_fork
sighandler_mask
sigill
signal_deferred
signal_during_preload_init
signal_frame
signal_unstoppable
x86/signal_xmm_state
signalfd
sigprocmask
sigprocmask_ensure_delivery
sigprocmask_exec
sigprocmask_evil
sigprocmask_in_syscallbuf_sighandler
sigprocmask_rr_sigs
sigprocmask_syscallbuf
# sigprof
sigpwr
sigqueueinfo
sigtrap_process_group
x86/sigreturn
sigreturn_reg
sigreturnmask
sigrt
sigstop
sigstop2
sigsuspend
sigtrap
simple_threads_stress
sioc
small_holes
sock_name_null
sock_names_opts
spinlock_priorities
splice
stack_growth_after_syscallbuf
stack_growth_syscallbuf
stack_growth_with_guard
stack_invalid
stack_overflow
stack_overflow_altstack
stack_overflow_with_guard
statfs
statx
stdout_child
stdout_cloexec
stdout_dup
stdout_redirect
switch_read
symlink
sync
sync_file_range
syscall_bp
syscall_in_writable_mem
syscallbuf_signal_reset
syscallbuf_signal_blocking
syscallbuf_sigstop
syscallbuf_timeslice
syscallbuf_timeslice2
sysconf
sysconf_conf
sysctl
sysemu_singlestep
x86/sysfs
sysinfo
syslog
arm/tagged_addr_ctrl
tgkill
thread_yield
timer
timerfd
times
truncate_temp
tty_tostop
tun
two_signals_with_mask
ulimit_low
uname
unexpected_exit
unexpected_exit_execve
unexpected_exit_execve_twice
unexpected_exit_pid_ns
unjoined_thread
unshare
userfaultfd
utimes
v4l_dmabuf
vdso_parts
vdso_symbols
vfork_done
vfork_flush
vfork_setopts
vfork_shared
video_capture
vm_readv_writev
vsyscall
vsyscall_timeslice
x86/x87env
wait
wait_sigstop
write_race
writev
xattr
zero_length_read
)
if(MQUEUE_H)
set(BASIC_TESTS ${BASIC_TESTS} mq)
endif()
if(FANOTIFY_H)
set(BASIC_TESTS ${BASIC_TESTS} fanotify)
endif()
if(HAVE_ROBUST_MUTEX)
set(BASIC_TESTS ${BASIC_TESTS} robust_futex)
endif()
set(BASIC_CPP_TESTS
std_random
unwind_rr_page
)
# A "test with program" consists of a foo.c source file and a foo.run driver
# script. See src/test/util.sh to learn how the .run files work.
#
# NB: you must update this variable when adding a new test source
# file. The list is not generated automatically.
#
# Alphabetical, please.
set(TESTS_WITH_PROGRAM
abort_nonmain
alternate_thread_diversion
arm/arch_timer
args
async_kill_with_syscallbuf
async_kill_with_syscallbuf2
async_kill_with_threads
async_kill_with_threads_main_running
async_kill_with_threads_thread_running
async_segv
async_signal_syscalls
async_signal_syscalls2
async_signal_syscalls_siginfo
async_usr1
blacklist
block_clone_checkpoint
block_clone_interrupted
block_clone_syscallbuf_overflow
block_intr_sigchld
blocked_bad_ip
blocked_sigill
x86/blocked_sigsegv
breakpoint
breakpoint_conditions
breakpoint_overlap
call_function
call_gettid
chaos_oom
# Disabled because it's very slow
# check_session_leaks
checkpoint_dying_threads
checkpoint_mixed_mode
checksum_sanity
check_lost_interrupts
clone_file_range
clone_interruption
# Disabled because it fails
# clone_share_vm
clone_syscallbuf_cleanup_blocked
clone_syscallbuf_cleanup_cpu
clone_vfork
concurrent_signals
conditional_breakpoint_calls
conditional_breakpoint_offload
condvar_stress
cont_race
context_switch_after_patch
x86/cpuid_singlestep
crash
crash_in_function
daemon_read
dconf_mock
detach_terminal
dev_tty
x86/diversion_rdtsc
diversion_sigtrap
diversion_syscall
dlopen
early_error
elapsed_time
exclusion_region
exec_failed
exec_many
exec_shared_as
execve_loop
exit_codes
exit_group
exit_race
exit_status
x86/explicit_checkpoints
fd_limit
fork_stress
fork_syscalls
function_calls
x86/fxregs
x86/gdb_avx512
getcwd
gdb_bogus_breakpoint
gdb_qpasssignals
goto_event
hello
hooks
# Disabled because issue #1806 makes tests fail on Debian 8.5 at least
# history
ignored_async_usr1
ignored_sigsegv
ignore_nested
immediate_restart
x86/int3_ok
interrupt
intr_ptrace_decline
invalid_interpreter
invalid_jump
jit_proc_mem
link
madvise_dontfork
madvise_fracture_flags
main_thread_exit
many_yields
mmap_fd_reuse_checkpoint
mmap_replace_most_mappings
mmap_shared_extern
mmap_shared_prot
mmap_shared_write_exec_race
mmap_tmpfs
mmap_write
mmap_write_private
mprotect_checkpoint
x86/morestack_unwind
mprotect_growsdown
mprotect_syscallbuf_overflow
mutex_pi_stress
nested_detach_wait
nested_detach_kill_stuck
nested_release_signal
overflow_branch_counter
pack
patch_page_end
x86/patch_40_80_f6_81
x86/patch_pc_rel
prctl_tsc
priority
ptrace_remote_unmap
x86/rdtsc_loop
x86/rdtsc_loop2
x86/rdtsc_interfering
read_big_struct
remove_latest_trace
restart_abnormal_exit
reverse_continue_breakpoint
reverse_continue_multiprocess
reverse_continue_process_signal
reverse_many_breakpoints
reverse_step_long
reverse_step_threads
reverse_step_threads_break
# Not called ps, because that interferes with using real 'ps' in tests
rr_ps
rr_ps_ns
rseq
rseq_syscallbuf
rseq_cpu_id_reset_longrunning
search
seccomp_blocks_rr
seccomp_open
seccomp_signals
seekticks_threads
segfault
setuid
shared_map
shared_persistent_file
signal_numbers
sigprocmask_race
sigprocmask_rr_sigs_nondefault
simple
x86/singlestep_pushf
stack_growth
step_into_lib
step_thread
strict_priorities
x86/string_instructions
x86/string_instructions_async_signals
x86/string_instructions_async_signals_shared
x86/string_instructions_multiwatch
x86/string_instructions_replay
x86/string_instructions_singlestep_fastforward
x86/string_instructions_watch
x86/syscallbuf_branch_check
syscallbuf_fd_disabling
x86/syscallbuf_rdtsc_page
syscallbuf_signal_blocking_read
sysconf_onln
target_fork
target_process
tcp_sockets
term_nonmain
term_rr
term_rr_ok
term_trace_reset
term_trace_syscall
thread_exit_signal
thread_open_race
thread_stress
threaded_syscall_spam
threads
tls
tracee_unmap_vdso
ttyname
unexpected_stack_growth
unicode
user_ignore_sig
vdso_clock_gettime_stack
vdso_gettimeofday_stack
vdso_time_stack
vfork
vfork_read_clone_stress
vsyscall_reverse_next
wait_for_all
watchpoint
watchpoint_at_sched
watchpoint_before_signal
x86/watchpoint_error
watchpoint_no_progress
watchpoint_size_change
watchpoint_syscall
watchpoint_unaligned
when_threads
)
# A "test without program" is a foo.run driver script only, which does
# something with one of the test executables above (or has special rules
# to build its own executable).
#
# NB: you must update this variable when adding a new test source
# file. The list is not generated automatically.
#
# Alphabetical, please.
set(TESTS_WITHOUT_PROGRAM
async_signal_syscalls_100
async_signal_syscalls_1000
bad_breakpoint
break_block
break_clock
break_clone
break_exec
break_int3
break_mmap_private
break_msg
x86/break_rdtsc
break_sigreturn
break_sync_signal
break_thread
break_time_slice
breakpoint_consistent
breakpoint_print
call_exit
check_patched_pthread
checkpoint_async_signal_syscalls_1000
checkpoint_invalid
checkpoint_mmap_shared
checkpoint_prctl_name
checkpoint_simple
checksum_block_open
checksum_sanity_noclone
comm
cont_signal
copy_all
x86/cpuid
dead_thread_target
desched_ticks
deliver_async_signal_during_syscalls
env_newline
exec_deleted
exec_stop
execp
explicit_checkpoint_clone
fd_leak
file_name_newline
final_sigkill
first_instruction
fork_exec_info_thr
get_thread_list
hardlink_mmapped_files
hbreak
large_file
mprotect_step
nested_detach
nested_detach_kill
nested_detach_stop
nested_release
nested_release_exit_code
pack_dir
parent_no_break_child_bkpt
parent_no_stop_child_crash
personality_chaos
post_exec_fpu_regs
proc_maps
read_bad_mem
record_replay
remove_watchpoint
replay_overlarge_event_number
replay_serve_files
restart_invalid_checkpoint
restart_unstable
restart_diversion
reverse_alarm
reverse_continue_exec_subprocess
reverse_continue_fork_subprocess
reverse_continue_int3
reverse_continue_start
reverse_finish
reverse_step_breakpoint
reverse_step_signal
reverse_step_threads2
reverse_watchpoint
reverse_watchpoint_syscall
run_end
run_in_function
sanity
seekticks
shm_checkpoint
siginfo
x86/sigreturn_checksum
signal_stop
signal_checkpoint
simple_script
simple_script_debug
simple_winch
stack_overflow_debug
step1
x86/step_rdtsc
step_signal
x86/string_instructions_break
x86/string_instructions_replay_quirk
subprocess_exit_ends_session
switch_processes
syscallbuf_timeslice_250
tick0
tick0_less
trace_version
term_trace_cpu
trace_events
traceinfo
transient_fault_replay_all
tty
unmap_vdso
unwind_on_signal
vfork_done_clone
vfork_exec
vfork_break_parent
vsyscall_singlestep
watch_code
watchpoint_cond
watchpoint_step
watchpoint_unaligned2
when
)
if(BUILD_TESTS)
# Part of the installable testsuite (test files).
if(INSTALL_TESTSUITE)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/test/
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/rr/src/test
USE_SOURCE_PERMISSIONS)
endif(INSTALL_TESTSUITE)
# We use symlinks in the tests to access the build and source directories.
# This is needed because we cannot change the paths used by the tests when
# the testsuite is installed. We work around this by using symlinks during
# the normal build, and then installing symlinks with the testsuite that
# have the same name but, the new link targets.
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR} source_dir)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_BINARY_DIR} bin_dir)
if(INSTALL_TESTSUITE)
# Create the directory for the symlinks first and then create symlinks.
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rr/testsuite/rr
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/source_dir)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj
\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin_dir)")
endif(INSTALL_TESTSUITE)
foreach(test ${BASIC_TESTS} ${TESTS_WITH_PROGRAM})
if (NOT x86ish AND ${test} MATCHES "^x86/.*")
continue()
endif()
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
add_executable(${testname} src/test/${test}.c)
target_include_directories(${testname} PRIVATE src/preload)
post_build_executable(${testname})
set_source_files_properties(src/test/${test}.c
PROPERTIES COMPILE_FLAGS ${RR_TEST_FLAGS})
add_dependencies(${testname} Generated)
if(LIBRT)
target_link_libraries(${testname} ${LIBRT})
endif()
target_link_libraries(${testname} -ldl)
# Part of the installable testsuite (test programs).
if(INSTALL_TESTSUITE)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/${testname}
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
endif(INSTALL_TESTSUITE)
endforeach(test)
add_executable(tick0 src/test/tick0.c)
post_build_executable(tick0)
set_target_properties(tick0
PROPERTIES LINK_FLAGS "-static -nostdlib -nodefaultlibs"
COMPILE_FLAGS "-static -nostdlib -nodefaultlibs -O3 -g2 -DHAS_TICK0=1")
add_executable(tick0_less src/test/tick0.c)
post_build_executable(tick0_less)
set_target_properties(tick0_less
PROPERTIES LINK_FLAGS "-static -nostdlib -nodefaultlibs"
COMPILE_FLAGS "-static -nostdlib -nodefaultlibs -O3 -g2")
add_executable(watchpoint_unaligned2 src/test/watchpoint_unaligned2.c)
post_build_executable(watchpoint_unaligned2)
set_target_properties(watchpoint_unaligned2
PROPERTIES COMPILE_FLAGS "${RR_TEST_FLAGS} -g -O3")
add_dependencies(watchpoint_unaligned2 Generated)
add_executable(prctl_tsc_supported src/test/prctl_tsc_supported.c)
post_build_executable(prctl_tsc_supported)
# Test disabled because it requires libuvc to be built and installed, and a
# working USB camera
# add_executable(usb src/test/usb.c)
# post_build_executable(usb)
# add_dependencies(usb Generated)
# target_link_libraries(usb ${LIBRT} -L/usr/local/lib -luvc -lusb-1.0)
foreach(test ${BASIC_CPP_TESTS})
add_executable(${test} src/test/${test}.cc)
post_build_executable(${test})
set_source_files_properties(src/test/${test}.cc
PROPERTIES COMPILE_FLAGS ${RR_TEST_FLAGS})
add_dependencies(${test} Generated)
if(LIBRT)
target_link_libraries(${test} ${LIBRT})
endif()
# Part of the installable testsuite (test programs).
if(INSTALL_TESTSUITE)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/${test}
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
endif(INSTALL_TESTSUITE)
endforeach(test)
add_library(test_lib
src/test/test_lib.c
)
add_dependencies(test_lib Generated)
set_source_files_properties(src/test/test_lib.c
PROPERTIES COMPILE_FLAGS ${RR_TEST_FLAGS})
if(LIBRT)
target_link_libraries(constructor ${LIBRT})
target_link_libraries(step_into_lib ${LIBRT})
endif()
target_link_libraries(constructor test_lib)
target_link_libraries(step_into_lib test_lib)
# cpuid test needs to link with cpuid_loop.S
if (x86ish)
add_executable(cpuid src/test/x86/cpuid.c src/test/x86/cpuid_loop.S)
post_build_executable(cpuid)
set_source_files_properties(src/test/x86/cpuid.c
PROPERTIES COMPILE_FLAGS ${RR_TEST_FLAGS})
add_dependencies(cpuid Generated)
if(LIBRT)
target_link_libraries(cpuid ${LIBRT})
endif()
endif()
# Add exit_fast test executable
add_executable(exit_fast src/test/exit_fast.c)
set_target_properties(exit_fast
PROPERTIES LINK_FLAGS "-static -nostartfiles -nodefaultlibs ${LINKER_FLAGS}")
post_build_executable(exit_fast)
add_dependencies(exit_fast Generated)
set_source_files_properties(src/test/exit_fast.c
COMPILE_FLAGS "-fno-stack-protector")
# Check if we're running on KNL. If so, we allot more time to tests, due to
# reduced single-core performance.
execute_process(COMMAND cat /proc/cpuinfo OUTPUT_VARIABLE CPUINFO)
string(REGEX MATCH "^.*(Xeon Phi).*$" CPU_MODEL_PHI ${CPUINFO})
if(NOT "${CPU_MODEL_PHI}" STREQUAL "")
set(TEST_MONITOR_DEFAULT_TIMEOUT 480)
else()
set(TEST_MONITOR_DEFAULT_TIMEOUT 120)
endif()
# The real timeouts are handled by test-monitor
set(CTEST_TEST_TIMEOUT 1000)
function(configure_test test)
set_tests_properties(${test} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED" SKIP_RETURN_CODE 77)
endfunction(configure_test)
if(INSTALL_TESTSUITE)
install(TARGETS test_lib
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/test-monitor
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/exit_fast
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
if (x86ish)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/cpuid
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
endif(x86ish)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CTestTestfile.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj)
endif(INSTALL_TESTSUITE)
foreach(test ${BASIC_TESTS} ${BASIC_CPP_TESTS} ${OTHER_TESTS})
if (NOT x86ish AND ${test} MATCHES "^x86/.*")
continue()
endif()
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
add_test(${test}
bash source_dir/src/test/basic_test.run ${testname} "" bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test})
add_test(${test}-no-syscallbuf
bash source_dir/src/test/basic_test.run ${testname} -n bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-no-syscallbuf)
endforeach(test)
foreach(test ${TESTS_WITH_PROGRAM} ${TESTS_WITHOUT_PROGRAM})
if (NOT x86ish AND ${test} MATCHES "^x86/.*")
continue()
endif()
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
add_test(${test}
bash source_dir/src/test/${test}.run ${testname} "" bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test})
add_test(${test}-no-syscallbuf
bash source_dir/src/test/${test}.run ${testname} -n bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-no-syscallbuf)
endforeach(test)
# Run 32-bit tests on 64-bit builds.
# We copy the test files into '32' subdirectories in the output
# directory, so we can set different compile options on them.
# This sucks but I can't find a better way to get CMake to build
# the same source file in two different ways.
if(rr_32BIT AND rr_64BIT)
foreach(header util.h nsutils.h ptrace_util.h util_syscall.h util_internal.h)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/test/${header}"
"${CMAKE_CURRENT_BINARY_DIR}/32/${header}"
COPYONLY)
endforeach(header)
foreach(test ${BASIC_TESTS} ${TESTS_WITH_PROGRAM} x86/cpuid test_lib tick0 watchpoint_unaligned2 exit_fast)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/test/${test}.c"
"${CMAKE_CURRENT_BINARY_DIR}/32/${test}.c"
COPYONLY)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/${test}.c"
PROPERTIES COMPILE_FLAGS "-m32 ${RR_TEST_FLAGS}")
endforeach(test)
foreach(test ${BASIC_CPP_TESTS})
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/test/${test}.cc"
"${CMAKE_CURRENT_BINARY_DIR}/32/${test}.cc"
COPYONLY)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/${test}.cc"
PROPERTIES COMPILE_FLAGS "-m32 ${RR_TEST_FLAGS}")
endforeach(test)
foreach(file x86/cpuid_loop.S x86/util.h)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/test/${file}"
"${CMAKE_CURRENT_BINARY_DIR}/32/${file}"
COPYONLY)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/${file}"
PROPERTIES COMPILE_FLAGS "-m32 ${RR_TEST_FLAGS}")
endforeach(file)
foreach(test ${BASIC_TESTS} ${BASIC_CPP_TESTS} ${TESTS_WITH_PROGRAM})
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
if(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/32/${test}.c")
add_executable(${testname}_32 "${CMAKE_CURRENT_BINARY_DIR}/32/${test}.c")
else()
add_executable(${testname}_32 "${CMAKE_CURRENT_BINARY_DIR}/32/${test}.cc")
endif()
target_include_directories(${testname}_32 PRIVATE src/preload)
post_build_executable(${testname}_32)
add_dependencies(${testname}_32 Generated)
set_target_properties(${testname}_32 PROPERTIES LINK_FLAGS "-m32 ${RR_TEST_FLAGS} ${LINKER_FLAGS}")
if(LIBRT_32)
target_link_libraries(${testname}_32 ${LIBRT_32})
endif()
target_link_libraries(${testname}_32 -ldl)
# Part of the installable testsuite (test programs).
if (INSTALL_TESTSUITE)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/${testname}_32
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
endif (INSTALL_TESTSUITE)
endforeach(test)
add_executable(tick0_32 "${CMAKE_CURRENT_BINARY_DIR}/32/tick0.c")
post_build_executable(tick0_32)
set_target_properties(tick0_32
PROPERTIES LINK_FLAGS "-m32 -static -nostdlib -nodefaultlibs"
COMPILE_FLAGS "-m32 -static -nostdlib -nodefaultlibs -O3 -g2 -DHAS_TICK0=1")
add_executable(tick0_less_32 "${CMAKE_CURRENT_BINARY_DIR}/32/tick0.c")
post_build_executable(tick0_less_32)
set_target_properties(tick0_less_32
PROPERTIES LINK_FLAGS "-m32 -static -nostdlib -nodefaultlibs"
COMPILE_FLAGS "-m32 -static -nostdlib -nodefaultlibs -O3 -g2")
# Add exit_fast test executable
add_executable(exit_fast_32 "${CMAKE_CURRENT_BINARY_DIR}/32/exit_fast.c")
set_target_properties(exit_fast_32
PROPERTIES LINK_FLAGS "-static -nostartfiles -nodefaultlibs ${LINKER_FLAGS}")
add_dependencies(exit_fast_32 Generated)
post_build_executable(exit_fast_32)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/32/exit_fast.c" COMPILE_FLAGS "-fno-stack-protector")
add_executable(watchpoint_unaligned2_32 "${CMAKE_CURRENT_BINARY_DIR}/32/watchpoint_unaligned2.c")
post_build_executable(watchpoint_unaligned2_32)
set_target_properties(watchpoint_unaligned2_32
PROPERTIES LINK_FLAGS "-m32"
COMPILE_FLAGS "-m32 ${RR_TEST_FLAGS} -g -O3")
add_dependencies(watchpoint_unaligned2_32 Generated)
add_library(test_lib_32
"${CMAKE_CURRENT_BINARY_DIR}/32/test_lib.c"
)
add_dependencies(test_lib_32 Generated)
set_target_properties(test_lib_32 PROPERTIES LINK_FLAGS "-m32 ${LINKER_FLAGS}")
if(LIBRT_32)
target_link_libraries(constructor_32 ${LIBRT_32})
target_link_libraries(step_into_lib_32 ${LIBRT_32})
endif()
target_link_libraries(constructor_32 test_lib_32)
target_link_libraries(step_into_lib_32 test_lib_32)
# cpuid test needs to link with cpuid_loop.S
add_executable(cpuid_32 32/x86/cpuid.c 32/x86/cpuid_loop.S)
post_build_executable(cpuid_32)
add_dependencies(cpuid_32 Generated)
set_target_properties(cpuid_32 PROPERTIES LINK_FLAGS "-m32 ${LINKER_FLAGS}")
if(LIBRT_32)
target_link_libraries(cpuid_32 ${LIBRT_32})
endif()
if(INSTALL_TESTSUITE)
install(TARGETS test_lib_32
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/cpuid_32
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rr/testsuite/obj/bin)
endif(INSTALL_TESTSUITE)
foreach(test ${BASIC_TESTS} ${BASIC_CPP_TESTS} ${OTHER_TESTS})
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
add_test(${test}-32
bash source_dir/src/test/basic_test.run ${testname}_32 "" bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-32)
add_test(${test}-32-no-syscallbuf
bash source_dir/src/test/basic_test.run ${testname}_32 -n bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-32-no-syscallbuf)
endforeach(test)
foreach(test ${TESTS_WITH_PROGRAM} ${TESTS_WITHOUT_PROGRAM})
if (NOT ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" AND ${test} MATCHES "^arm/.*")
continue()
endif()
get_filename_component(testname ${test} NAME)
add_test(${test}-32
bash source_dir/src/test/${test}.run ${testname}_32 "" bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-32)
add_test(${test}-32-no-syscallbuf
bash source_dir/src/test/${test}.run ${testname}_32 -n bin_dir ${TEST_MONITOR_DEFAULT_TIMEOUT})
configure_test(${test}-32-no-syscallbuf)
endforeach(test)
endif()
set(CHAOS_TESTS
core_count
futex_wakeup
getaffinity_core_count
pipe_wakeup
mmap_adjacent
mmap_bits
startup
starvation_multithreaded
starvation_singlethreaded
)
foreach(test ${CHAOS_TESTS})
add_executable(${test} src/chaos-test/${test}.c)
post_build_executable(${test})
if(LIBRT)
target_link_libraries(${test} ${LIBRT})
endif()
endforeach(test)
add_executable(test-monitor src/test-monitor/test-monitor.cc)
add_executable(ftrace_helper src/ftrace/ftrace_helper.c)
add_executable(counters src/counters-test/counters.cc)
set_source_files_properties(src/counters-test/counters.cc
PROPERTIES COMPILE_FLAGS "-fno-stack-protector")
endif()
include(ProcessorCount)
ProcessorCount(N)
if(NOT N EQUAL 0)
set(JFLAG -j${N})
endif()
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose ${JFLAG} USES_TERMINAL)
# Run only syscallbuf-enabled and native-bitness tests
add_custom_target(fastcheck COMMAND ${CMAKE_CTEST_COMMAND} --verbose --exclude-regex '[-]' ${JFLAG} USES_TERMINAL)
##--------------------------------------------------
## Package configuration
include (InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_NAME "rr")
set(CPACK_PACKAGE_VERSION_MAJOR "${rr_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${rr_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${rr_VERSION_PATCH}")
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
set(CPACK_OUTPUT_FILE_PREFIX dist)
set(CPACK_GENERATOR "TGZ;RPM;DEB" CACHE STRING "CPack generators")
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_BINARY_DIR "${PROJECT_BINARY_DIR}")
# Don't strip binaries. It's important/useful for librrpreload at least to
# have debug symbols. For package releases, pass -Dstrip=TRUE to strip symbols
# from the rr binary at build time.
set(CPACK_STRIP_FILES FALSE)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
"Lightweight tool for recording and replaying execution of applications (trees of processes and threads)")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_VENDOR "rr-debugger")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "rr-debugger")
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm.*")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm")
endif()
# XXX Cmake 2.8.7 doesn't know how to avoid specifying /usr,
# /usr/bin, etc, as files to be installed, but distros are finicky
# about their specification. We want to manually filter those paths
# out of our install list but 2.8.7 also isn't capable of that.
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/rr.spec")
set(CPACK_RPM_PACKAGE_RELEASE 1)
set(CPACK_RPM_PACKAGE_GROUP "Development/Debuggers")
set(CPACK_RPM_PACKAGE_LICENSE "MIT and BSD")
# Prevent binaries from being stripped
set(CPACK_RPM_SPEC_INSTALL_POST "/bin/true")
include (CPack)
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Community Participation Guidelines
This repository is governed by Mozilla's code of conduct and etiquette guidelines.
For more details, please read the
[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
## How to Report
For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page.
<!--
## Project Specific Etiquette
In some cases, there will be additional project etiquette i.e.: (https://bugzilla.mozilla.org/page.cgi?id=etiquette.html).
Please update for your project.
-->
================================================
FILE: CONTRIBUTING.md
================================================
## Submission Checklist
Please make sure you go through this list before submitting a patch. The rules aren't hard and fast, but mostly adhering to them will make for quicker mergings.
- [ ] Does your PR add support for a new kernel API? For example, supporting a new syscall. If so, your patch should include at least one new test for the API. This is usually pretty easy. See `$rr/src/test` for examples.
- [ ] Did you run the rr test suite (including your new tests, if any), and pass all the tests? `make -C $objdir check`. Unfortunately, rr doesn't have automated infrastructure that can run the tests yet, so developers have to run them locally.
- [ ] If you created new files for your PR, did you `git add` them? Habitually (or with a script or push hook) checking `git status` is a good habit to acquire.
- [ ] If you changed the trace layout or format, did you bump `TRACE_VERSION`?
- [ ] If you added new command-line parameters, did you update `print_usage()` to document them?
- [ ] Does your PR apply cleanly on top of upstream/master HEAD? It's dangerous to have someone else sort out your merge conflicts, so just don't do it. Best of all is to have a PR *rebased* on top of upstream/master HEAD, so that the merge is simply a fast-forward.
- [ ] If your PR includes multiple changesets, do they all (i) build cleanly in sequence; (ii) pass all tests in sequence? This is important for bisecting over commit history.
- [ ] If your PR is a very large-scale change (for example, a rewrite in Rust to use the visitor pattern), did you discuss the proposed changes in an issue or the mailing list? It's hard to review large patches that just fall in ones lap. It's much easier to discuss the important changes at a high level and then approach the patch knowing what's important and what's not.
- [ ] If your PR is large or includes many changesets, would it have been possible to break the changes into a series of smaller PRs? For example, it's hard to review a big patch that, say, fixes whitespace errors in a file along with a one-line, important, bug fix. It's much easier to review one PR that fixes whitespace (which can just be skimmed), and then review another PR that makes the one-line bug fix (which would be scrutinized more). This approach is also better for the patch author in that it usually allows the work to land faster, and reduces the burden of continually un-bit-rotting large, trivial, changes.
- [ ] Did you check your code is formatted correctly? It's easiest to run `scripts/reformat.sh` on each commit.
## Coding Guidelines
rr uses assertions heavily, for code documentation, for automated checking that the code matches the documentation, and to improve the power of automated tests. Assertions are turned on in release builds. Whenever you depend on an invariant not immediately obvious, consider adding assertions to check it.
rr ships with debugging enabled and compiler optimizations disabled for the rr process itself. That's because rr performance almost always depends on algorithmic issues --- minimizing the number of system calls, and especially, minimizing the number of context switches between the tracees and the rr process --- much more than the performance of the code running in the rr process. For the same reason, rr-process code should be as simple as possible even if that's less efficient. To some extent, once we're running code in the rr process, we've already lost performance-wise. OTOH we do enable optimizations in `preload.c` because that runs in tracees.
## Coding Style
Put braces around all statement blocks, even one-line `if` bodies etc.
All C++ declarations are in the `rr` namespace.
All C++ types are in CamelCase; all C types are underscore_names.
================================================
FILE: LICENSE
================================================
Copyright (c) 2013 Mozilla Foundation
Copyright 2015 VMware, Inc
Copyright 2015 Google Inc.
Contributors: Albert Noll <noll.albert@gmail.com>, Thomas Anderegg <thomas@tanderegg.com>, Nimrod Partush <nimrodpar@gmail.com>
Andrew Walton <awalton@vmware.com>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
====================================================================================
The following applies only to files under third-party/gdb:
<!-- Copyright (C) 2010-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
====================================================================================
The following applies only to files under third-party/zen-pmu-workaround:
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate qto certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyri
gitextract__6i1v_s1/
├── .android/
│ ├── Dockerfile
│ ├── README.md
│ └── build.sh
├── .buildkite/
│ ├── .gitignore
│ ├── CTestCostData.txt
│ ├── Manifest.toml
│ ├── Project.toml
│ ├── capture_tmpdir.jl
│ └── pipeline.yml
├── .clang-format
├── .github/
│ └── workflows/
│ ├── android-build.yml
│ ├── build-and-test-main.yml
│ └── build-and-test.yml
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── Vagrantfile
├── configure
├── include/
│ └── rr/
│ └── rr.h
├── release-process/
│ ├── README.md
│ ├── distro-configs/
│ │ ├── centos9.json
│ │ ├── debian11.json
│ │ ├── debian12.json
│ │ ├── ubuntu20-lts.json
│ │ ├── ubuntu22-lts.json
│ │ ├── ubuntu24-lts.json
│ │ └── ubuntu24.10.json
│ ├── prepare-release.py
│ ├── rr-testing-cloud-formation.json
│ ├── rr-testing.sh
│ ├── test-data/
│ │ ├── rr-test-doc.odt
│ │ └── test.html
│ └── test-system.py
├── rr.spec
├── scripts/
│ ├── checkpoint-visualizer.html
│ ├── github-actions-CTestCostData.txt
│ ├── github-actions-build.sh
│ ├── github-actions-test.sh
│ ├── reformat.sh
│ ├── rr-collect-symbols.py
│ ├── rr-gdb-script-host.py
│ ├── rr_completion
│ ├── rr_completion.zsh
│ ├── signal-rr-recording.sh
│ ├── update-gh-pages.sh
│ ├── zen_workaround.py
│ └── zen_workaround.service
├── snap/
│ └── snapcraft.yaml
├── src/
│ ├── AddressSpace.cc
│ ├── AddressSpace.h
│ ├── AutoRemoteSyscalls.cc
│ ├── AutoRemoteSyscalls.h
│ ├── BpfMapMonitor.h
│ ├── BreakpointCondition.h
│ ├── BuildidCommand.cc
│ ├── CPUFeaturesCommand.cc
│ ├── CPUIDBugDetector.cc
│ ├── CPUIDBugDetector.h
│ ├── CPUs.cc
│ ├── CPUs.h
│ ├── Command.cc
│ ├── Command.h
│ ├── CompressedReader.cc
│ ├── CompressedReader.h
│ ├── CompressedWriter.cc
│ ├── CompressedWriter.h
│ ├── ContextSwitchEvent.cc
│ ├── ContextSwitchEvent.h
│ ├── DebuggerExtensionCommand.cc
│ ├── DebuggerExtensionCommand.h
│ ├── DebuggerExtensionCommandHandler.cc
│ ├── DebuggerExtensionCommandHandler.h
│ ├── DiversionSession.cc
│ ├── DiversionSession.h
│ ├── DumpCommand.cc
│ ├── DumpCommand.h
│ ├── Dwarf.cc
│ ├── Dwarf.h
│ ├── ElfReader.cc
│ ├── ElfReader.h
│ ├── EmuFs.cc
│ ├── EmuFs.h
│ ├── Event.cc
│ ├── Event.h
│ ├── ExportImportCheckpoints.cc
│ ├── ExportImportCheckpoints.h
│ ├── ExtraRegisters.cc
│ ├── ExtraRegisters.h
│ ├── FdTable.cc
│ ├── FdTable.h
│ ├── FileMonitor.cc
│ ├── FileMonitor.h
│ ├── FileNameCommand.cc
│ ├── Flags.cc
│ ├── Flags.h
│ ├── GdbInitCommand.cc
│ ├── GdbServer.cc
│ ├── GdbServer.h
│ ├── GdbServerConnection.cc
│ ├── GdbServerConnection.h
│ ├── GdbServerExpression.cc
│ ├── GdbServerExpression.h
│ ├── GdbServerRegister.h
│ ├── HasTaskSet.cc
│ ├── HasTaskSet.h
│ ├── HelpCommand.cc
│ ├── LldbInitCommand.cc
│ ├── LsCommand.cc
│ ├── MagicSaveDataMonitor.cc
│ ├── MagicSaveDataMonitor.h
│ ├── MemoryRange.h
│ ├── MmappedFileMonitor.cc
│ ├── MmappedFileMonitor.h
│ ├── MonitoredSharedMemory.cc
│ ├── MonitoredSharedMemory.h
│ ├── Monkeypatcher.cc
│ ├── Monkeypatcher.h
│ ├── MvCommand.cc
│ ├── NonvirtualPerfCounterMonitor.h
│ ├── ODirectFileMonitor.h
│ ├── PackCommand.cc
│ ├── PerfCounterBuffers.cc
│ ├── PerfCounterBuffers.h
│ ├── PerfCounters.cc
│ ├── PerfCounters.h
│ ├── PerfCounters_aarch64.h
│ ├── PerfCounters_x86.h
│ ├── PidFdMonitor.cc
│ ├── PidFdMonitor.h
│ ├── PreserveFileMonitor.h
│ ├── ProcFdDirMonitor.cc
│ ├── ProcFdDirMonitor.h
│ ├── ProcMemMonitor.cc
│ ├── ProcMemMonitor.h
│ ├── ProcStatMonitor.cc
│ ├── ProcStatMonitor.h
│ ├── ProcessorTraceDecoder.cc
│ ├── ProcessorTraceDecoder.h
│ ├── PsCommand.cc
│ ├── RRPageMonitor.h
│ ├── RecordCommand.cc
│ ├── RecordCommand.h
│ ├── RecordSession.cc
│ ├── RecordSession.h
│ ├── RecordTask.cc
│ ├── RecordTask.h
│ ├── Registers.cc
│ ├── Registers.h
│ ├── ReplayCommand.cc
│ ├── ReplayCommand.h
│ ├── ReplaySession.cc
│ ├── ReplaySession.h
│ ├── ReplayTask.cc
│ ├── ReplayTask.h
│ ├── ReplayTimeline.cc
│ ├── ReplayTimeline.h
│ ├── RerunCommand.cc
│ ├── ReturnAddressList.cc
│ ├── ReturnAddressList.h
│ ├── RmCommand.cc
│ ├── Scheduler.cc
│ ├── Scheduler.h
│ ├── ScopedFd.h
│ ├── SeccompFilterRewriter.cc
│ ├── SeccompFilterRewriter.h
│ ├── Session.cc
│ ├── Session.h
│ ├── SourcesCommand.cc
│ ├── StdioMonitor.cc
│ ├── StdioMonitor.h
│ ├── StringVectorToCharArray.h
│ ├── SysCpuMonitor.cc
│ ├── SysCpuMonitor.h
│ ├── TargetDescription.cc
│ ├── TargetDescription.h
│ ├── Task.cc
│ ├── Task.h
│ ├── TaskishUid.h
│ ├── ThreadDb.cc
│ ├── ThreadDb.h
│ ├── ThreadGroup.cc
│ ├── ThreadGroup.h
│ ├── Ticks.h
│ ├── TraceField.cc
│ ├── TraceField.h
│ ├── TraceFrame.cc
│ ├── TraceFrame.h
│ ├── TraceInfoCommand.cc
│ ├── TraceStream.cc
│ ├── TraceStream.h
│ ├── TraceTaskEvent.h
│ ├── TraceeAttentionSet.cc
│ ├── TraceeAttentionSet.h
│ ├── VirtualPerfCounterMonitor.cc
│ ├── VirtualPerfCounterMonitor.h
│ ├── WaitManager.cc
│ ├── WaitManager.h
│ ├── WaitStatus.cc
│ ├── WaitStatus.h
│ ├── assembly_templates.py
│ ├── audit/
│ │ ├── rtld-audit.c
│ │ ├── rtld-audit.h
│ │ ├── stap-note-iter.c
│ │ └── stap-note-iter.h
│ ├── bpf/
│ │ └── async_event_filter.c
│ ├── chaos-test/
│ │ ├── chaos-test.sh
│ │ ├── chaosutil.h
│ │ ├── core_count.c
│ │ ├── futex_wakeup.c
│ │ ├── getaffinity_core_count.c
│ │ ├── harness.py
│ │ ├── mmap_adjacent.c
│ │ ├── mmap_bits.c
│ │ ├── pipe_wakeup.c
│ │ ├── startup.c
│ │ ├── starvation_multithreaded.c
│ │ └── starvation_singlethreaded.c
│ ├── core.h
│ ├── counters-test/
│ │ ├── README.md
│ │ └── counters.cc
│ ├── cpp_supplement.h
│ ├── exec_stub.c
│ ├── extra_version_string.h.in
│ ├── fast_forward.cc
│ ├── fast_forward.h
│ ├── ftrace/
│ │ └── ftrace_helper.c
│ ├── ftrace.cc
│ ├── ftrace.h
│ ├── generate_syscalls.py
│ ├── git_revision.h.in
│ ├── kernel_abi.cc
│ ├── kernel_abi.h
│ ├── kernel_metadata.cc
│ ├── kernel_metadata.h
│ ├── kernel_supplement.h
│ ├── launch_debugger.cc
│ ├── launch_debugger.h
│ ├── log.cc
│ ├── log.h
│ ├── main.cc
│ ├── main.h
│ ├── perf-test/
│ │ ├── many-threads-wake.c
│ │ ├── many-threads-wake.md
│ │ ├── many-threads.c
│ │ ├── many-threads.md
│ │ ├── unbuffered-syscalls.c
│ │ └── unbuffered-syscalls.md
│ ├── preload/
│ │ ├── overrides.c
│ │ ├── preload_interface.h
│ │ ├── raw_syscall.S
│ │ ├── rr_page.S
│ │ ├── rr_page.ld.in
│ │ ├── rr_page_instructions.S
│ │ ├── rr_vdso.S
│ │ ├── rrcalls.h
│ │ ├── syscall_hook.S
│ │ ├── syscallbuf.c
│ │ ├── syscallbuf.h
│ │ └── tweak_librrpage.py
│ ├── processor_trace_check.cc
│ ├── processor_trace_check.h
│ ├── record_signal.cc
│ ├── record_signal.h
│ ├── record_syscall.cc
│ ├── record_syscall.h
│ ├── remote_code_ptr.cc
│ ├── remote_code_ptr.h
│ ├── remote_ptr.h
│ ├── replay_syscall.cc
│ ├── replay_syscall.h
│ ├── rr_trace.capnp
│ ├── seccomp-bpf.h
│ ├── syscalls.py
│ ├── test/
│ │ ├── 64bit_child.c
│ │ ├── _llseek.c
│ │ ├── abort.c
│ │ ├── abort_nonmain.c
│ │ ├── abort_nonmain.run
│ │ ├── accept.c
│ │ ├── acct.c
│ │ ├── adjtimex.c
│ │ ├── aio.c
│ │ ├── alarm.c
│ │ ├── alarm2.c
│ │ ├── alsa_ioctl.c
│ │ ├── alternate_thread_diversion.c
│ │ ├── alternate_thread_diversion.py
│ │ ├── alternate_thread_diversion.run
│ │ ├── args.c
│ │ ├── args.run
│ │ ├── arm/
│ │ │ ├── arch_timer.c
│ │ │ ├── arch_timer.run
│ │ │ ├── brk_nonzero.c
│ │ │ ├── diversion_arch_timer.py
│ │ │ ├── tagged_addr_ctrl.c
│ │ │ ├── util.h
│ │ │ └── util.sh
│ │ ├── async_kill_with_syscallbuf.c
│ │ ├── async_kill_with_syscallbuf.run
│ │ ├── async_kill_with_syscallbuf2.c
│ │ ├── async_kill_with_syscallbuf2.run
│ │ ├── async_kill_with_threads.c
│ │ ├── async_kill_with_threads.run
│ │ ├── async_kill_with_threads_main_running.c
│ │ ├── async_kill_with_threads_main_running.run
│ │ ├── async_kill_with_threads_thread_running.c
│ │ ├── async_kill_with_threads_thread_running.run
│ │ ├── async_segv.c
│ │ ├── async_segv.run
│ │ ├── async_segv_ignored.c
│ │ ├── async_signal_syscalls.c
│ │ ├── async_signal_syscalls.run
│ │ ├── async_signal_syscalls2.c
│ │ ├── async_signal_syscalls2.run
│ │ ├── async_signal_syscalls_100.run
│ │ ├── async_signal_syscalls_1000.run
│ │ ├── async_signal_syscalls_siginfo.c
│ │ ├── async_signal_syscalls_siginfo.run
│ │ ├── async_usr1.c
│ │ ├── async_usr1.run
│ │ ├── at_threadexit.c
│ │ ├── bad_breakpoint.run
│ │ ├── bad_good_break.py
│ │ ├── bad_ip.c
│ │ ├── bad_syscall.c
│ │ ├── barrier.c
│ │ ├── basic_test.run
│ │ ├── big_buffers.c
│ │ ├── big_select.c
│ │ ├── blacklist.c
│ │ ├── blacklist.run
│ │ ├── block.c
│ │ ├── block_clone_checkpoint.c
│ │ ├── block_clone_checkpoint.py
│ │ ├── block_clone_checkpoint.run
│ │ ├── block_clone_interrupted.c
│ │ ├── block_clone_interrupted.run
│ │ ├── block_clone_syscallbuf_overflow.c
│ │ ├── block_clone_syscallbuf_overflow.run
│ │ ├── block_intr_sigchld.c
│ │ ├── block_intr_sigchld.run
│ │ ├── block_open.c
│ │ ├── blocked_bad_ip.c
│ │ ├── blocked_bad_ip.py
│ │ ├── blocked_bad_ip.run
│ │ ├── blocked_sigill.c
│ │ ├── blocked_sigill.run
│ │ ├── bpf.c
│ │ ├── bpf_map.c
│ │ ├── bpf_prog_map.c
│ │ ├── bpf_query.c
│ │ ├── break_block.py
│ │ ├── break_block.run
│ │ ├── break_clock.py
│ │ ├── break_clock.run
│ │ ├── break_clone.py
│ │ ├── break_clone.run
│ │ ├── break_exec.run
│ │ ├── break_int3.py
│ │ ├── break_int3.run
│ │ ├── break_mmap_private.py
│ │ ├── break_mmap_private.run
│ │ ├── break_msg.run
│ │ ├── break_sigreturn.run
│ │ ├── break_sync_signal.run
│ │ ├── break_thread.run
│ │ ├── break_time_slice.py
│ │ ├── break_time_slice.run
│ │ ├── breakpoint.c
│ │ ├── breakpoint.py
│ │ ├── breakpoint.run
│ │ ├── breakpoint_conditions.c
│ │ ├── breakpoint_conditions.py
│ │ ├── breakpoint_conditions.run
│ │ ├── breakpoint_consistent.py
│ │ ├── breakpoint_consistent.run
│ │ ├── breakpoint_overlap.c
│ │ ├── breakpoint_overlap.py
│ │ ├── breakpoint_overlap.run
│ │ ├── breakpoint_print.py
│ │ ├── breakpoint_print.run
│ │ ├── breakpoint_print_command.py
│ │ ├── breakpoint_print_command.run
│ │ ├── brk.c
│ │ ├── brk2.c
│ │ ├── call_exit.py
│ │ ├── call_exit.run
│ │ ├── call_function.c
│ │ ├── call_function.py
│ │ ├── call_function.run
│ │ ├── call_gettid.c
│ │ ├── call_gettid.py
│ │ ├── call_gettid.run
│ │ ├── capget.c
│ │ ├── chaos_oom.c
│ │ ├── chaos_oom.run
│ │ ├── check_lost_interrupts.c
│ │ ├── check_lost_interrupts.run
│ │ ├── check_patched_pthread.py
│ │ ├── check_patched_pthread.run
│ │ ├── check_session_leaks.c
│ │ ├── check_session_leaks.py
│ │ ├── check_session_leaks.run
│ │ ├── check_syscall_perf_interval.py
│ │ ├── checkpoint_async_signal_syscalls_1000.run
│ │ ├── checkpoint_dying_threads.c
│ │ ├── checkpoint_dying_threads.py
│ │ ├── checkpoint_dying_threads.run
│ │ ├── checkpoint_invalid.py
│ │ ├── checkpoint_invalid.run
│ │ ├── checkpoint_mixed_mode.c
│ │ ├── checkpoint_mixed_mode.py
│ │ ├── checkpoint_mixed_mode.run
│ │ ├── checkpoint_mmap_shared.run
│ │ ├── checkpoint_prctl_name.run
│ │ ├── checkpoint_simple.run
│ │ ├── checksum_block_open.run
│ │ ├── checksum_sanity.c
│ │ ├── checksum_sanity.run
│ │ ├── checksum_sanity_noclone.run
│ │ ├── chew_cpu.c
│ │ ├── chmod.c
│ │ ├── chown.c
│ │ ├── clock.c
│ │ ├── clock_adjtime.c
│ │ ├── clock_nanosleep.c
│ │ ├── clock_time64.c
│ │ ├── clone.c
│ │ ├── clone_bad_stack.c
│ │ ├── clone_bad_tls.c
│ │ ├── clone_cleartid_coredump.c
│ │ ├── clone_fail.c
│ │ ├── clone_file_range.c
│ │ ├── clone_file_range.run
│ │ ├── clone_immediate_exit.c
│ │ ├── clone_interruption.c
│ │ ├── clone_interruption.py
│ │ ├── clone_interruption.run
│ │ ├── clone_interruption_finder.py
│ │ ├── clone_newflags.c
│ │ ├── clone_parent.c
│ │ ├── clone_share_vm.c
│ │ ├── clone_share_vm.py
│ │ ├── clone_share_vm.run
│ │ ├── clone_syscallbuf_cleanup_blocked.c
│ │ ├── clone_syscallbuf_cleanup_blocked.run
│ │ ├── clone_syscallbuf_cleanup_cpu.c
│ │ ├── clone_syscallbuf_cleanup_cpu.run
│ │ ├── clone_untraced.c
│ │ ├── clone_vfork.c
│ │ ├── clone_vfork.run
│ │ ├── clone_vfork_pidfd.c
│ │ ├── cloned_sigmask.c
│ │ ├── close_range.c
│ │ ├── comm.py
│ │ ├── comm.run
│ │ ├── concurrent_signals.c
│ │ ├── concurrent_signals.run
│ │ ├── conditional_breakpoint_calls.c
│ │ ├── conditional_breakpoint_calls.py
│ │ ├── conditional_breakpoint_calls.run
│ │ ├── conditional_breakpoint_offload.c
│ │ ├── conditional_breakpoint_offload.py
│ │ ├── conditional_breakpoint_offload.run
│ │ ├── condvar_stress.c
│ │ ├── condvar_stress.run
│ │ ├── constructor.c
│ │ ├── cont_race.c
│ │ ├── cont_race.run
│ │ ├── cont_signal.py
│ │ ├── cont_signal.run
│ │ ├── context_switch_after_patch.c
│ │ ├── context_switch_after_patch.run
│ │ ├── copy_all.py
│ │ ├── copy_all.run
│ │ ├── copy_file_range.c
│ │ ├── crash.c
│ │ ├── crash.run
│ │ ├── crash_in_function.c
│ │ ├── crash_in_function.py
│ │ ├── crash_in_function.run
│ │ ├── creat_address_not_truncated.c
│ │ ├── cwd_inaccessible.c
│ │ ├── daemon.c
│ │ ├── daemon_read.c
│ │ ├── daemon_read.run
│ │ ├── dconf_mock.c
│ │ ├── dconf_mock.run
│ │ ├── dead_thread_target.py
│ │ ├── dead_thread_target.run
│ │ ├── deliver_async_signal_during_syscalls.run
│ │ ├── desched_blocking_poll.c
│ │ ├── desched_sigkill.c
│ │ ├── desched_ticks.py
│ │ ├── desched_ticks.run
│ │ ├── detach_huge_mmap.c
│ │ ├── detach_sigkill.c
│ │ ├── detach_sigkill_exit.c
│ │ ├── detach_state.c
│ │ ├── detach_terminal.c
│ │ ├── detach_terminal.run
│ │ ├── detach_threads.c
│ │ ├── deterministic_sigsys.c
│ │ ├── dev_tty.c
│ │ ├── dev_tty.run
│ │ ├── dev_zero.c
│ │ ├── direct.c
│ │ ├── diversion_sigtrap.c
│ │ ├── diversion_sigtrap.py
│ │ ├── diversion_sigtrap.run
│ │ ├── diversion_syscall.c
│ │ ├── diversion_syscall.py
│ │ ├── diversion_syscall.run
│ │ ├── dlchecksum.c
│ │ ├── dlopen.c
│ │ ├── dlopen.py
│ │ ├── dlopen.run
│ │ ├── doublesegv.c
│ │ ├── dup.c
│ │ ├── early_error.c
│ │ ├── early_error.run
│ │ ├── elapsed_time.c
│ │ ├── elapsed_time.py
│ │ ├── elapsed_time.run
│ │ ├── env_newline.run
│ │ ├── epoll_create.c
│ │ ├── epoll_create1.c
│ │ ├── epoll_edge.c
│ │ ├── epoll_many.c
│ │ ├── epoll_pwait2.c
│ │ ├── epoll_pwait_eintr_sigmask.c
│ │ ├── eventfd.c
│ │ ├── exclusion_region.c
│ │ ├── exclusion_region.run
│ │ ├── exec_deleted.run
│ │ ├── exec_failed.c
│ │ ├── exec_failed.py
│ │ ├── exec_failed.run
│ │ ├── exec_flags.c
│ │ ├── exec_from_main_thread.c
│ │ ├── exec_from_other_thread.c
│ │ ├── exec_many.c
│ │ ├── exec_many.run
│ │ ├── exec_no_env.c
│ │ ├── exec_self.c
│ │ ├── exec_shared_as.c
│ │ ├── exec_shared_as.run
│ │ ├── exec_stop.py
│ │ ├── exec_stop.run
│ │ ├── exec_stopsig.c
│ │ ├── execp.run
│ │ ├── execve_failed.run
│ │ ├── execve_loop.c
│ │ ├── execve_loop.run
│ │ ├── execveat.c
│ │ ├── exit_codes.c
│ │ ├── exit_codes.run
│ │ ├── exit_fast.c
│ │ ├── exit_group.c
│ │ ├── exit_group.run
│ │ ├── exit_race.c
│ │ ├── exit_race.run
│ │ ├── exit_status.c
│ │ ├── exit_status.run
│ │ ├── exit_with_syscallbuf_signal.c
│ │ ├── expect_in_atomic_printf.py
│ │ ├── expect_in_exit.py
│ │ ├── explicit_checkpoint_clone.py
│ │ ├── explicit_checkpoint_clone.run
│ │ ├── fadvise.c
│ │ ├── fanotify.c
│ │ ├── fatal_init_signal.c
│ │ ├── fatal_sigsegv_thread.c
│ │ ├── fcntl_dupfd.c
│ │ ├── fcntl_lease.c
│ │ ├── fcntl_misc.c
│ │ ├── fcntl_notify.c
│ │ ├── fcntl_owner_ex.c
│ │ ├── fcntl_rw_hints.c
│ │ ├── fcntl_seals.c
│ │ ├── fcntl_sig.c
│ │ ├── fd_cleanup.c
│ │ ├── fd_leak.run
│ │ ├── fd_limit.c
│ │ ├── fd_limit.run
│ │ ├── fd_tracking_across_threads.c
│ │ ├── fds_clean.c
│ │ ├── fexecve.c
│ │ ├── fexecve_memfd.c
│ │ ├── file_name_newline.run
│ │ ├── final_sigkill.py
│ │ ├── final_sigkill.run
│ │ ├── first_instruction.py
│ │ ├── first_instruction.run
│ │ ├── flock.c
│ │ ├── flock2.c
│ │ ├── flock_ofd.c
│ │ ├── fork_brk.c
│ │ ├── fork_child_crash.c
│ │ ├── fork_exec_info_thr.run
│ │ ├── fork_many.c
│ │ ├── fork_stress.c
│ │ ├── fork_stress.run
│ │ ├── fork_syscalls.c
│ │ ├── fork_syscalls.run
│ │ ├── fsmount.c
│ │ ├── fstatat.c
│ │ ├── function_calls.c
│ │ ├── function_calls.py
│ │ ├── function_calls.run
│ │ ├── futex_exit_race.c
│ │ ├── futex_exit_race_sigsegv.c
│ │ ├── futex_invalid_op.c
│ │ ├── futex_pi.c
│ │ ├── futex_priorities.c
│ │ ├── futex_requeue.c
│ │ ├── futex_restart_clone.c
│ │ ├── futex_restart_race.c
│ │ ├── gcrypt_rdrand.c
│ │ ├── gdb_bogus_breakpoint.c
│ │ ├── gdb_bogus_breakpoint.py
│ │ ├── gdb_bogus_breakpoint.run
│ │ ├── gdb_qpasssignals.c
│ │ ├── gdb_qpasssignals.py
│ │ ├── gdb_qpasssignals.run
│ │ ├── generic_break.py
│ │ ├── get_thread_list.py
│ │ ├── get_thread_list.run
│ │ ├── getcpu.c
│ │ ├── getcwd.c
│ │ ├── getcwd.run
│ │ ├── getgroups.c
│ │ ├── getpwnam.c
│ │ ├── getrandom.c
│ │ ├── getsid.c
│ │ ├── gettimeofday.c
│ │ ├── goto_event.c
│ │ ├── goto_event.py
│ │ ├── goto_event.run
│ │ ├── grandchild_threads.c
│ │ ├── grandchild_threads_main_running.c
│ │ ├── grandchild_threads_parent_alive.c
│ │ ├── grandchild_threads_thread_running.c
│ │ ├── group_stop_thundering_herd.c
│ │ ├── hardlink_mmapped_files.run
│ │ ├── hbreak.py
│ │ ├── hbreak.run
│ │ ├── hello.c
│ │ ├── hello.run
│ │ ├── history.c
│ │ ├── history.py
│ │ ├── history.run
│ │ ├── hooks.c
│ │ ├── hooks.run
│ │ ├── ignore_nested.c
│ │ ├── ignore_nested.run
│ │ ├── ignored_async_usr1.c
│ │ ├── ignored_async_usr1.run
│ │ ├── ignored_sigsegv.c
│ │ ├── ignored_sigsegv.run
│ │ ├── immediate_restart.c
│ │ ├── immediate_restart.py
│ │ ├── immediate_restart.run
│ │ ├── inotify.c
│ │ ├── int3.c
│ │ ├── interrupt.c
│ │ ├── interrupt.py
│ │ ├── interrupt.run
│ │ ├── intr_futex_wait_restart.c
│ │ ├── intr_poll.c
│ │ ├── intr_ppoll.c
│ │ ├── intr_pselect.c
│ │ ├── intr_ptrace_decline.c
│ │ ├── intr_ptrace_decline.run
│ │ ├── intr_read_no_restart.c
│ │ ├── intr_read_restart.c
│ │ ├── intr_sleep.c
│ │ ├── intr_sleep_no_restart.c
│ │ ├── invalid_exec.c
│ │ ├── invalid_fcntl.c
│ │ ├── invalid_interpreter.c
│ │ ├── invalid_interpreter.py
│ │ ├── invalid_interpreter.run
│ │ ├── invalid_ioctl.c
│ │ ├── invalid_jump.c
│ │ ├── invalid_jump.py
│ │ ├── invalid_jump.run
│ │ ├── io.c
│ │ ├── io_uring.c
│ │ ├── ioctl.c
│ │ ├── ioctl_blk.c
│ │ ├── ioctl_br.c
│ │ ├── ioctl_fb.c
│ │ ├── ioctl_fs.c
│ │ ├── ioctl_hidraw.c
│ │ ├── ioctl_pty.c
│ │ ├── ioctl_sg.c
│ │ ├── ioctl_tty.c
│ │ ├── ioctl_ttyS.c
│ │ ├── ioctl_vt.c
│ │ ├── ioprio.c
│ │ ├── jit_proc_mem.c
│ │ ├── jit_proc_mem.py
│ │ ├── jit_proc_mem.run
│ │ ├── join_threads.c
│ │ ├── joystick.c
│ │ ├── kcmp.c
│ │ ├── keyctl.c
│ │ ├── kill_newborn.c
│ │ ├── kill_ptracee.c
│ │ ├── landlock.c
│ │ ├── large_file.run
│ │ ├── large_hole.c
│ │ ├── large_write_deadlock.c
│ │ ├── legacy_ugid.c
│ │ ├── link.c
│ │ ├── link.run
│ │ ├── madvise.c
│ │ ├── madvise_dontfork.c
│ │ ├── madvise_dontfork.py
│ │ ├── madvise_dontfork.run
│ │ ├── madvise_dontneed_private.c
│ │ ├── madvise_fracture_flags.c
│ │ ├── madvise_fracture_flags.run
│ │ ├── madvise_free.c
│ │ ├── madvise_misc.c
│ │ ├── madvise_remove.c
│ │ ├── madvise_wipeonfork.c
│ │ ├── main_thread_exit.c
│ │ ├── main_thread_exit.py
│ │ ├── main_thread_exit.run
│ │ ├── many_yields.c
│ │ ├── many_yields.run
│ │ ├── map_fixed.c
│ │ ├── map_shared_syscall.c
│ │ ├── membarrier.c
│ │ ├── memfd_create.c
│ │ ├── memfd_create_dotnet_huge_mapping.c
│ │ ├── memfd_create_efault.c
│ │ ├── memfd_create_shared.c
│ │ ├── memfd_create_shared_huge.c
│ │ ├── mincore.c
│ │ ├── mknod.c
│ │ ├── mlock.c
│ │ ├── mlock_madvise.c
│ │ ├── mmap_adjacent_to_rr_usage.c
│ │ ├── mmap_fd_reuse_checkpoint.c
│ │ ├── mmap_fd_reuse_checkpoint.py
│ │ ├── mmap_fd_reuse_checkpoint.run
│ │ ├── mmap_huge.c
│ │ ├── mmap_private.c
│ │ ├── mmap_private_grow_under_map.c
│ │ ├── mmap_recycle.c
│ │ ├── mmap_replace_most_mappings.c
│ │ ├── mmap_replace_most_mappings.py
│ │ ├── mmap_replace_most_mappings.run
│ │ ├── mmap_ro.c
│ │ ├── mmap_self_maps_shared.c
│ │ ├── mmap_shared.c
│ │ ├── mmap_shared_dev_zero.c
│ │ ├── mmap_shared_extern.c
│ │ ├── mmap_shared_extern.run
│ │ ├── mmap_shared_grow.c
│ │ ├── mmap_shared_grow_under_map.c
│ │ ├── mmap_shared_multiple.c
│ │ ├── mmap_shared_prot.c
│ │ ├── mmap_shared_prot.py
│ │ ├── mmap_shared_prot.run
│ │ ├── mmap_shared_subpage.c
│ │ ├── mmap_shared_write.c
│ │ ├── mmap_shared_write_exec_race.c
│ │ ├── mmap_shared_write_exec_race.run
│ │ ├── mmap_shared_write_fork.c
│ │ ├── mmap_short_file.c
│ │ ├── mmap_tmpfs.c
│ │ ├── mmap_tmpfs.run
│ │ ├── mmap_write.c
│ │ ├── mmap_write.run
│ │ ├── mmap_write_complex.c
│ │ ├── mmap_write_private.c
│ │ ├── mmap_write_private.run
│ │ ├── mmap_zero_size_fd.c
│ │ ├── mount_ns_exec.c
│ │ ├── mount_ns_exec2.c
│ │ ├── mount_ns_execveat.c
│ │ ├── mprotect.c
│ │ ├── mprotect_checkpoint.c
│ │ ├── mprotect_checkpoint.py
│ │ ├── mprotect_checkpoint.run
│ │ ├── mprotect_growsdown.c
│ │ ├── mprotect_growsdown.run
│ │ ├── mprotect_heterogenous.c
│ │ ├── mprotect_none.c
│ │ ├── mprotect_stack.c
│ │ ├── mprotect_step.py
│ │ ├── mprotect_step.run
│ │ ├── mprotect_syscallbuf_overflow.c
│ │ ├── mprotect_syscallbuf_overflow.run
│ │ ├── mq.c
│ │ ├── mremap.c
│ │ ├── mremap_after_coalesce.c
│ │ ├── mremap_dontunmap.c
│ │ ├── mremap_grow.c
│ │ ├── mremap_grow_shared.c
│ │ ├── mremap_non_page_size.c
│ │ ├── mremap_overwrite.c
│ │ ├── mremap_private_grow_under_map.c
│ │ ├── mremap_shrink.c
│ │ ├── msg.c
│ │ ├── msg_trunc.c
│ │ ├── msync.c
│ │ ├── mtio.c
│ │ ├── multiple_pending_signals.c
│ │ ├── multiple_pending_signals_sequential.c
│ │ ├── munmap_discontinuous.c
│ │ ├── munmap_segv.c
│ │ ├── mutex_pi_stress.c
│ │ ├── mutex_pi_stress.run
│ │ ├── nanosleep.c
│ │ ├── nested_detach.run
│ │ ├── nested_detach_kill.run
│ │ ├── nested_detach_kill_stuck.c
│ │ ├── nested_detach_kill_stuck.run
│ │ ├── nested_detach_stop.run
│ │ ├── nested_detach_wait.c
│ │ ├── nested_detach_wait.run
│ │ ├── nested_release.run
│ │ ├── nested_release_exit_code.run
│ │ ├── nested_release_signal.c
│ │ ├── nested_release_signal.run
│ │ ├── netfilter.c
│ │ ├── netfilter_ipv6.c
│ │ ├── netlink_mmap_disable.c
│ │ ├── no_mask_timeslice.c
│ │ ├── nscd.c
│ │ ├── nsutils.h
│ │ ├── numa.c
│ │ ├── open_tree.c
│ │ ├── openat2.c
│ │ ├── openat_null.c
│ │ ├── orphan_process.c
│ │ ├── overflow_branch_counter.c
│ │ ├── overflow_branch_counter.run
│ │ ├── pack.c
│ │ ├── pack.run
│ │ ├── pack_dir.run
│ │ ├── packet_mmap_disable.c
│ │ ├── parent_no_break_child_bkpt.py
│ │ ├── parent_no_break_child_bkpt.run
│ │ ├── parent_no_stop_child_crash.py
│ │ ├── parent_no_stop_child_crash.run
│ │ ├── patch_page_end.c
│ │ ├── patch_page_end.run
│ │ ├── pause.c
│ │ ├── perf_event.c
│ │ ├── perf_event_ioctl.c
│ │ ├── perf_event_mmap.c
│ │ ├── personality.c
│ │ ├── personality_chaos.run
│ │ ├── pid_ns_kill_child.c
│ │ ├── pid_ns_kill_child_threads.c
│ │ ├── pid_ns_kill_child_zombie.c
│ │ ├── pid_ns_kill_threads.c
│ │ ├── pid_ns_kill_threads_exit_wait.c
│ │ ├── pid_ns_reap.c
│ │ ├── pid_ns_segv.c
│ │ ├── pid_ns_shutdown.c
│ │ ├── pidfd.c
│ │ ├── pidfd_getfd.c
│ │ ├── pivot_root.c
│ │ ├── poll_sig_race.c
│ │ ├── post_exec_fpu_regs.py
│ │ ├── post_exec_fpu_regs.run
│ │ ├── ppoll.c
│ │ ├── ppoll_deliver.c
│ │ ├── prctl.c
│ │ ├── prctl_anon_vma_name.c
│ │ ├── prctl_auxv.c
│ │ ├── prctl_caps.c
│ │ ├── prctl_deathsig.c
│ │ ├── prctl_mdwe.c
│ │ ├── prctl_name.c
│ │ ├── prctl_short_name.c
│ │ ├── prctl_speculation_ctrl.c
│ │ ├── prctl_tsc.c
│ │ ├── prctl_tsc.run
│ │ ├── prctl_tsc_supported.c
│ │ ├── priority.c
│ │ ├── priority.run
│ │ ├── privileged_net_ioctl.c
│ │ ├── proc_fds.c
│ │ ├── proc_maps.py
│ │ ├── proc_maps.run
│ │ ├── proc_mem.c
│ │ ├── protect_rr_fds.c
│ │ ├── prw.c
│ │ ├── pthread_condvar_locking.c
│ │ ├── pthread_mutex_timedlock.c
│ │ ├── pthread_pi_mutex.c
│ │ ├── pthread_rwlocks.c
│ │ ├── ptrace_attach_null_status.c
│ │ ├── ptrace_attach_running.c
│ │ ├── ptrace_attach_sleeping.c
│ │ ├── ptrace_attach_stopped.c
│ │ ├── ptrace_attach_syscall.c
│ │ ├── ptrace_attach_thread_running.c
│ │ ├── ptrace_breakpoint.c
│ │ ├── ptrace_change_patched_syscall.c
│ │ ├── ptrace_exec.c
│ │ ├── ptrace_group_stop.c
│ │ ├── ptrace_kill_grandtracee.c
│ │ ├── ptrace_remote_unmap.c
│ │ ├── ptrace_remote_unmap.py
│ │ ├── ptrace_remote_unmap.run
│ │ ├── ptrace_seize.c
│ │ ├── ptrace_sigchld.c
│ │ ├── ptrace_sigchld_blocked.c
│ │ ├── ptrace_signals.c
│ │ ├── ptrace_singlestep.c
│ │ ├── ptrace_syscall.c
│ │ ├── ptrace_syscall_clone_untraced.c
│ │ ├── ptrace_sysemu_syscall.c
│ │ ├── ptrace_trace_clone.c
│ │ ├── ptrace_trace_exit.c
│ │ ├── ptrace_traceme.c
│ │ ├── ptrace_traceme_thread.c
│ │ ├── ptrace_util.h
│ │ ├── ptrace_waiter_thread.c
│ │ ├── ptracer_death.c
│ │ ├── ptracer_death_multithread.c
│ │ ├── ptracer_death_multithread_peer.c
│ │ ├── quotactl.c
│ │ ├── read_bad_mem.py
│ │ ├── read_bad_mem.run
│ │ ├── read_big_struct.c
│ │ ├── read_big_struct.py
│ │ ├── read_big_struct.run
│ │ ├── read_large.c
│ │ ├── read_nothing.c
│ │ ├── read_oversize.c
│ │ ├── readdir.c
│ │ ├── readlink.c
│ │ ├── readlinkat.c
│ │ ├── readv.c
│ │ ├── record_replay.run
│ │ ├── record_replay_subject.c
│ │ ├── recvfrom.c
│ │ ├── redzone_integrity.c
│ │ ├── remove_latest_trace.c
│ │ ├── remove_latest_trace.run
│ │ ├── remove_watchpoint.py
│ │ ├── remove_watchpoint.run
│ │ ├── rename.c
│ │ ├── replay_overlarge_event_number.run
│ │ ├── replay_serve_files.py
│ │ ├── replay_serve_files.run
│ │ ├── restart_abnormal_exit.c
│ │ ├── restart_abnormal_exit.py
│ │ ├── restart_abnormal_exit.run
│ │ ├── restart_breakpoint.py
│ │ ├── restart_diversion.py
│ │ ├── restart_diversion.run
│ │ ├── restart_finish.py
│ │ ├── restart_invalid_checkpoint.py
│ │ ├── restart_invalid_checkpoint.run
│ │ ├── restart_unstable.py
│ │ ├── restart_unstable.run
│ │ ├── reverse_alarm.py
│ │ ├── reverse_alarm.run
│ │ ├── reverse_continue_breakpoint.c
│ │ ├── reverse_continue_breakpoint.py
│ │ ├── reverse_continue_breakpoint.run
│ │ ├── reverse_continue_exec_subprocess.py
│ │ ├── reverse_continue_exec_subprocess.run
│ │ ├── reverse_continue_fork_subprocess.py
│ │ ├── reverse_continue_fork_subprocess.run
│ │ ├── reverse_continue_int3.py
│ │ ├── reverse_continue_int3.run
│ │ ├── reverse_continue_multiprocess.c
│ │ ├── reverse_continue_multiprocess.py
│ │ ├── reverse_continue_multiprocess.run
│ │ ├── reverse_continue_process_signal.c
│ │ ├── reverse_continue_process_signal.py
│ │ ├── reverse_continue_process_signal.run
│ │ ├── reverse_continue_start.py
│ │ ├── reverse_continue_start.run
│ │ ├── reverse_finish.py
│ │ ├── reverse_finish.run
│ │ ├── reverse_many_breakpoints.c
│ │ ├── reverse_many_breakpoints.py
│ │ ├── reverse_many_breakpoints.run
│ │ ├── reverse_step_breakpoint.py
│ │ ├── reverse_step_breakpoint.run
│ │ ├── reverse_step_long.c
│ │ ├── reverse_step_long.py
│ │ ├── reverse_step_long.run
│ │ ├── reverse_step_signal.py
│ │ ├── reverse_step_signal.run
│ │ ├── reverse_step_threads.c
│ │ ├── reverse_step_threads.py
│ │ ├── reverse_step_threads.run
│ │ ├── reverse_step_threads2.py
│ │ ├── reverse_step_threads2.run
│ │ ├── reverse_step_threads_break.c
│ │ ├── reverse_step_threads_break.py
│ │ ├── reverse_step_threads_break.run
│ │ ├── reverse_watchpoint.py
│ │ ├── reverse_watchpoint.run
│ │ ├── reverse_watchpoint_syscall.py
│ │ ├── reverse_watchpoint_syscall.run
│ │ ├── rlimit.c
│ │ ├── robust_futex.c
│ │ ├── rr_ps.c
│ │ ├── rr_ps.run
│ │ ├── rr_ps_ns.c
│ │ ├── rr_ps_ns.run
│ │ ├── rseq.c
│ │ ├── rseq.py
│ │ ├── rseq.run
│ │ ├── rseq_cpu_id_reset.c
│ │ ├── rseq_cpu_id_reset_longrunning.c
│ │ ├── rseq_cpu_id_reset_longrunning.py
│ │ ├── rseq_cpu_id_reset_longrunning.run
│ │ ├── rseq_syscallbuf.c
│ │ ├── rseq_syscallbuf.run
│ │ ├── run_end.py
│ │ ├── run_end.run
│ │ ├── run_in_function.py
│ │ ├── run_in_function.run
│ │ ├── rusage.c
│ │ ├── samask.c
│ │ ├── sanity.py
│ │ ├── sanity.run
│ │ ├── save_data_fd.c
│ │ ├── sched_attr.c
│ │ ├── sched_setaffinity.c
│ │ ├── sched_setparam.c
│ │ ├── sched_yield.c
│ │ ├── sched_yield_to_lower_priority.c
│ │ ├── scm_rights.c
│ │ ├── scratch_read.c
│ │ ├── search.c
│ │ ├── search.py
│ │ ├── search.run
│ │ ├── seccomp.c
│ │ ├── seccomp_blocks_rr.c
│ │ ├── seccomp_blocks_rr.run
│ │ ├── seccomp_clone_fail.c
│ │ ├── seccomp_cloning.c
│ │ ├── seccomp_desched.c
│ │ ├── seccomp_kill_exit.c
│ │ ├── seccomp_madvise.c
│ │ ├── seccomp_null.c
│ │ ├── seccomp_open.c
│ │ ├── seccomp_open.run
│ │ ├── seccomp_signals.c
│ │ ├── seccomp_signals.run
│ │ ├── seccomp_sigsys_args.c
│ │ ├── seccomp_sigsys_sigtrap.c
│ │ ├── seccomp_sigsys_syscallbuf.c
│ │ ├── seccomp_tsync.c
│ │ ├── seccomp_veto_exec.c
│ │ ├── seekticks.py
│ │ ├── seekticks.run
│ │ ├── seekticks_threads.c
│ │ ├── seekticks_threads.py
│ │ ├── seekticks_threads.run
│ │ ├── segfault.c
│ │ ├── segfault.run
│ │ ├── self_shebang.c
│ │ ├── self_sigint.c
│ │ ├── sem.c
│ │ ├── send_block.c
│ │ ├── sendfile.c
│ │ ├── set_ptracer.c
│ │ ├── set_tid_address.c
│ │ ├── setgid.c
│ │ ├── setgroups.c
│ │ ├── setitimer.c
│ │ ├── setsid.c
│ │ ├── setuid.c
│ │ ├── setuid.run
│ │ ├── shared_exec.c
│ │ ├── shared_map.c
│ │ ├── shared_map.run
│ │ ├── shared_monitor.c
│ │ ├── shared_offset.c
│ │ ├── shared_persistent_file.c
│ │ ├── shared_persistent_file.py
│ │ ├── shared_persistent_file.run
│ │ ├── shared_write.c
│ │ ├── shm.c
│ │ ├── shm_checkpoint.py
│ │ ├── shm_checkpoint.run
│ │ ├── shm_unmap.c
│ │ ├── sigaction_old.c
│ │ ├── sigaltstack.c
│ │ ├── sigchld_interrupt_signal.c
│ │ ├── sigcont.c
│ │ ├── sigcont_threaded.c
│ │ ├── sigframe_grow_stack.c
│ │ ├── sighandler_bad_rsp_sigsegv.c
│ │ ├── sighandler_fork.c
│ │ ├── sighandler_mask.c
│ │ ├── sigill.c
│ │ ├── siginfo.py
│ │ ├── siginfo.run
│ │ ├── signal_checkpoint.py
│ │ ├── signal_checkpoint.run
│ │ ├── signal_deferred.c
│ │ ├── signal_during_preload_init.c
│ │ ├── signal_frame.c
│ │ ├── signal_numbers.c
│ │ ├── signal_numbers.py
│ │ ├── signal_numbers.run
│ │ ├── signal_stop.py
│ │ ├── signal_stop.run
│ │ ├── signal_unstoppable.c
│ │ ├── signalfd.c
│ │ ├── sigprocmask.c
│ │ ├── sigprocmask_ensure_delivery.c
│ │ ├── sigprocmask_evil.c
│ │ ├── sigprocmask_exec.c
│ │ ├── sigprocmask_in_syscallbuf_sighandler.c
│ │ ├── sigprocmask_race.c
│ │ ├── sigprocmask_race.run
│ │ ├── sigprocmask_rr_sigs.c
│ │ ├── sigprocmask_rr_sigs_nondefault.c
│ │ ├── sigprocmask_rr_sigs_nondefault.run
│ │ ├── sigprocmask_syscallbuf.c
│ │ ├── sigprof.c
│ │ ├── sigpwr.c
│ │ ├── sigqueueinfo.c
│ │ ├── sigreturn_reg.c
│ │ ├── sigreturnmask.c
│ │ ├── sigrt.c
│ │ ├── sigstop.c
│ │ ├── sigstop2.c
│ │ ├── sigsuspend.c
│ │ ├── sigtrap.c
│ │ ├── sigtrap_process_group.c
│ │ ├── simple.c
│ │ ├── simple.run
│ │ ├── simple_script.run
│ │ ├── simple_script.sh
│ │ ├── simple_script_debug.py
│ │ ├── simple_script_debug.run
│ │ ├── simple_threads_stress.c
│ │ ├── simple_winch.py
│ │ ├── simple_winch.run
│ │ ├── sioc.c
│ │ ├── small_holes.c
│ │ ├── sock_name_null.c
│ │ ├── sock_names_opts.c
│ │ ├── spinlock_priorities.c
│ │ ├── splice.c
│ │ ├── stack_growth.c
│ │ ├── stack_growth.py
│ │ ├── stack_growth.run
│ │ ├── stack_growth_after_syscallbuf.c
│ │ ├── stack_growth_syscallbuf.c
│ │ ├── stack_growth_with_guard.c
│ │ ├── stack_invalid.c
│ │ ├── stack_overflow.c
│ │ ├── stack_overflow_altstack.c
│ │ ├── stack_overflow_debug.py
│ │ ├── stack_overflow_debug.run
│ │ ├── stack_overflow_with_guard.c
│ │ ├── statfs.c
│ │ ├── statx.c
│ │ ├── std_random.cc
│ │ ├── stdout_child.c
│ │ ├── stdout_cloexec.c
│ │ ├── stdout_dup.c
│ │ ├── stdout_redirect.c
│ │ ├── step1.py
│ │ ├── step1.run
│ │ ├── step_into_lib.c
│ │ ├── step_into_lib.py
│ │ ├── step_into_lib.run
│ │ ├── step_signal.py
│ │ ├── step_signal.run
│ │ ├── step_thread.c
│ │ ├── step_thread.py
│ │ ├── step_thread.run
│ │ ├── stray_time_slice_signal.c
│ │ ├── stray_time_slice_signal.run
│ │ ├── strict_priorities.c
│ │ ├── strict_priorities.run
│ │ ├── subprocess_exit_ends_session.py
│ │ ├── subprocess_exit_ends_session.run
│ │ ├── switch_processes.py
│ │ ├── switch_processes.run
│ │ ├── switch_read.c
│ │ ├── symlink.c
│ │ ├── sync.c
│ │ ├── sync_file_range.c
│ │ ├── syscall_bp.c
│ │ ├── syscall_in_writable_mem.c
│ │ ├── syscallbuf_fd_disabling.c
│ │ ├── syscallbuf_fd_disabling.run
│ │ ├── syscallbuf_signal_blocking.c
│ │ ├── syscallbuf_signal_blocking_read.c
│ │ ├── syscallbuf_signal_blocking_read.run
│ │ ├── syscallbuf_signal_reset.c
│ │ ├── syscallbuf_sigstop.c
│ │ ├── syscallbuf_timeslice.c
│ │ ├── syscallbuf_timeslice2.c
│ │ ├── syscallbuf_timeslice2_250.run
│ │ ├── syscallbuf_timeslice_250.run
│ │ ├── sysconf.c
│ │ ├── sysconf_conf.c
│ │ ├── sysconf_onln.c
│ │ ├── sysconf_onln.run
│ │ ├── sysctl.c
│ │ ├── sysemu_singlestep.c
│ │ ├── sysinfo.c
│ │ ├── syslog.c
│ │ ├── target_fork.c
│ │ ├── target_fork.run
│ │ ├── target_process.c
│ │ ├── target_process.run
│ │ ├── tcp_sockets.c
│ │ ├── tcp_sockets.run
│ │ ├── term_nonmain.c
│ │ ├── term_nonmain.run
│ │ ├── term_rr.c
│ │ ├── term_rr.py
│ │ ├── term_rr.run
│ │ ├── term_rr_ok.c
│ │ ├── term_rr_ok.run
│ │ ├── term_trace_cpu.run
│ │ ├── term_trace_reset.c
│ │ ├── term_trace_reset.run
│ │ ├── term_trace_syscall.c
│ │ ├── term_trace_syscall.run
│ │ ├── test_lib.c
│ │ ├── test_setup.gdb
│ │ ├── test_setup.lldb
│ │ ├── tgkill.c
│ │ ├── thread_exit_signal.c
│ │ ├── thread_exit_signal.run
│ │ ├── thread_open_race.c
│ │ ├── thread_open_race.run
│ │ ├── thread_stress.c
│ │ ├── thread_stress.run
│ │ ├── thread_yield.c
│ │ ├── threaded_syscall_spam.c
│ │ ├── threaded_syscall_spam.run
│ │ ├── threads.c
│ │ ├── threads.run
│ │ ├── tick0.c
│ │ ├── tick0.py
│ │ ├── tick0.run
│ │ ├── tick0_less.run
│ │ ├── timer.c
│ │ ├── timerfd.c
│ │ ├── times.c
│ │ ├── tls.c
│ │ ├── tls.py
│ │ ├── tls.run
│ │ ├── trace_events.run
│ │ ├── trace_version.run
│ │ ├── tracee_unmap_vdso.c
│ │ ├── tracee_unmap_vdso.run
│ │ ├── traceinfo.run
│ │ ├── transient_fault_replay_all.run
│ │ ├── truncate_temp.c
│ │ ├── tty.run
│ │ ├── tty_tostop.c
│ │ ├── ttyname.c
│ │ ├── ttyname.run
│ │ ├── tun.c
│ │ ├── two_signals_with_mask.c
│ │ ├── ulimit_low.c
│ │ ├── uname.c
│ │ ├── unexpected_exit.c
│ │ ├── unexpected_exit_execve.c
│ │ ├── unexpected_exit_execve_twice.c
│ │ ├── unexpected_exit_pid_ns.c
│ │ ├── unexpected_stack_growth.c
│ │ ├── unexpected_stack_growth.py
│ │ ├── unexpected_stack_growth.run
│ │ ├── unicode.c
│ │ ├── unicode.py
│ │ ├── unicode.run
│ │ ├── unjoined_thread.c
│ │ ├── unmap_vdso.run
│ │ ├── unshare.c
│ │ ├── unwind_on_signal.py
│ │ ├── unwind_on_signal.run
│ │ ├── unwind_rr_page.cc
│ │ ├── usb.c
│ │ ├── user_ignore_sig.c
│ │ ├── user_ignore_sig.run
│ │ ├── userfaultfd.c
│ │ ├── util.h
│ │ ├── util.py
│ │ ├── util.sh
│ │ ├── util_internal.h
│ │ ├── util_syscall.h
│ │ ├── utimes.c
│ │ ├── v4l_dmabuf.c
│ │ ├── vdso_clock_gettime_stack.c
│ │ ├── vdso_clock_gettime_stack.run
│ │ ├── vdso_gettimeofday_stack.c
│ │ ├── vdso_gettimeofday_stack.run
│ │ ├── vdso_parts.c
│ │ ├── vdso_stack.py
│ │ ├── vdso_symbols.c
│ │ ├── vdso_time_stack.c
│ │ ├── vdso_time_stack.run
│ │ ├── vfork.c
│ │ ├── vfork.run
│ │ ├── vfork_break_parent.py
│ │ ├── vfork_break_parent.run
│ │ ├── vfork_done.c
│ │ ├── vfork_done_clone.run
│ │ ├── vfork_exec.run
│ │ ├── vfork_flush.c
│ │ ├── vfork_read_clone_stress.c
│ │ ├── vfork_read_clone_stress.py
│ │ ├── vfork_read_clone_stress.run
│ │ ├── vfork_setopts.c
│ │ ├── vfork_shared.c
│ │ ├── video_capture.c
│ │ ├── vm_readv_writev.c
│ │ ├── vsyscall.c
│ │ ├── vsyscall_reverse_next.c
│ │ ├── vsyscall_reverse_next.py
│ │ ├── vsyscall_reverse_next.run
│ │ ├── vsyscall_singlestep.run
│ │ ├── vsyscall_timeslice.c
│ │ ├── wait.c
│ │ ├── wait_for_all.c
│ │ ├── wait_for_all.run
│ │ ├── wait_sigstop.c
│ │ ├── watch_code.py
│ │ ├── watch_code.run
│ │ ├── watchpoint.c
│ │ ├── watchpoint.py
│ │ ├── watchpoint.run
│ │ ├── watchpoint_at_sched.c
│ │ ├── watchpoint_at_sched.py
│ │ ├── watchpoint_at_sched.run
│ │ ├── watchpoint_before_signal.c
│ │ ├── watchpoint_before_signal.py
│ │ ├── watchpoint_before_signal.run
│ │ ├── watchpoint_cond.py
│ │ ├── watchpoint_cond.run
│ │ ├── watchpoint_no_progress.c
│ │ ├── watchpoint_no_progress.py
│ │ ├── watchpoint_no_progress.run
│ │ ├── watchpoint_size_change.c
│ │ ├── watchpoint_size_change.py
│ │ ├── watchpoint_size_change.run
│ │ ├── watchpoint_step.py
│ │ ├── watchpoint_step.run
│ │ ├── watchpoint_syscall.c
│ │ ├── watchpoint_syscall.py
│ │ ├── watchpoint_syscall.run
│ │ ├── watchpoint_unaligned.c
│ │ ├── watchpoint_unaligned.py
│ │ ├── watchpoint_unaligned.run
│ │ ├── watchpoint_unaligned2.c
│ │ ├── watchpoint_unaligned2.py
│ │ ├── watchpoint_unaligned2.run
│ │ ├── when.py
│ │ ├── when.run
│ │ ├── when_threads.c
│ │ ├── when_threads.py
│ │ ├── when_threads.run
│ │ ├── write_race.c
│ │ ├── writev.c
│ │ ├── x86/
│ │ │ ├── arch_prctl_x86.c
│ │ │ ├── arch_prctl_xstate.c
│ │ │ ├── blocked_sigsegv.c
│ │ │ ├── blocked_sigsegv.run
│ │ │ ├── break_rdtsc.run
│ │ │ ├── chew_cpu_cpuid.c
│ │ │ ├── cpuid.c
│ │ │ ├── cpuid.run
│ │ │ ├── cpuid_loop.S
│ │ │ ├── cpuid_same_state.c
│ │ │ ├── cpuid_singlestep.c
│ │ │ ├── cpuid_singlestep.py
│ │ │ ├── cpuid_singlestep.run
│ │ │ ├── cross_arch.c
│ │ │ ├── deferred_patch.c
│ │ │ ├── diversion_rdtsc.c
│ │ │ ├── diversion_rdtsc.py
│ │ │ ├── diversion_rdtsc.run
│ │ │ ├── explicit_checkpoints.c
│ │ │ ├── explicit_checkpoints.py
│ │ │ ├── explicit_checkpoints.run
│ │ │ ├── fault_in_code_page.c
│ │ │ ├── fxregs.c
│ │ │ ├── fxregs.py
│ │ │ ├── fxregs.run
│ │ │ ├── gdb_avx512.c
│ │ │ ├── gdb_avx512.py
│ │ │ ├── gdb_avx512.run
│ │ │ ├── hle.c
│ │ │ ├── hlt.c
│ │ │ ├── int3_ok.c
│ │ │ ├── int3_ok.run
│ │ │ ├── ioperm.c
│ │ │ ├── iopl.c
│ │ │ ├── la57.c
│ │ │ ├── lsl.c
│ │ │ ├── modify_ldt.c
│ │ │ ├── morestack_unwind.c
│ │ │ ├── morestack_unwind.py
│ │ │ ├── morestack_unwind.run
│ │ │ ├── old_fork.c
│ │ │ ├── patch_40_80_f6_81.c
│ │ │ ├── patch_40_80_f6_81.run
│ │ │ ├── patch_pc_rel.c
│ │ │ ├── patch_pc_rel.run
│ │ │ ├── patch_syscall_restart.c
│ │ │ ├── pkeys.c
│ │ │ ├── ptrace.c
│ │ │ ├── ptrace_debug_regs.c
│ │ │ ├── ptrace_exec32.c
│ │ │ ├── ptrace_sysemu.c
│ │ │ ├── ptrace_tls.c
│ │ │ ├── rdtsc.c
│ │ │ ├── rdtsc_flags.c
│ │ │ ├── rdtsc_interfering.c
│ │ │ ├── rdtsc_interfering.run
│ │ │ ├── rdtsc_loop.c
│ │ │ ├── rdtsc_loop.run
│ │ │ ├── rdtsc_loop2.c
│ │ │ ├── rdtsc_loop2.run
│ │ │ ├── set_thread_area.c
│ │ │ ├── signal_xmm_state.c
│ │ │ ├── sigreturn.c
│ │ │ ├── sigreturn_checksum.run
│ │ │ ├── singlestep_pushf.c
│ │ │ ├── singlestep_pushf.py
│ │ │ ├── singlestep_pushf.run
│ │ │ ├── step_rdtsc.py
│ │ │ ├── step_rdtsc.run
│ │ │ ├── string_instructions.c
│ │ │ ├── string_instructions.py
│ │ │ ├── string_instructions.run
│ │ │ ├── string_instructions_async_signals.c
│ │ │ ├── string_instructions_async_signals.run
│ │ │ ├── string_instructions_async_signals_shared.c
│ │ │ ├── string_instructions_async_signals_shared.run
│ │ │ ├── string_instructions_break.py
│ │ │ ├── string_instructions_break.run
│ │ │ ├── string_instructions_multiwatch.c
│ │ │ ├── string_instructions_multiwatch.py
│ │ │ ├── string_instructions_multiwatch.run
│ │ │ ├── string_instructions_replay.c
│ │ │ ├── string_instructions_replay.run
│ │ │ ├── string_instructions_replay_quirk.py
│ │ │ ├── string_instructions_replay_quirk.run
│ │ │ ├── string_instructions_singlestep_fastforward.c
│ │ │ ├── string_instructions_singlestep_fastforward.run
│ │ │ ├── string_instructions_watch.c
│ │ │ ├── string_instructions_watch.py
│ │ │ ├── string_instructions_watch.run
│ │ │ ├── syscallbuf_branch_check.c
│ │ │ ├── syscallbuf_branch_check.run
│ │ │ ├── syscallbuf_rdtsc_page.c
│ │ │ ├── syscallbuf_rdtsc_page.run
│ │ │ ├── sysfs.c
│ │ │ ├── util.h
│ │ │ ├── util.sh
│ │ │ ├── watchpoint_error.c
│ │ │ ├── watchpoint_error.py
│ │ │ ├── watchpoint_error.run
│ │ │ └── x87env.c
│ │ ├── xattr.c
│ │ └── zero_length_read.c
│ ├── test-monitor/
│ │ └── test-monitor.cc
│ ├── util.cc
│ └── util.h
└── third-party/
├── blake2/
│ ├── README
│ ├── blake2-impl.h
│ ├── blake2.h
│ ├── neon/
│ │ ├── blake2b-load-neon.h
│ │ ├── blake2b-neon.c
│ │ ├── blake2b-round.h
│ │ └── blake2b.c
│ └── sse/
│ ├── blake2-config.h
│ ├── blake2b-load-sse2.h
│ ├── blake2b-load-sse41.h
│ ├── blake2b-round.h
│ └── blake2b.c
├── brotli/
│ ├── README.md
│ ├── common/
│ │ ├── constants.c
│ │ ├── constants.h
│ │ ├── context.c
│ │ ├── context.h
│ │ ├── dictionary.bin.br
│ │ ├── dictionary.c
│ │ ├── dictionary.h
│ │ ├── platform.c
│ │ ├── platform.h
│ │ ├── shared_dictionary.c
│ │ ├── shared_dictionary_internal.h
│ │ ├── transform.c
│ │ ├── transform.h
│ │ └── version.h
│ ├── dec/
│ │ ├── bit_reader.c
│ │ ├── bit_reader.h
│ │ ├── decode.c
│ │ ├── huffman.c
│ │ ├── huffman.h
│ │ ├── prefix.h
│ │ ├── state.c
│ │ └── state.h
│ ├── enc/
│ │ ├── backward_references.c
│ │ ├── backward_references.h
│ │ ├── backward_references_hq.c
│ │ ├── backward_references_hq.h
│ │ ├── backward_references_inc.h
│ │ ├── bit_cost.c
│ │ ├── bit_cost.h
│ │ ├── bit_cost_inc.h
│ │ ├── block_encoder_inc.h
│ │ ├── block_splitter.c
│ │ ├── block_splitter.h
│ │ ├── block_splitter_inc.h
│ │ ├── brotli_bit_stream.c
│ │ ├── brotli_bit_stream.h
│ │ ├── cluster.c
│ │ ├── cluster.h
│ │ ├── cluster_inc.h
│ │ ├── command.c
│ │ ├── command.h
│ │ ├── compound_dictionary.c
│ │ ├── compound_dictionary.h
│ │ ├── compress_fragment.c
│ │ ├── compress_fragment.h
│ │ ├── compress_fragment_two_pass.c
│ │ ├── compress_fragment_two_pass.h
│ │ ├── dictionary_hash.c
│ │ ├── dictionary_hash.h
│ │ ├── encode.c
│ │ ├── encoder_dict.c
│ │ ├── encoder_dict.h
│ │ ├── entropy_encode.c
│ │ ├── entropy_encode.h
│ │ ├── entropy_encode_static.h
│ │ ├── fast_log.c
│ │ ├── fast_log.h
│ │ ├── find_match_length.h
│ │ ├── hash.h
│ │ ├── hash_composite_inc.h
│ │ ├── hash_forgetful_chain_inc.h
│ │ ├── hash_longest_match64_inc.h
│ │ ├── hash_longest_match_inc.h
│ │ ├── hash_longest_match_quickly_inc.h
│ │ ├── hash_rolling_inc.h
│ │ ├── hash_to_binary_tree_inc.h
│ │ ├── histogram.c
│ │ ├── histogram.h
│ │ ├── histogram_inc.h
│ │ ├── literal_cost.c
│ │ ├── literal_cost.h
│ │ ├── memory.c
│ │ ├── memory.h
│ │ ├── metablock.c
│ │ ├── metablock.h
│ │ ├── metablock_inc.h
│ │ ├── params.h
│ │ ├── prefix.h
│ │ ├── quality.h
│ │ ├── ringbuffer.h
│ │ ├── state.h
│ │ ├── static_dict.c
│ │ ├── static_dict.h
│ │ ├── static_dict_lut.h
│ │ ├── utf8_util.c
│ │ ├── utf8_util.h
│ │ └── write_bits.h
│ └── include/
│ └── brotli/
│ ├── decode.h
│ ├── encode.h
│ ├── port.h
│ ├── shared_dictionary.h
│ └── types.h
├── gdb/
│ ├── 32bit-avx.xml
│ ├── 32bit-avx512.xml
│ ├── 32bit-core.xml
│ ├── 32bit-linux.xml
│ ├── 32bit-pkeys.xml
│ ├── 32bit-sse.xml
│ ├── 64bit-avx.xml
│ ├── 64bit-avx512.xml
│ ├── 64bit-core.xml
│ ├── 64bit-linux.xml
│ ├── 64bit-pkeys.xml
│ ├── 64bit-seg.xml
│ ├── 64bit-sse.xml
│ ├── README
│ ├── aarch64-core.xml
│ ├── aarch64-fpu.xml
│ └── aarch64-pauth.xml
├── proc-service/
│ ├── README
│ └── proc_service.h
└── zen-pmu-workaround/
├── README
└── zen_workaround.c
Showing preview only (389K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4505 symbols across 1011 files)
FILE: release-process/prepare-release.py
function check_call (line 40) | def check_call(args):
function update_cmake (line 44) | def update_cmake(name, num):
function prepare_branch (line 49) | def prepare_branch():
function prepare_dirs (line 64) | def prepare_dirs():
function output_file_name (line 68) | def output_file_name(distro_name, arch):
function has_line_starting (line 71) | def has_line_starting(output_file, prefix):
function start_vm (line 78) | def start_vm(cmd, output_file):
function run_tests (line 94) | def run_tests():
FILE: release-process/test-system.py
class Ec2Vm (line 25) | class Ec2Vm:
method __init__ (line 26) | def __init__(self, machine_type, architecture, distro_config, keypair_...
method wait_for_ssh (line 76) | def wait_for_ssh(self):
method ssh (line 94) | def ssh(self, cmd, input):
method scp_from (line 106) | def scp_from(self, options, src, dst):
method ssh_command (line 112) | def ssh_command(self):
method ssh_options (line 115) | def ssh_options(self):
method ssh_dest (line 124) | def ssh_dest(self):
method terminate (line 127) | def terminate(self):
function get_config_lines (line 139) | def get_config_lines(config_key):
function get_config_lines_arch (line 149) | def get_config_lines_arch(config_key):
function config_script_function (line 152) | def config_script_function(config_key):
FILE: scripts/rr-collect-symbols.py
function build_id_for (line 52) | def build_id_for(file):
function find_altref (line 64) | def find_altref(file):
function find_altref_for_trace_file (line 75) | def find_altref_for_trace_file(trace_file, altref):
function mkdir_p (line 87) | def mkdir_p(path):
function copy_file (line 97) | def copy_file(src, dst):
function create_link (line 107) | def create_link(src, dst):
function collect_trace_build_ids (line 115) | def collect_trace_build_ids():
function collect_archive (line 134) | def collect_archive(url):
function collect_filesystem (line 170) | def collect_filesystem(path):
FILE: scripts/rr-gdb-script-host.py
function strip_prefix (line 11) | def strip_prefix(s: str, needle: str) -> Optional[str]:
function print_wrapper (line 17) | def print_wrapper(*args, **kwargs):
class DebuggerExtensionCommand (line 27) | class DebuggerExtensionCommand:
method __init__ (line 28) | def __init__(self, *args, **kwargs):
class GdbScriptHost (line 31) | class GdbScriptHost:
method __init__ (line 41) | def __init__(self, *args, **kwargs):
method show (line 44) | def show(self, cmd: str) -> Optional[str]:
method set (line 53) | def set(self, cmd: str) -> str:
method execute_script (line 63) | def execute_script(self, script: str):
method new_objfile (line 67) | def new_objfile(self, f: str):
class GdbApiObject (line 73) | class GdbApiObject(object):
method __init__ (line 74) | def __init__(self, *args, **kwargs):
method __getattr__ (line 77) | def __getattr__(self, attr):
class GdbProgspace (line 80) | class GdbProgspace(GdbApiObject):
method __init__ (line 83) | def __init__(self, *args, **kwargs):
class GdbNewObjfile (line 87) | class GdbNewObjfile(GdbApiObject):
method __init__ (line 89) | def __init__(self, *args, **kwargs):
class GdbNewObjfileEvent (line 93) | class GdbNewObjfileEvent(GdbApiObject):
method __init__ (line 96) | def __init__(self, *args, **kwargs):
class GdbNewObjfileEvents (line 100) | class GdbNewObjfileEvents(GdbApiObject):
method connect (line 101) | def connect(self, c: GdbNewObjfileEventCallback):
class GdbApiEvents (line 105) | class GdbApiEvents(GdbApiObject):
method new_objfile (line 109) | def new_objfile(self) -> GdbNewObjfileEvents:
class GdbApiRoot (line 115) | class GdbApiRoot(GdbApiObject):
method execute (line 119) | def execute(self, command: str, from_tty: bool = False, to_string: boo...
method lookup_global_symbol (line 154) | def lookup_global_symbol(self, s: str) -> Optional[object]:
method current_progspace (line 159) | def current_progspace(self) -> GdbProgspace:
method events (line 166) | def events(self) -> GdbApiEvents:
method COMMAND_USER (line 173) | def COMMAND_USER(self) -> int:
method Command (line 177) | def Command(self) -> Type[DebuggerExtensionCommand]:
FILE: scripts/zen_workaround.py
function is_secure_boot_enabled (line 27) | def is_secure_boot_enabled():
function read_msr (line 55) | def read_msr(cpu):
FILE: src/AddressSpace.cc
type rr (line 28) | namespace rr {
function thread_group_in_exec (line 61) | static bool thread_group_in_exec(Task* t) {
function KernelMapping (line 184) | static KernelMapping read_kernel_mapping(pid_t tid, remote_ptr<void> a...
function KernelMapping (line 200) | KernelMapping AddressSpace::read_kernel_mapping(Task* t,
function KernelMapping (line 205) | KernelMapping AddressSpace::read_local_kernel_mapping(uint8_t* addr) {
type stat (line 223) | struct stat
function clone_stat (line 234) | static unique_ptr<struct stat> clone_stat(
function find_offset_of_syscall_instruction_in (line 277) | static uint32_t find_offset_of_syscall_instruction_in(SupportedArch arch,
function remote_code_ptr (line 291) | remote_code_ptr AddressSpace::find_syscall_instruction_in_vdso(Task* t) {
function string (line 308) | static string rr_page_file_name(SupportedArch arch, const char** fname...
type stat (line 363) | struct stat
function rr_page_syscall_stub_size (line 451) | static int rr_page_syscall_stub_size(SupportedArch arch) {
function rr_page_syscall_instruction_end (line 470) | static int rr_page_syscall_instruction_end(SupportedArch arch) {
function remote_code_ptr (line 489) | static remote_code_ptr entry_ip_from_index(SupportedArch arch, size_t ...
function remote_code_ptr (line 493) | static remote_code_ptr exit_ip_from_index(SupportedArch arch, size_t i) {
function remote_code_ptr (line 498) | remote_code_ptr AddressSpace::rr_page_syscall_exit_point(Traced traced,
function remote_code_ptr (line 511) | remote_code_ptr AddressSpace::rr_page_syscall_entry_point(Traced traced,
function SupportedArch (line 707) | SupportedArch AddressSpace::arch() const {
function BreakpointType (line 711) | BreakpointType AddressSpace::get_breakpoint_type_for_retired_insn(
function BreakpointType (line 717) | BreakpointType AddressSpace::get_breakpoint_type_at_addr(remote_code_p...
function remove_range (line 776) | static void remove_range(set<MemoryRange>& ranges, const MemoryRange& ...
function add_range (line 809) | static void add_range(set<MemoryRange>& ranges, const MemoryRange& ran...
function KernelMapping (line 816) | KernelMapping AddressSpace::map(Task* t, remote_ptr<void> addr,
function MemoryRange (line 1191) | static MemoryRange range_for_watchpoint(remote_ptr<void> addr,
function DR_WATCHPOINT (line 1285) | static int DR_WATCHPOINT(int n) { return 1 << n; }
function watchpoint_triggered (line 1287) | static bool watchpoint_triggered(uintptr_t debug_status,
function string (line 1575) | static string strip_deleted(const string& s) {
function string (line 1584) | string KernelMapping::fsname_strip_deleted() const {
type HandleHeap (line 1588) | enum HandleHeap { TREAT_HEAP_AS_ANONYMOUS, RESPECT_HEAP }
function normalized_file_names_equal (line 1590) | static bool normalized_file_names_equal(const KernelMapping& km1,
function is_adjacent_mapping (line 1618) | static bool is_adjacent_mapping(const KernelMapping& mleft,
function try_merge_adjacent (line 1648) | static bool try_merge_adjacent(KernelMapping* left_m,
function dev_t (line 1660) | static dev_t normalized_device_number(const KernelMapping& m) {
function assert_segments_match (line 1672) | static void assert_segments_match(Task* t, const KernelMapping& input_m,
function KernelMapping (line 1763) | KernelMapping AddressSpace::vdso() const {
function fake_syscall (line 1822) | static void __attribute__((noinline, used)) fake_syscall() {
function try_split_unaligned_range (line 1941) | static bool try_split_unaligned_range(MemoryRange& range, size_t bytes,
function split_range (line 1951) | static vector<MemoryRange> split_range(const MemoryRange& range) {
function configure_watch_registers (line 1965) | static void configure_watch_registers(vector<WatchConfig>& regs,
function assert_coalescable (line 2077) | static inline void assert_coalescable(Task* t,
function is_coalescable (line 2088) | static bool is_coalescable(const AddressSpace::Mapping& mleft,
type stat (line 2223) | struct stat
function could_be_stack (line 2238) | static bool could_be_stack(const KernelMapping& km) {
function dev_t (line 2250) | static dev_t check_device(const KernelMapping& km) {
function MemoryRange (line 2305) | static MemoryRange adjust_range_for_stack_growth(const KernelMapping& ...
function MemoryRange (line 2322) | static MemoryRange overlaps_excluded_range(const RecordSession& sessio...
function is_all_memory_excluded (line 2331) | static bool is_all_memory_excluded(const RecordSession& session) {
function MemoryRange (line 2343) | static MemoryRange choose_global_exclusion_range(const RecordSession* ...
function MemoryRange (line 2366) | MemoryRange AddressSpace::get_global_exclusion_range(const RecordSessi...
FILE: src/AddressSpace.h
function namespace (line 32) | namespace rr {
function KernelMapping (line 100) | KernelMapping extend(remote_ptr<void> end) const {
function KernelMapping (line 105) | KernelMapping set_range(remote_ptr<void> start, remote_ptr<void> end) co...
function KernelMapping (line 109) | KernelMapping subrange(remote_ptr<void> start, remote_ptr<void> end) con...
function KernelMapping (line 115) | KernelMapping set_prot(int prot) const {
function KernelMapping (line 119) | KernelMapping set_fsname(const std::string& name) const {
function fake_stat (line 161) | struct stat fake_stat() const {
type MappingComparator (line 202) | struct MappingComparator {
type BreakpointType (line 208) | enum BreakpointType {
type WatchType (line 217) | enum WatchType {
type ArmWatchType (line 225) | enum ArmWatchType {
type ArmPrivLevel (line 232) | enum ArmPrivLevel {
type DebugStatus (line 236) | enum DebugStatus {
type WatchConfig (line 245) | struct WatchConfig {
function class (line 265) | class AddressSpace : public HasTaskSet {
function class (line 1265) | class KernelMapIterator {
function at_end (line 1279) | bool at_end() { return !maps_file; }
FILE: src/AutoRemoteSyscalls.cc
type rr (line 28) | namespace rr {
type socketcall_args (line 35) | struct socketcall_args {
function is_SIGTRAP_default_and_unblocked (line 79) | static bool is_SIGTRAP_default_and_unblocked(Task* t) {
function is_usable_area (line 216) | static bool is_usable_area(const KernelMapping& km) {
function ignore_signal (line 358) | static bool ignore_signal(Task* t) {
function SupportedArch (line 504) | SupportedArch AutoRemoteSyscalls::arch() const { return t->arch(); }
function write_socketcall_args (line 507) | static void write_socketcall_args(Task* t, remote_ptr<void> remote_mem,
type fd_message (line 517) | struct fd_message {
method init (line 526) | void init(remote_ptr<fd_message<Arch>> base) {
method fd_message (line 536) | fd_message(remote_ptr<fd_message<Arch>> base) {
method fd_message (line 539) | fd_message() {
method remote_this (line 542) | remote_ptr<fd_message<Arch>> remote_this() {
method remote_msg (line 545) | remote_ptr<typename Arch::msghdr> remote_msg() {
method remote_sc_args (line 548) | remote_ptr<socketcall_args<Arch>> remote_sc_args() {
method remote_cmsgdata (line 551) | remote_ptr<int> remote_cmsgdata() {
function child_sendmsg (line 558) | static long child_sendmsg(AutoRemoteSyscalls& remote, int child_sock, ...
function child_recvmsg (line 593) | static long child_recvmsg(AutoRemoteSyscalls& remote, int child_sock) {
function maybe_receive_fds (line 662) | static vector<ScopedFd> maybe_receive_fds(ScopedFd& sock, bool blockin...
function sendmsg_socket (line 696) | static void sendmsg_socket(ScopedFd& sock, int fd_to_send)
function Task (line 712) | static Task* thread_group_leader_for_fds(Task* t) {
function ScopedFd (line 721) | ScopedFd AutoRemoteSyscalls::retrieve_fd_arch(int fd) {
function ScopedFd (line 762) | ScopedFd AutoRemoteSyscalls::retrieve_fd(int fd) {
type stat (line 922) | struct stat
FILE: src/AutoRemoteSyscalls.h
function namespace (line 14) | namespace rr {
FILE: src/BpfMapMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/BreakpointCondition.h
function namespace (line 6) | namespace rr {
FILE: src/BuildidCommand.cc
type rr (line 12) | namespace rr {
class BuildidCommand (line 14) | class BuildidCommand : public Command {
method BuildidCommand (line 19) | BuildidCommand(const char* name, const char* help) : Command(name, h...
FILE: src/CPUFeaturesCommand.cc
type rr (line 10) | namespace rr {
class CPUFeaturesCommand (line 12) | class CPUFeaturesCommand : public Command {
method CPUFeaturesCommand (line 17) | CPUFeaturesCommand(const char* name, const char* help) : Command(nam...
FILE: src/CPUIDBugDetector.cc
type rr (line 12) | namespace rr {
function rcb_counts_ok (line 29) | static bool rcb_counts_ok(ReplayTask* t, uint64_t prev, uint64_t curre...
FILE: src/CPUIDBugDetector.h
function namespace (line 8) | namespace rr {
FILE: src/CPUs.cc
type rr (line 18) | namespace rr {
function hybrid_cpu_arch_parse_cpus (line 20) | static bool hybrid_cpu_arch_parse_cpus(const filesystem::path& dir,
function hybrid_cpu_arch_parse_type (line 63) | static bool hybrid_cpu_arch_parse_type(const filesystem::path& dir,
function hybrid_cpu_arch_groups (line 88) | static vector<CPUGroup> hybrid_cpu_arch_groups() {
function CPUs (line 119) | const CPUs& CPUs::get() {
FILE: src/CPUs.h
function namespace (line 11) | namespace rr {
FILE: src/Command.cc
type rr (line 18) | namespace rr {
function Command (line 40) | Command* Command::command_for_name(const std::string& name) {
function consume_args (line 83) | static bool consume_args(std::vector<std::string>& args, size_t count) {
function assign_param (line 88) | static void assign_param(ParsedOption* opt, const char* s) {
FILE: src/Command.h
function namespace (line 17) | namespace rr {
FILE: src/CompressedReader.cc
type rr (line 19) | namespace rr {
function read_all (line 50) | static bool read_all(const ScopedFd& fd, size_t size, void* data,
function do_decompress (line 60) | static bool do_decompress(std::vector<uint8_t>& compressed,
FILE: src/CompressedReader.h
function namespace (line 15) | namespace rr {
FILE: src/CompressedWriter.cc
type rr (line 19) | namespace rr {
FILE: src/CompressedWriter.h
function namespace (line 15) | namespace rr {
FILE: src/ContextSwitchEvent.cc
type rr (line 21) | namespace rr {
function sigio_handler (line 25) | static void sigio_handler(int, siginfo_t*, void*) {
function can_use_switch_records (line 29) | static bool can_use_switch_records() {
function ContextSwitchEventStrategy (line 114) | static ContextSwitchEventStrategy init_strategy() {
function ContextSwitchEventStrategy (line 142) | ContextSwitchEventStrategy ContextSwitchEvent::strategy() {
FILE: src/ContextSwitchEvent.h
function namespace (line 14) | namespace rr {
FILE: src/DebuggerExtensionCommand.cc
type rr (line 10) | namespace rr {
function string (line 118) | string invoke_checkpoint(GdbServer& gdb_server, Task*,
function string (line 144) | string invoke_delete_checkpoint(GdbServer& gdb_server, Task*,
function string (line 173) | string invoke_info_checkpoints(GdbServer& gdb_server, Task*,
FILE: src/DebuggerExtensionCommand.h
function namespace (line 13) | namespace rr {
FILE: src/DebuggerExtensionCommandHandler.cc
type rr (line 12) | namespace rr {
function print_python_string_array (line 18) | static void print_python_string_array(ostream& out, const std::vector<...
function gdb_macro_binding (line 29) | static void gdb_macro_binding(ostream& out, const DebuggerExtensionCom...
function string (line 63) | string DebuggerExtensionCommandHandler::gdb_macros() {
function lldb_macro_binding (line 194) | static void lldb_macro_binding(ostream& def_stream, ostream& call_stream,
function DebuggerExtensionCommand (line 275) | DebuggerExtensionCommand* DebuggerExtensionCommandHandler::command_for...
function string (line 296) | static string hex_escape(const string& str) {
function string (line 312) | static string hex_unescape(const string& str) {
function string (line 332) | string DebuggerExtensionCommandHandler::process_command(GdbServer& gdb...
FILE: src/DebuggerExtensionCommandHandler.h
function namespace (line 10) | namespace rr {
FILE: src/DiversionSession.cc
type rr (line 15) | namespace rr {
function finish_emulated_syscall_with_ret (line 30) | static void finish_emulated_syscall_with_ret(Task* t, long ret) {
function execute_syscall (line 42) | static void execute_syscall(Task* t) {
function process_syscall_arch (line 60) | static void process_syscall_arch(Task* t, int syscallno) {
function maybe_handle_task_exit (line 160) | static bool maybe_handle_task_exit(Task* t, TaskContext* context,
FILE: src/DiversionSession.h
function namespace (line 9) | namespace rr {
FILE: src/DumpCommand.cc
type rr (line 26) | namespace rr {
class DumpCommand (line 28) | class DumpCommand : public Command {
method DumpCommand (line 33) | DumpCommand(const char* name, const char* help) : Command(name, help...
function parse_dump_arg (line 54) | static bool parse_dump_arg(vector<string>& args, DumpFlags& flags) {
function dump_syscallbuf_data (line 108) | static void dump_syscallbuf_data(TraceReader& trace, FILE* out,
function print_socket_addr (line 170) | static void print_socket_addr(FILE* out, const struct NativeArch::sock...
function dump_socket_addrs (line 198) | static void dump_socket_addrs(FILE* out, const TraceFrame& frame) {
function dump_task_event (line 213) | static void dump_task_event(FILE* out, const TraceTaskEvent& event) {
function dump_events_matching (line 248) | static void dump_events_matching(TraceReader& trace, const DumpFlags& ...
function dump_statistics (line 373) | static void dump_statistics(const TraceReader& trace, FILE* out) {
function dump (line 381) | void dump(const string& trace_dir, const DumpFlags& flags,
FILE: src/Dwarf.cc
type rr (line 11) | namespace rr {
type Dwarf32 (line 13) | struct Dwarf32 {
type CompilationUnitPreamble (line 16) | struct CompilationUnitPreamble {
type Dwarf64 (line 20) | struct Dwarf64 {
type CompilationUnitPreamble (line 23) | struct __attribute__((packed)) CompilationUnitPreamble {
type Dwarf4CompilationUnitHeader (line 29) | struct __attribute__((packed)) Dwarf4CompilationUnitHeader {
method install_dwo_id (line 36) | void install_dwo_id(DwarfCompilationUnit* unit) const {
type Dwarf5CompilationUnitHeader (line 41) | struct __attribute__((packed)) Dwarf5CompilationUnitHeader {
method install_dwo_id (line 49) | void install_dwo_id(DwarfCompilationUnit* unit) const {
type Dwarf5SkeletonSplitCompilationUnitHeader (line 54) | struct __attribute__((packed)) Dwarf5SkeletonSplitCompilationUnitHead...
method install_dwo_id (line 63) | void install_dwo_id(DwarfCompilationUnit* unit) const {
type Dwarf2LineNumberTableHeader (line 68) | struct __attribute__((packed)) Dwarf2LineNumberTableHeader {
type Dwarf4LineNumberTableHeader (line 86) | struct __attribute__((packed)) Dwarf4LineNumberTableHeader {
type Dwarf5LineNumberTableHeader (line 105) | struct __attribute__((packed)) Dwarf5LineNumberTableHeader {
function DwarfSpan (line 146) | DwarfSpan DwarfSpan::read_leb_ref(bool* ok) {
function DwarfAbbrev (line 172) | DwarfAbbrev* DwarfAbbrevSet::lookup(uint64_t code) {
function DwarfAbbrevSet (line 210) | DwarfAbbrevSet& DwarfAbbrevs::lookup(uint64_t offset) {
function form_size (line 243) | static size_t form_size(DWForm form, size_t address_size, size_t dwarf...
function DwarfSpan (line 297) | DwarfSpan DwarfDIE::find_attribute(DWAttr attr, DWForm* form, bool* ok...
function decode_unsigned_literal (line 313) | static uint64_t decode_unsigned_literal(DwarfSpan span, bool* ok) {
function decode_section_ptr (line 328) | static int64_t decode_section_ptr(DwarfSpan span, DWForm form, bool* o...
function decode_unsigned (line 350) | static uint64_t decode_unsigned(DwarfSpan span, DWForm form, bool* ok) {
function DwarfCompilationUnit (line 445) | DwarfCompilationUnit DwarfCompilationUnit::next(DwarfSpan* debug_info,...
function read_dwarf2_directories (line 552) | static bool read_dwarf2_directories(DwarfSpan span, std::vector<const ...
type FileEntryFormat (line 608) | struct FileEntryFormat {
FILE: src/Dwarf.h
function namespace (line 14) | namespace rr {
type DwarfSourceFile (line 213) | struct DwarfSourceFile {
function class (line 218) | class DwarfLineNumberTable {
FILE: src/ElfReader.cc
type rr (line 19) | namespace rr {
class ElfReaderImplBase (line 21) | class ElfReaderImplBase {
method ElfReaderImplBase (line 23) | ElfReaderImplBase(ElfReader& r) : r(r), ok_(false) {}
method ok (line 34) | bool ok() { return ok_; }
class ElfReaderImpl (line 42) | class ElfReaderImpl : public ElfReaderImplBase {
function elf_reader_impl_arch (line 69) | unique_ptr<ElfReaderImplBase> elf_reader_impl_arch(ElfReader& r) {
function elf_reader_impl (line 73) | unique_ptr<ElfReaderImplBase> elf_reader_impl(ElfReader& r,
function SectionOffsets (line 167) | SectionOffsets ElfReaderImpl<Arch>::find_section_file_offsets(
function SymbolTable (line 261) | SymbolTable ElfReaderImpl<Arch>::read_symbols(const char* symtab,
function DynamicSection (line 320) | DynamicSection ElfReaderImpl<Arch>::read_dynamic() {
function null_terminated (line 376) | static bool null_terminated(const char* p, size_t size, string& out) {
function Debuglink (line 386) | Debuglink ElfReaderImpl<Arch>::read_debuglink() {
function Debugaltlink (line 417) | Debugaltlink ElfReaderImpl<Arch>::read_debugaltlink() {
function string (line 445) | string ElfReaderImpl<Arch>::read_buildid() {
function string (line 499) | string ElfReaderImpl<Arch>::read_interp() {
function ElfReaderImplBase (line 541) | ElfReaderImplBase& ElfReader::impl() {
method ElfReaderImplBase (line 23) | ElfReaderImplBase(ElfReader& r) : r(r), ok_(false) {}
method ok (line 34) | bool ok() { return ok_; }
function SymbolTable (line 548) | SymbolTable ElfReader::read_symbols(const char* symtab, const char* st...
function DynamicSection (line 552) | DynamicSection ElfReader::read_dynamic() { return impl().read_dynamic(...
function Debuglink (line 554) | Debuglink ElfReader::read_debuglink() { return impl().read_debuglink(); }
function Debugaltlink (line 556) | Debugaltlink ElfReader::read_debugaltlink() { return impl().read_debug...
function SectionOffsets (line 558) | SectionOffsets ElfReader::find_section_file_offsets(const char* name) {
function DwarfSpan (line 562) | DwarfSpan ElfReader::dwarf_section(const char* name, bool known_to_be_...
function string (line 572) | string ElfReader::read_buildid() { return impl().read_buildid(); }
function string (line 573) | string ElfReader::read_interp() { return impl().read_interp(); }
type stat (line 582) | struct stat
function ScopedFd (line 601) | ScopedFd ElfFileReader::open_debug_file(const std::string& elf_file_na...
function SupportedArch (line 643) | SupportedArch ElfFileReader::identify_arch(ScopedFd& fd) {
FILE: src/ElfReader.h
function namespace (line 15) | namespace rr {
function class (line 129) | class ElfFileReader : public ElfReader {
FILE: src/EmuFs.cc
type rr (line 29) | namespace rr {
function string (line 101) | string EmuFile::proc_path() const {
function make_temp_name (line 119) | std::string make_temp_name(const string& orig_path, dev_t orig_device,
FILE: src/EmuFs.h
function namespace (line 13) | namespace rr {
function class (line 78) | class EmuFile {
function class (line 149) | class EmuFs {
FILE: src/Event.cc
type rr (line 17) | namespace rr {
function Event (line 72) | Event& Event::operator=(const Event& o) {
function string (line 156) | string Event::str() const {
FILE: src/Event.h
type syscallbuf_record (line 21) | struct syscallbuf_record
function namespace (line 23) | namespace rr {
type PatchSyscallEvent (line 113) | struct PatchSyscallEvent {
type SchedEvent (line 132) | struct SchedEvent {
function set_arch (line 141) | struct SyscallbufFlushEvent {
type syscall_interruption_t (line 289) | struct syscall_interruption_t {
function Desched (line 299) | struct Event {
function PatchSyscallEvent (line 325) | const PatchSyscallEvent& PatchSyscall() const {
function SchedEvent (line 334) | const SchedEvent& Sched() const {
function SyscallbufFlushEvent (line 343) | const SyscallbufFlushEvent& SyscallbufFlush() const {
function SignalEvent (line 352) | const SignalEvent& Signal() const {
function SyscallEvent (line 361) | const SyscallEvent& Syscall() const {
function Event (line 399) | static Event noop() { return Event(EV_NOOP); }
function Event (line 400) | static Event trace_termination() { return Event(EV_TRACE_TERMINATION); }
function Event (line 401) | static Event instruction_trap() { return Event(EV_INSTRUCTION_TRAP); }
function Event (line 402) | static Event patch_syscall() {
function Event (line 409) | static Event sched() {
function Event (line 414) | static Event seccomp_trap() { return Event(EV_SECCOMP_TRAP); }
function Event (line 415) | static Event syscallbuf_abort_commit() {
function Event (line 418) | static Event syscallbuf_reset() { return Event(EV_SYSCALLBUF_RESET); }
function Event (line 419) | static Event grow_map() { return Event(EV_GROW_MAP); }
function Event (line 420) | static Event exit() { return Event(EV_EXIT); }
function Event (line 421) | static Event sentinel() { return Event(EV_SENTINEL); }
FILE: src/ExportImportCheckpoints.cc
type rr (line 24) | namespace rr {
function parse_export_checkpoints (line 26) | bool parse_export_checkpoints(const string& arg, FrameTime& export_che...
function ScopedFd (line 55) | ScopedFd bind_export_checkpoints_socket(int count, const string& socke...
function send_all (line 84) | static void send_all(ScopedFd& sock, const void* vbuf, size_t count) {
function recv_all (line 96) | static void recv_all(ScopedFd& sock, void* vbuf, size_t count) {
function setup_child_fds (line 108) | static void setup_child_fds(vector<int> fds, CommandForCheckpoint& com...
function set_title (line 125) | static void set_title(const vector<string>& args) {
function CommandForCheckpoint (line 147) | CommandForCheckpoint export_checkpoints(ReplaySession::shr_ptr session...
function notify_normal_exit (line 272) | void notify_normal_exit(ScopedFd& exit_notification_fd) {
function invoke_checkpoint_command (line 279) | int invoke_checkpoint_command(const string& socket_file_name,
FILE: src/ExportImportCheckpoints.h
function namespace (line 11) | namespace rr {
FILE: src/ExtraRegisters.cc
type rr (line 15) | namespace rr {
type RegData (line 50) | struct RegData {
method RegData (line 55) | RegData(int offset = -1, int size = 0)
function reg_in_range (line 59) | static bool reg_in_range(GdbServerRegister regno, GdbServerRegister lo...
type RegisterDescriptor (line 81) | struct RegisterDescriptor {
method register_offset (line 96) | int register_offset(GdbServerRegister reg) const noexcept {
method describes_register (line 103) | bool describes_register(GdbServerRegister gdb_register) const {
function reg_is_avx2_or_512 (line 139) | static bool reg_is_avx2_or_512(GdbServerRegister reg, RegData& out) no...
function RegData (line 158) | static RegData xsave_register_data(SupportedArch arch, GdbServerRegist...
method RegData (line 55) | RegData(int offset = -1, int size = 0)
function get_full_value (line 463) | static size_t get_full_value(const ExtraRegisters& r, GdbServerRegiste...
function string (line 478) | static string reg_to_string(const ExtraRegisters& r, GdbServerRegister...
function print_reg (line 494) | static void print_reg(const ExtraRegisters& r, GdbServerRegister low, ...
function print_regs (line 500) | static void print_regs(const ExtraRegisters& r, GdbServerRegister low,...
function convert_fxsave_to_x86_fpregs (line 539) | static X86Arch::user_fpregs_struct convert_fxsave_to_x86_fpregs(
function convert_x86_fpregs_to_fxsave (line 561) | static void convert_x86_fpregs_to_fxsave(const X86Arch::user_fpregs_st...
function to_vector (line 578) | static vector<uint8_t> to_vector(const T& v) {
function features_used (line 585) | static uint32_t features_used(const uint8_t* data) {
function memcpy_fpr_regs_arch (line 592) | bool memcpy_fpr_regs_arch(std::vector<uint8_t>& dest, const uint8_t* src,
function set_word (line 829) | static void set_word(SupportedArch arch, vector<uint8_t>& v, GdbServer...
function compare_regs (line 884) | static void compare_regs(const ExtraRegisters& reg1,
FILE: src/ExtraRegisters.h
function namespace (line 15) | namespace rr {
FILE: src/FdTable.cc
type rr (line 21) | namespace rr {
function Switchable (line 114) | Switchable FdTable::will_write(Task* t, int fd) {
function FileMonitor (line 155) | FileMonitor* FdTable::get_monitor(int fd) {
function syscallbuf_fd_classes (line 163) | static syscallbuf_fd_classes join_fd_classes_over_tasks(AddressSpace* ...
function is_fd_open (line 264) | static bool is_fd_open(Task* t, int fd) {
FILE: src/FdTable.h
function namespace (line 13) | namespace rr {
FILE: src/FileMonitor.cc
type rr (line 16) | namespace rr {
function is_implicit_offset_syscall_arch (line 20) | static bool is_implicit_offset_syscall_arch(int syscallno) {
function is_write_syscall_arch (line 26) | static bool is_write_syscall_arch(int syscallno) {
function is_implicit_offset_syscall (line 31) | static bool is_implicit_offset_syscall(SupportedArch arch, int syscall...
function retrieve_offset_arch (line 36) | static int64_t retrieve_offset_arch(Task* t, int syscallno,
function retrieve_offset (line 69) | static int64_t retrieve_offset(Task* t, int syscallno, const Registers...
function file_monitor_type_name (line 94) | std::string file_monitor_type_name(FileMonitor::Type t) {
FILE: src/FileMonitor.h
function namespace (line 17) | namespace rr {
FILE: src/FileNameCommand.cc
type rr (line 14) | namespace rr {
class FileNameCommand (line 16) | class FileNameCommand : public Command {
method FileNameCommand (line 21) | FileNameCommand(const char* name, const char* help) : Command(name, ...
function print_original_file_name (line 32) | static void print_original_file_name(const string& trace_dir,
FILE: src/Flags.cc
type rr (line 5) | namespace rr {
function Flags (line 7) | Flags& Flags::get_for_init() { return singleton; }
FILE: src/Flags.h
function namespace (line 14) | namespace rr {
FILE: src/GdbInitCommand.cc
type rr (line 10) | namespace rr {
class GdbInitCommand (line 12) | class GdbInitCommand : public Command {
method GdbInitCommand (line 17) | GdbInitCommand(const char* name, const char* help) : Command(name, h...
FILE: src/GdbServer.cc
type rr (line 41) | namespace rr {
function ExtendedTaskId (line 61) | static ExtendedTaskId extended_task_id(Task* t) {
function get_reg (line 98) | static size_t get_reg(const Registers& regs, const ExtraRegisters& ext...
function set_reg (line 107) | static bool set_reg(Task* target, const GdbServerRegisterValue& reg) {
function GdbServerRegisterValue (line 133) | GdbServerRegisterValue GdbServer::get_reg(const Registers& regs,
function matches_threadid (line 143) | static bool matches_threadid(const ExtendedTaskId& tid,
function matches_threadid (line 149) | static bool matches_threadid(Task* t, const GdbThreadId& target) {
function WatchType (line 153) | static WatchType watchpoint_type(GdbRequestType req) {
function maybe_singlestep_for_event (line 177) | static void maybe_singlestep_for_event(Task* t, GdbRequest* req) {
class GdbBreakpointCondition (line 206) | class GdbBreakpointCondition : public BreakpointCondition {
method GdbBreakpointCondition (line 208) | GdbBreakpointCondition(const vector<vector<uint8_t>>& bytecodes) {
method evaluate (line 213) | virtual bool evaluate(ReplayTask* t) const override {
function breakpoint_condition (line 228) | static unique_ptr<BreakpointCondition> breakpoint_condition(
function search_memory (line 237) | static bool search_memory(Task* t, const MemoryRange& where,
function is_in_patch_stubs (line 268) | static bool is_in_patch_stubs(Task* t, remote_code_ptr ip) {
function thread_info (line 294) | static vector<GdbServerConnection::ThreadInfo> thread_info(const Sessi...
function any_action_targets_match (line 850) | static bool any_action_targets_match(const ExtendedTaskId& thread,
function Task (line 857) | static Task* find_first_task_matching_target(
function is_last_thread_exit (line 978) | static bool is_last_thread_exit(const BreakStatus& break_status) {
function Task (line 984) | static Task* is_in_exec(ReplayTimeline* timeline) {
function RunCommand (line 1087) | static RunCommand compute_run_command_from_actions(Task* t,
type AllowedTasks (line 1107) | struct AllowedTasks {
function RunCommand (line 1111) | static RunCommand compute_run_command_for_reverse_exec(
function GdbRequest (line 1147) | GdbRequest GdbServer::divert(ReplaySession& replay) {
function GdbRequest (line 1237) | GdbRequest GdbServer::process_debugger_requests(ReportState state) {
function ReplayTask (line 1391) | ReplayTask* GdbServer::require_timeline_current_task() {
function target_event_reached (line 1553) | static bool target_event_reached(const ReplayTimeline& timeline,
function at_target (line 1564) | static bool at_target(ReplayTimeline& timeline,
function FrameTime (line 1666) | static FrameTime compute_time_from_ticks(ReplayTimeline& timeline, Tic...
function ScopedFd (line 1875) | static ScopedFd generate_fake_proc_maps(Task* t) {
function is_ld_mapping (line 1944) | static bool is_ld_mapping(string map_name) {
function is_likely_interp (line 1952) | static bool is_likely_interp(string fsname) {
function base_addr_from_rendezvous (line 1961) | static remote_ptr<void> base_addr_from_rendezvous(Task* t, string fname)
function remove_trailing_guard_pages (line 2102) | static void remove_trailing_guard_pages(ReplaySession::MemoryRanges& r...
function coalesce_free_memory (line 2173) | static void coalesce_free_memory(ReplaySession::MemoryRanges& ranges,
FILE: src/GdbServer.h
function namespace (line 23) | namespace rr {
type DebuggerMemRegion (line 303) | struct DebuggerMemRegion {
type DebuggerMem (line 307) | struct DebuggerMem {
type SavedRegisters (line 317) | struct SavedRegisters {
FILE: src/GdbServerConnection.cc
type rr (line 39) | namespace rr {
function request_needs_immediate_response (line 51) | static bool request_needs_immediate_response(const GdbRequest* req) {
function get_cpu_features (line 80) | static uint32_t get_cpu_features(SupportedArch arch) {
function poll_socket (line 140) | static bool poll_socket(const ScopedFd& sock_fd, short events, int tim...
function poll_incoming (line 153) | static bool poll_incoming(const ScopedFd& sock_fd, int timeoutMs) {
function poll_outgoing (line 157) | static void poll_outgoing(const ScopedFd& sock_fd, int timeoutMs) {
function string (line 271) | static string string_to_hex(const string& s) {
function parser_assert (line 303) | static void parser_assert(bool cond) {
function string (line 311) | static string decode_ascii_encoded_hex_str(const char* encoded) {
function read_hex_data (line 412) | static void read_hex_data(const char* payload, const char* payload_end,
function read_binary_data (line 426) | static void read_binary_data(const uint8_t* payload, const uint8_t* pa...
function GdbThreadId (line 444) | static GdbThreadId parse_threadid(const char* str, char** endptr) {
function string (line 494) | static string read_target_desc(const char* file_name) {
function print_reg_value (line 615) | static size_t print_reg_value(const GdbServerRegisterValue& reg, char*...
function read_reg_value (line 636) | static void read_reg_value(char** strp, GdbServerRegisterValue* reg) {
function gdb_open_flags_to_system_flags (line 1066) | static int gdb_open_flags_to_system_flags(int64_t flags) {
function string (line 1317) | static string to_string(const vector<uint8_t>& bytes, size_t max_len) {
function GdbRequest (line 1607) | GdbRequest GdbServerConnection::get_request() {
function to_gdb_signum (line 1680) | static int to_gdb_signum(int sig) {
function string (line 1857) | string GdbServerConnection::format_thread_id(ExtendedTaskId thread) {
FILE: src/GdbServerConnection.h
function namespace (line 25) | namespace rr {
type ExtendedTaskId (line 63) | struct ExtendedTaskId {
type GdbServerRegisterValue (line 85) | struct GdbServerRegisterValue {
type GdbRequestType (line 99) | enum GdbRequestType {
type GdbRestartType (line 195) | enum GdbRestartType {
type GdbActionType (line 202) | enum GdbActionType { ACTION_CONTINUE, ACTION_STEP }
type GdbContAction (line 204) | struct GdbContAction {
type GdbRequest (line 218) | struct GdbRequest {
type Mem (line 267) | struct Mem {
type Watch (line 274) | struct Watch {
type Restart (line 280) | struct Restart {
type Cont (line 285) | struct Cont {
type RRCmd (line 289) | struct RRCmd {
type Tls (line 294) | struct Tls {
type Symbol (line 298) | struct Symbol {
type FileSetfs (line 303) | struct FileSetfs {
type FileOpen (line 306) | struct FileOpen {
type FilePread (line 312) | struct FilePread {
type FileClose (line 317) | struct FileClose {
type MemAlloc (line 320) | struct MemAlloc {
type MemFree (line 324) | struct MemFree {
type RestoreRegisterState (line 327) | struct RestoreRegisterState {
function Mem (line 335) | const Mem& mem() const {
function Watch (line 343) | const Watch& watch() const {
function GdbServerRegisterValue (line 351) | const GdbServerRegisterValue& reg() const {
function Restart (line 359) | const Restart& restart() const {
function Cont (line 367) | const Cont& cont() const {
function RRCmd (line 375) | const RRCmd& rr_cmd() const {
function Tls (line 383) | const Tls& tls() const {
function Symbol (line 391) | const Symbol& sym() const {
function FileSetfs (line 399) | const FileSetfs& file_setfs() const {
function FileOpen (line 407) | const FileOpen& file_open() const {
function FilePread (line 415) | const FilePread& file_pread() const {
function FileClose (line 423) | const FileClose& file_close() const {
function MemAlloc (line 431) | const MemAlloc& mem_alloc() const {
function MemFree (line 439) | const MemFree& mem_free() const {
function RestoreRegisterState (line 447) | const RestoreRegisterState& restore_register_state() const {
function class (line 463) | class GdbServerConnection {
FILE: src/GdbServerExpression.cc
type rr (line 11) | namespace rr {
type Opcode (line 17) | enum Opcode {
type ExpressionState (line 71) | struct ExpressionState {
method ExpressionState (line 74) | ExpressionState(const vector<uint8_t>& bytecode)
method set_error (line 77) | void set_error() { error = true; }
method Value (line 81) | Value pop() {
type BinaryOperands (line 90) | struct BinaryOperands {
method BinaryOperands (line 91) | BinaryOperands(int64_t a = 0, int64_t b = 0) : a(a), b(b) {}
method BinaryOperands (line 95) | BinaryOperands pop_a_b() {
method BinaryOperands (line 91) | BinaryOperands(int64_t a = 0, int64_t b = 0) : a(a), b(b) {}
method nonzero (line 99) | int64_t nonzero(int64_t v) {
method pop_a (line 106) | int64_t pop_a() { return pop().i; }
method push (line 107) | void push(int64_t i) { stack.push_back(Value(i)); }
method T (line 108) | T fetch() {
method load (line 120) | void load(Task* t) {
method pick (line 134) | void pick(size_t offset) {
method step (line 142) | void step(ReplayTask* t) {
function count_variants (line 306) | static int count_variants(int bits) {
function T (line 321) | static T fetch(const uint8_t* data, size_t size, size_t pc) {
FILE: src/GdbServerExpression.h
function namespace (line 11) | namespace rr {
FILE: src/GdbServerRegister.h
function namespace (line 6) | namespace rr {
FILE: src/HasTaskSet.cc
type rr (line 8) | namespace rr {
function Task (line 20) | Task* HasTaskSet::first_running_task() const {
function Task (line 29) | Task* HasTaskSet::find_other_thread_group(Task* t) const {
FILE: src/HasTaskSet.h
function namespace (line 8) | namespace rr {
FILE: src/HelpCommand.cc
type rr (line 8) | namespace rr {
class HelpCommand (line 10) | class HelpCommand : public Command {
method HelpCommand (line 15) | HelpCommand(const char* name, const char* help) : Command(name, help...
FILE: src/LldbInitCommand.cc
type rr (line 10) | namespace rr {
class LldbInitCommand (line 12) | class LldbInitCommand : public Command {
method LldbInitCommand (line 17) | LldbInitCommand(const char* name, const char* help) : Command(name, ...
FILE: src/LsCommand.cc
type rr (line 20) | namespace rr {
class LsCommand (line 22) | class LsCommand : public Command {
method LsCommand (line 27) | LsCommand(const char* name, const char* help) : Command(name, help) {}
type LsFlags (line 39) | struct LsFlags {
method LsFlags (line 43) | LsFlags() : reverse(false), full_listing(false), sort_by_time(false) {}
function parse_ls_arg (line 46) | static bool parse_ls_arg(vector<string>& args, LsFlags& flags) {
type TraceInfo (line 76) | struct TraceInfo {
type timespec (line 78) | struct timespec
method TraceInfo (line 81) | TraceInfo(string in_name) : name(in_name) {}
function compare_by_name (line 84) | static bool compare_by_name(const TraceInfo& at, const TraceInfo& bt) {
function get_folder_size (line 90) | static bool get_folder_size(string dir_name, string& size_str) {
function string (line 134) | static string get_exec_path(TraceReader& reader) {
function ls (line 151) | static int ls(const string& traces_dir, const LsFlags& flags, FILE* ou...
FILE: src/MagicSaveDataMonitor.cc
type rr (line 17) | namespace rr {
function string (line 19) | static string dump_path_data(Task* t, FrameTime global_time, const cha...
function notify_save_data_error (line 28) | static void notify_save_data_error(ReplayTask* t, remote_ptr<void> addr,
FILE: src/MagicSaveDataMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/MemoryRange.h
function namespace (line 10) | namespace rr {
FILE: src/MmappedFileMonitor.cc
type rr (line 12) | namespace rr {
FILE: src/MmappedFileMonitor.h
function namespace (line 11) | namespace rr {
FILE: src/MonitoredSharedMemory.cc
type rr (line 16) | namespace rr {
FILE: src/MonitoredSharedMemory.h
function namespace (line 10) | namespace rr {
FILE: src/Monkeypatcher.cc
type rr (line 26) | namespace rr {
function write_and_record_bytes (line 30) | static void write_and_record_bytes(RecordTask* t, remote_ptr<void> chi...
function write_and_record_bytes (line 39) | static void write_and_record_bytes(RecordTask* t, remote_ptr<void> chi...
function write_and_record_mem (line 45) | static void write_and_record_mem(RecordTask* t, remote_ptr<T> child_addr,
function setup_library_path_arch (line 72) | static void setup_library_path_arch(RecordTask* t, const char* env_var,
function setup_preload_library_path (line 125) | static void setup_preload_library_path(RecordTask* t) {
function setup_audit_library_path (line 132) | static void setup_audit_library_path(RecordTask* t) {
type syscall_patch_hook (line 143) | struct syscall_patch_hook
function allocate_extended_jump_x86ish (line 217) | static remote_ptr<uint8_t> allocate_extended_jump_x86ish(
function encode_immediate_aarch64 (line 285) | static void encode_immediate_aarch64(std::vector<uint32_t> &buff,
function encode_extended_jump_aarch64 (line 329) | static uint32_t encode_extended_jump_aarch64(std::vector<uint32_t> &buff,
function allocate_extended_jump_aarch64 (line 367) | static remote_ptr<uint8_t> allocate_extended_jump_aarch64(
function remote_code_ptr (line 478) | remote_code_ptr Monkeypatcher::get_jump_stub_exit_breakpoint(remote_co...
function hook_can_ignore_interfering_branches (line 496) | static bool hook_can_ignore_interfering_branches(const syscall_patch_h...
function patch_syscall_with_hook_x86ish (line 527) | static bool patch_syscall_with_hook_x86ish(Monkeypatcher& patcher,
function patch_syscall_with_hook (line 702) | static bool patch_syscall_with_hook(Monkeypatcher& patcher, RecordTask...
function unpatch_extended_jumps (line 782) | static void unpatch_extended_jumps(Monkeypatcher& patcher,
function string (line 896) | static string bytes_to_string(uint8_t* bytes, size_t size) {
function safe_for_syscall_patching (line 907) | static bool safe_for_syscall_patching(remote_code_ptr start,
function jump_patch_size (line 969) | static uint64_t jump_patch_size(SupportedArch arch)
function patch_matches (line 981) | static bool patch_matches(const syscall_patch_hook& hook, const uint8_...
function syscall_patch_hook (line 989) | const syscall_patch_hook* Monkeypatcher::find_syscall_hook(RecordTask* t,
function resolve_address (line 1498) | static remote_ptr<void> resolve_address(ElfReader& reader, uintptr_t e...
function set_and_record_bytes (line 1533) | static void set_and_record_bytes(RecordTask* t, ElfReader& reader,
function is_aarch64_bti (line 1629) | static bool is_aarch64_bti(uint32_t instruction) {
function is_aarch64_adrp (line 1639) | static bool is_aarch64_adrp(uint32_t instruction, remote_ptr<void> pc,...
function is_aarch64_ldrb (line 1650) | static bool is_aarch64_ldrb(uint32_t instruction, uint32_t* offset) {
function file_may_need_instrumentation (line 1701) | static bool file_may_need_instrumentation(const AddressSpace::Mapping&...
FILE: src/Monkeypatcher.h
function namespace (line 15) | namespace rr {
FILE: src/MvCommand.cc
type rr (line 15) | namespace rr {
class MvCommand (line 17) | class MvCommand : public Command {
method MvCommand (line 22) | MvCommand(const char* name, const char* help) : Command(name, help) {}
function mv (line 29) | static int mv(const string& from, const string& to, FILE* out) {
FILE: src/NonvirtualPerfCounterMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/ODirectFileMonitor.h
function namespace (line 9) | namespace rr {
FILE: src/PackCommand.cc
type rr (line 35) | namespace rr {
class PackCommand (line 43) | class PackCommand : public Command {
method PackCommand (line 48) | PackCommand(const char* name, const char* help) : Command(name, help...
type PackFlags (line 71) | struct PackFlags {
method PackFlags (line 77) | PackFlags()
type FileHash (line 81) | struct FileHash {
function FileHash (line 91) | static FileHash allocate_unique_file_hash() {
type FsExtentsHash (line 100) | struct FsExtentsHash {
type PackDir (line 108) | struct PackDir {
method PackDir (line 111) | PackDir(string dir) : dir(dir) {}
function name_comparator (line 114) | static bool name_comparator(const TraceReader::MappedData& d1,
function names_equal (line 119) | static bool names_equal(const TraceReader::MappedData& d1,
function decreasing_size_comparator (line 124) | static bool decreasing_size_comparator(const TraceReader::MappedData* d1,
function is_hardlink (line 129) | static bool is_hardlink(const string& file_name) {
function gather_files (line 175) | static vector<TraceReader::MappedData> gather_files(const string& trac...
function get_file_extents_hash (line 207) | static bool get_file_extents_hash(const string& file_name, FsExtentsHa...
function gather_file_info (line 318) | static map<string, FileHash> gather_file_info(const string& trace_dir) {
function is_in_trace_dir (line 409) | static bool is_in_trace_dir(const string& file_name, const string& tra...
function string (line 428) | static string copy_into_trace(const string& file_name, const string& t...
function string (line 486) | static string symlink_into_trace(const string& file_name,
function compute_canonical_symlink_map (line 516) | static map<string, string> compute_canonical_symlink_map(
function compute_canonical_mmapped_files (line 546) | static map<string, string> compute_canonical_mmapped_files(
function rewrite_mmaps (line 601) | static void rewrite_mmaps(const map<string, string>& file_map,
function delete_unnecessary_files (line 649) | static void delete_unnecessary_files(const map<string, string>& file_map,
function pack (line 682) | static int pack(const vector<string>& trace_dirs, const PackFlags& fla...
function parse_pack_arg (line 719) | static bool parse_pack_arg(vector<string>& args, PackFlags& flags) {
FILE: src/PerfCounterBuffers.cc
type rr (line 12) | namespace rr {
type perf_event_mmap_page (line 43) | struct perf_event_mmap_page
type perf_event_header (line 85) | struct perf_event_header
type perf_event_header (line 86) | struct perf_event_header
type perf_event_header (line 96) | struct perf_event_header
FILE: src/PerfCounterBuffers.h
function namespace (line 14) | namespace rr {
FILE: src/PerfCounters.cc
type rr (line 43) | namespace rr {
type perf_event_attrs (line 51) | struct perf_event_attrs {
type CpuMicroarch (line 96) | enum CpuMicroarch {
type PmuConfig (line 187) | struct PmuConfig {
function string (line 310) | static string lowercase(const string& s) {
function get_pmu_index (line 319) | static int get_pmu_index(BindCPU cpu_binding) {
function init_perf_event_attr (line 343) | static void init_perf_event_attr(struct perf_event_attr* attr,
function read_counter (line 358) | static int64_t read_counter(ScopedFd& fd) {
function ScopedFd (line 366) | static ScopedFd start_counter(pid_t tid, int group_fd,
function check_for_ioc_period_bug (line 439) | static uint32_t check_for_ioc_period_bug(perf_event_attrs &perf_attr) {
function do_branches (line 470) | static void do_branches() {
type CPUInfo (line 481) | struct CPUInfo {
function check_working_counters (line 498) | static void check_working_counters(perf_event_attrs &perf_attr, int pm...
function check_for_bugs (line 546) | static uint32_t check_for_bugs(perf_event_attrs &perf_attr, int pmu_in...
function get_cpus_info (line 556) | static vector<CPUInfo> get_cpus_info() {
function get_pmu_microarchs (line 577) | static std::vector<PmuConfig> get_pmu_microarchs() {
function init_attributes (line 609) | static void init_attributes() {
function check_pmu (line 688) | static void check_pmu(int pmu_index) {
function TicksSemantics (line 740) | TicksSemantics PerfCounters::default_ticks_semantics() {
function make_counter_async (line 779) | static void make_counter_async(ScopedFd& fd, int signal) {
function infallible_perf_event_reset_if_open (line 786) | static void infallible_perf_event_reset_if_open(ScopedFd& fd) {
function infallible_perf_event_enable_if_open (line 794) | static void infallible_perf_event_enable_if_open(ScopedFd& fd) {
function infallible_perf_event_disable_if_open (line 802) | static void infallible_perf_event_disable_if_open(ScopedFd& fd) {
function pt_event_type (line 810) | static uint32_t pt_event_type() {
type PTCopyThreadState (line 832) | struct PTCopyThreadState {
method PTCopyThreadState (line 836) | PTCopyThreadState() {
method start_copying (line 842) | void start_copying(PerfCounters::PTState* state) {
method stop_copying (line 847) | void stop_copying(PerfCounters::PTState* state) {
method thread_run (line 858) | void thread_run() {
type perf_event_attr (line 897) | struct perf_event_attr
type perf_event_header (line 916) | struct perf_event_header
function PTData (line 948) | PTData PerfCounters::extract_intel_pt_data() {
type perf_event_attr (line 982) | struct perf_event_attr
type perf_event_attr (line 983) | struct perf_event_attr
type f_owner_ex (line 1001) | struct f_owner_ex
function Ticks (line 1070) | Ticks PerfCounters::stop(Task* t, Error* error) {
function Ticks (line 1100) | Ticks PerfCounters::ticks_for_unconditional_indirect_branch(Task*) {
function Ticks (line 1105) | Ticks PerfCounters::ticks_for_unconditional_direct_branch(Task*) {
function Ticks (line 1110) | Ticks PerfCounters::ticks_for_direct_call(Task*) {
function Ticks (line 1115) | Ticks PerfCounters::read_ticks(Task* t, Error* error) {
class BpfAccelerator (line 1209) | class BpfAccelerator {
method skips (line 1215) | uint64_t skips() const {
method BpfAccelerator (line 1220) | BpfAccelerator(struct bpf_object* bpf_obj, int bpf_prog_fd,
type perf_event_attr (line 1234) | struct perf_event_attr
type bpf_object (line 1235) | struct bpf_object
type bpf_object (line 1255) | struct bpf_object
type bpf_program (line 1270) | struct bpf_program
type user_regs_struct (line 1281) | struct user_regs_struct
function ScopedFd (line 1324) | ScopedFd BpfAccelerator::create_counter(pid_t tid) {
type user_regs_struct (line 1351) | struct user_regs_struct
FILE: src/PerfCounters.h
function namespace (line 24) | namespace rr {
FILE: src/PerfCounters_aarch64.h
type CPUID (line 4) | struct CPUID {
function operator (line 18) | bool operator!=(const CPUID &other) const
function CpuMicroarch (line 34) | static CpuMicroarch compute_cpu_microarch(const CPUID &cpuid) {
function set_cpuid (line 113) | static void set_cpuid(std::vector<CPUID> &cpuids, unsigned long cpuidx, ...
function get_cpuinfo_sysfs (line 129) | static inline void get_cpuinfo_sysfs(std::vector<CPUID> &res)
function try_read_procfs_line (line 172) | bool try_read_procfs_line(const std::string &line,
function get_cpuinfo_procfs (line 214) | static inline void get_cpuinfo_procfs(std::vector<CPUID> &res)
function vector (line 259) | static vector<CPUInfo> compute_cpus_info() {
function pmu_index (line 409) | int pmu_index) {
FILE: src/PerfCounters_x86.h
function CpuMicroarch (line 28) | static CpuMicroarch compute_cpu_microarch() {
function vector (line 188) | static vector<CPUInfo> compute_cpus_info() {
function check_for_kvm_in_txcp_bug (line 260) | static void check_for_kvm_in_txcp_bug(const perf_event_attrs &perf_attr) {
function check_for_xen_pmi_bug (line 281) | static void check_for_xen_pmi_bug(const perf_event_attrs &perf_attr) {
function check_for_zen_speclockmap (line 426) | static void check_for_zen_speclockmap() {
function check_for_freeze_on_smi (line 460) | static void check_for_freeze_on_smi() {
function check_for_arch_bugs (line 497) | static void check_for_arch_bugs(perf_event_attrs &perf_attr) {
function post_init_pmu_uarchs (line 511) | static void post_init_pmu_uarchs(std::vector<PmuConfig> &) {
function always_recreate_counters (line 515) | static bool always_recreate_counters(const perf_event_attrs &perf_attr) {
function arch_check_restricted_counter (line 522) | static void arch_check_restricted_counter() {
type perf_event_attr (line 537) | struct perf_event_attr
FILE: src/PidFdMonitor.cc
type rr (line 7) | namespace rr {
function PidFdMonitor (line 9) | PidFdMonitor*
FILE: src/PidFdMonitor.h
type perf_event_attr (line 10) | struct perf_event_attr
function namespace (line 12) | namespace rr {
FILE: src/PreserveFileMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/ProcFdDirMonitor.cc
type rr (line 15) | namespace rr {
function filter_dirent_structs (line 31) | static int filter_dirent_structs(RecordTask* t, uint8_t* buf, size_t s...
function filter_dirents_arch (line 61) | static void filter_dirents_arch(RecordTask* t) {
function filter_dirents (line 113) | static void filter_dirents(RecordTask* t) {
FILE: src/ProcFdDirMonitor.h
function namespace (line 9) | namespace rr {
FILE: src/ProcMemMonitor.cc
type rr (line 15) | namespace rr {
FILE: src/ProcMemMonitor.h
function namespace (line 9) | namespace rr {
FILE: src/ProcStatMonitor.cc
type rr (line 19) | namespace rr {
function filter_proc_stat (line 22) | static void filter_proc_stat(string& data, const cpu_set_t& active) {
FILE: src/ProcStatMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/ProcessorTraceDecoder.cc
type rr (line 18) | namespace rr {
function string (line 20) | static string pt_err(int status) {
function read_mem_callback (line 32) | int read_mem_callback(uint8_t *buffer, size_t size,
function string (line 153) | string ProcessorTraceDecoder::internal_error_context_string() {
FILE: src/ProcessorTraceDecoder.h
type pt_insn_decoder (line 14) | struct pt_insn_decoder
function namespace (line 16) | namespace rr {
FILE: src/PsCommand.cc
type rr (line 13) | namespace rr {
class PsCommand (line 15) | class PsCommand : public Command {
method PsCommand (line 20) | PsCommand(const char* name, const char* help) : Command(name, help) {}
function print_exec_cmd_line (line 27) | static void print_exec_cmd_line(const TraceTaskEvent& event, FILE* out) {
function update_tid_to_pid_map (line 36) | static void update_tid_to_pid_map(map<pid_t, pid_t>& tid_to_pid,
function count_tids_for_pid (line 51) | static int count_tids_for_pid(const std::map<pid_t, pid_t> tid_to_pid,
function find_cmd_line (line 62) | static ssize_t find_cmd_line(pid_t pid, const vector<TraceTaskEvent>& ...
function string (line 80) | string find_exit_code(pid_t pid, const vector<TraceTaskEvent>& events,
function ps (line 103) | static int ps(const string& trace_dir, FILE* out) {
FILE: src/RRPageMonitor.h
function namespace (line 9) | namespace rr {
FILE: src/RecordCommand.cc
type rr (line 28) | namespace rr {
type RecordFlags (line 114) | struct RecordFlags {
method RecordFlags (line 202) | RecordFlags()
function parse_signal_name (line 230) | static void parse_signal_name(ParsedOption& opt) {
function parse_feature_bits (line 249) | static vector<uint32_t> parse_feature_bits(ParsedOption& opt) {
function parse_record_arg (line 264) | static bool parse_record_arg(vector<string>& args, RecordFlags& flags) {
function handle_SIGTERM (line 564) | static void handle_SIGTERM(__attribute__((unused)) int sig) {
function handle_SIGSEGV (line 589) | static void handle_SIGSEGV(__attribute__((unused)) int sig) {
function install_signal_handlers (line 594) | static void install_signal_handlers(void) {
function setup_session_from_flags (line 614) | static void setup_session_from_flags(RecordSession& session,
function force_close_record_session (line 644) | void force_close_record_session() {
function copy_preload_sources_to_trace (line 650) | static void copy_preload_sources_to_trace(const string& trace_dir) {
function save_rr_git_revision (line 681) | static void save_rr_git_revision(const string& trace_dir) {
function WaitStatus (line 704) | static WaitStatus record(const vector<string>& args, const RecordFlags...
function exec_child (line 784) | static void exec_child(vector<string>& args) {
function reset_uid_sudo (line 802) | static void reset_uid_sudo() {
function ScopedFd (line 836) | static ScopedFd open_controlling_terminal_if_foreground_process_group_...
function detach_teleport (line 849) | static void detach_teleport() {
type sigaction (line 881) | struct sigaction
type sigaction (line 882) | struct sigaction
FILE: src/RecordCommand.h
function namespace (line 8) | namespace rr {
FILE: src/RecordSession.cc
type rr (line 34) | namespace rr {
function mask_low_bit (line 45) | static remote_ptr<T> mask_low_bit(remote_ptr<T> p) {
function record_robust_futex_change (line 50) | static void record_robust_futex_change(
function record_robust_futex_changes_arch (line 83) | static void record_robust_futex_changes_arch(RecordTask* t) {
function record_robust_futex_changes (line 112) | static void record_robust_futex_changes(RecordTask* t) {
function looks_like_syscall_entry (line 116) | static bool looks_like_syscall_entry(RecordTask* t) {
function handle_ptrace_exit_event (line 153) | static bool handle_ptrace_exit_event(RecordTask* t) {
function note_entering_syscall (line 308) | static void note_entering_syscall(RecordTask* t) {
function is_in_vsyscall (line 340) | static bool is_in_vsyscall(remote_code_ptr ip)
function is_in_vsyscall (line 348) | static bool is_in_vsyscall(remote_code_ptr)
function seccomp_trap_done (line 494) | static void seccomp_trap_done(RecordTask* t) {
function debug_exec_state (line 814) | static void debug_exec_state(const char* msg, RecordTask* t) {
function is_ptrace_any_singlestep_arch (line 819) | static bool is_ptrace_any_singlestep_arch(int command) {
function is_ptrace_any_singlestep (line 824) | static bool is_ptrace_any_singlestep(SupportedArch arch, int command)
function advance_to_disarm_desched_syscall (line 941) | static void advance_to_disarm_desched_syscall(RecordTask* t) {
function retry_syscall_patch (line 1020) | static void retry_syscall_patch(RecordTask* t, remote_code_ptr orig_sy...
function syscall_not_restarted (line 1033) | static void syscall_not_restarted(RecordTask* t) {
function maybe_restart_syscall (line 1056) | static bool maybe_restart_syscall(RecordTask* t) {
function maybe_discard_syscall_interruption (line 1079) | static void maybe_discard_syscall_interruption(RecordTask* t, intptr_t...
function copy_syscall_arg_regs (line 1107) | static void copy_syscall_arg_regs(Registers* to, const Registers& from) {
function maybe_trigger_emulated_ptrace_syscall_exit_stop (line 1116) | static void maybe_trigger_emulated_ptrace_syscall_exit_stop(RecordTask...
function save_interrupted_syscall_ret_in_syscallbuf (line 1127) | static void save_interrupted_syscall_ret_in_syscallbuf(RecordTask* t,
function is_in_privileged_syscall (line 1138) | static bool is_in_privileged_syscall(RecordTask* t) {
function RecordTask (line 1421) | RecordTask* RecordSession::revive_task_for_exec(pid_t rec_tid) {
function setup_sigframe_siginfo_arch (line 1460) | static void setup_sigframe_siginfo_arch(RecordTask* t,
function setup_sigframe_siginfo (line 1484) | static void setup_sigframe_siginfo(RecordTask* t, const siginfo_t& sig...
function preinject_signal (line 1491) | static bool preinject_signal(RecordTask* t) {
function maybe_grow_stack_for_sigframe (line 1536) | static void maybe_grow_stack_for_sigframe(RecordTask* t) {
function inject_handled_signal (line 1582) | static bool inject_handled_signal(RecordTask* t) {
function is_ptrace_any_sysemu_arch (line 2017) | static bool is_ptrace_any_sysemu_arch(int command) {
function is_ptrace_any_sysemu (line 2023) | static bool is_ptrace_any_sysemu(SupportedArch arch, int command)
function inject_ld_helper_library (line 2213) | static void inject_ld_helper_library(vector<string>& env,
function strip_outer_ld_preload (line 2244) | void strip_outer_ld_preload(vector<string>& env) {
type ExeInfo (line 2287) | struct ExeInfo {
method ExeInfo (line 2288) | ExeInfo() : arch(NativeArch::arch()) {}
method setup_asan_memory_ranges (line 2296) | void setup_asan_memory_ranges() {
method setup_tsan_memory_ranges (line 2304) | void setup_tsan_memory_ranges() {
method check_sanitizer_arch (line 2313) | bool check_sanitizer_arch() {
function ExeInfo (line 2326) | static ExeInfo read_exe_info(const string& exe_file) {
method ExeInfo (line 2288) | ExeInfo() : arch(NativeArch::arch()) {}
method setup_asan_memory_ranges (line 2296) | void setup_asan_memory_ranges() {
method setup_tsan_memory_ranges (line 2304) | void setup_tsan_memory_ranges() {
method check_sanitizer_arch (line 2313) | bool check_sanitizer_arch() {
function string (line 2361) | static string lookup_by_path(const string& name) {
type stat (line 2436) | struct stat
function Task (line 2801) | Task* RecordSession::new_task(pid_t tid, pid_t, uint32_t serial,
function RecordTask (line 2811) | RecordTask* RecordSession::find_task(pid_t rec_tid) const {
function RecordTask (line 2815) | RecordTask* RecordSession::find_task(const TaskUid& tuid) const {
function RecordTask (line 2819) | RecordTask* RecordSession::find_detached_proxy_task(pid_t proxy_tid) c...
FILE: src/RecordSession.h
function namespace (line 16) | namespace rr {
FILE: src/RecordTask.cc
type rr (line 28) | namespace rr {
type Sighandler (line 35) | struct Sighandler {
method Sighandler (line 36) | Sighandler() : resethand(false), takes_siginfo(false) {}
method init_arch (line 39) | void init_arch(const typename Arch::kernel_sigaction& ksa) {
method reset_arch (line 47) | void reset_arch() {
method SignalDisposition (line 54) | SignalDisposition disposition() const {
method remote_code_ptr (line 67) | remote_code_ptr get_user_handler() const {
function reset_handler (line 80) | static void reset_handler(Sighandler* handler, SupportedArch arch) {
type Sighandlers (line 84) | struct Sighandlers {
method shr_ptr (line 87) | shr_ptr clone() const {
method Sighandler (line 98) | Sighandler& get(int sig) {
method Sighandler (line 102) | const Sighandler& get(int sig) const {
method init_from_current_process (line 107) | void init_from_current_process() {
method reset_user_handlers (line 134) | void reset_user_handlers(SupportedArch arch) {
method assert_valid (line 146) | void assert_valid(int sig) const {
method shr_ptr (line 150) | static shr_ptr create() { return shr_ptr(new Sighandlers()); }
method Sighandlers (line 155) | Sighandlers() {}
function RecordSession (line 309) | RecordSession& RecordTask::session() const {
function TraceWriter (line 313) | TraceWriter& RecordTask::trace_writer() const {
function Task (line 317) | Task* RecordTask::clone(CloneReason reason, int flags, remote_ptr<void...
function do_preload_init_arch (line 397) | static void do_preload_init_arch(RecordTask* t) {
function do_preload_init (line 450) | static void do_preload_init(RecordTask* t) {
function find_free_file_descriptor (line 463) | static int find_free_file_descriptor(RecordTask* t) {
function is_synthetic_SIGCHLD (line 994) | static bool is_synthetic_SIGCHLD(const siginfo_t& si) {
function siginfo_t (line 1097) | siginfo_t& RecordTask::get_saved_ptrace_siginfo() {
function siginfo_t (line 1112) | siginfo_t RecordTask::take_ptrace_signal_siginfo(int sig) {
function pid_t (line 1127) | static pid_t get_ppid(pid_t pid) {
function remote_code_ptr (line 1221) | remote_code_ptr RecordTask::get_signal_user_handler(int sig) const {
function is_unstoppable_signal (line 1233) | static bool is_unstoppable_signal(int sig) {
function SignalDisposition (line 1276) | SignalDisposition RecordTask::sig_disposition(int sig) const {
function SignalResolvedDisposition (line 1280) | SignalResolvedDisposition RecordTask::sig_resolved_disposition(
function sig_set_t (line 1318) | sig_set_t RecordTask::read_sigmask_from_process() {
function sig_set_t (line 1347) | sig_set_t RecordTask::get_sigmask() {
function read_ptr_arch (line 1630) | static uint64_t read_ptr_arch(Task* t, remote_ptr<void> p, bool* ok) {
function read_ptr (line 1634) | static uint64_t read_ptr(Task* t, remote_ptr<void> p, bool* ok) {
type syscallbuf_record (line 1705) | struct syscallbuf_record
function maybe_handle_set_robust_list_arch (line 1888) | static void maybe_handle_set_robust_list_arch(RecordTask* t) {
function maybe_handle_set_robust_list (line 1906) | static void maybe_handle_set_robust_list(RecordTask* t) {
function maybe_handle_rseq_arch (line 1911) | static void maybe_handle_rseq_arch(RecordTask* t) {
function maybe_handle_rseq (line 1929) | static void maybe_handle_rseq(RecordTask* t) {
type syscallbuf_hdr (line 1947) | struct syscallbuf_hdr
function pid_t (line 2148) | pid_t RecordTask::get_parent_pid() const { return get_ppid(tid); }
function read_pid_ns (line 2186) | static uint64_t read_pid_ns(const RecordTask* t) {
function maybe_restore_original_syscall_registers_arch (line 2259) | static void maybe_restore_original_syscall_registers_arch(RecordTask* t,
type rlimit (line 2329) | struct rlimit
type rlimit64 (line 2332) | struct rlimit64
FILE: src/RecordTask.h
function namespace (line 11) | namespace rr {
function push_event (line 457) | void push_event(const Event& ev) { pending_events.push_back(ev); }
function pop_noop (line 460) | void pop_noop() { pop_event(EV_NOOP); }
function pop_desched (line 461) | void pop_desched() { pop_event(EV_DESCHED); }
function pop_seccomp_trap (line 462) | void pop_seccomp_trap() { pop_event(EV_SECCOMP_TRAP); }
function pop_signal_delivery (line 463) | void pop_signal_delivery() { pop_event(EV_SIGNAL_DELIVERY); }
function pop_signal_handler (line 464) | void pop_signal_handler() { pop_event(EV_SIGNAL_HANDLER); }
function pop_syscall (line 465) | void pop_syscall() { pop_event(EV_SYSCALL); }
function pop_syscall_interruption (line 466) | void pop_syscall_interruption() { pop_event(EV_SYSCALL_INTERRUPTION); }
function virtual (line 467) | virtual void log_pending_events() const override;
function Event (line 475) | Event *prev_ev() {
type FlushSyscallbuf (line 509) | enum FlushSyscallbuf {
type AllowSyscallbufReset (line 516) | enum AllowSyscallbufReset {
function pid_t (line 541) | pid_t get_parent_pid() const;
function waiting_for_pid_namespace_tasks_to_exit (line 610) | bool waiting_for_pid_namespace_tasks_to_exit() const;
FILE: src/Registers.cc
type rr (line 17) | namespace rr {
type RegisterValue (line 19) | struct RegisterValue {
method RegisterValue (line 31) | constexpr RegisterValue()
method RegisterValue (line 34) | RegisterValue(const char* name_, size_t offset_, size_t nbytes_)
method RegisterValue (line 39) | RegisterValue(const char* name_, size_t offset_, size_t nbytes_,
method mask_for_nbytes (line 60) | static uint64_t mask_for_nbytes(size_t nbytes) {
type RegisterTable (line 70) | struct RegisterTable : std::array<RegisterValue, N> {
method RegisterTable (line 71) | RegisterTable(std::initializer_list<RegisterInit> list) {
type RegisterInfo (line 78) | struct RegisterInfo
type RegisterInfo<rr::X86Arch> (line 80) | struct RegisterInfo<rr::X86Arch> {
method ignore_undefined_register (line 81) | static bool ignore_undefined_register(GdbServerRegister regno) {
type RegisterInfo<rr::X64Arch> (line 89) | struct RegisterInfo<rr::X64Arch> {
method ignore_undefined_register (line 90) | static bool ignore_undefined_register(GdbServerRegister regno) {
type RegisterInfo<rr::ARM64Arch> (line 98) | struct RegisterInfo<rr::ARM64Arch> {
method ignore_undefined_register (line 99) | static bool ignore_undefined_register(GdbServerRegister) {
type RegisterPrinting (line 198) | struct RegisterPrinting
type RegisterPrinting<4> (line 200) | struct RegisterPrinting<4> {
type RegisterPrinting<8> (line 205) | struct RegisterPrinting<8> {
function print_single_register (line 211) | void print_single_register(FILE* f, const char* name, const void* regi...
function convert_x86 (line 496) | void convert_x86(X86Arch::user_regs_struct& x86,
function to_x86_narrow (line 517) | void to_x86_narrow(int32_t& r32, uint64_t& r64) { r32 = r64; }
function from_x86_narrow (line 518) | void from_x86_narrow(int32_t& r32, uint64_t& r64) { r64 = (uint32_t)r3...
function from_x86_narrow_signed (line 519) | void from_x86_narrow_signed(int32_t& r32, uint64_t& r64) { r64 = (int6...
type X64Arch::user_regs_struct (line 543) | struct X64Arch::user_regs_struct
function iovec (line 557) | iovec Registers::get_ptrace_iovec() {
function ostream (line 699) | ostream& operator<<(ostream& stream, const Registers& r) {
FILE: src/Registers.h
type iovec (line 19) | struct iovec
function namespace (line 21) | namespace rr {
FILE: src/ReplayCommand.cc
type rr (line 26) | namespace rr {
type ReplayFlags (line 84) | struct ReplayFlags {
method ReplayFlags (line 147) | ReplayFlags()
function parse_replay_arg (line 165) | static bool parse_replay_arg(vector<string>& args, ReplayFlags& flags) {
function find_pid_for_command (line 304) | static int find_pid_for_command(const string& trace_dir,
function pid_exists (line 328) | static bool pid_exists(const string& trace_dir, pid_t pid) {
function pid_execs (line 342) | static bool pid_execs(const string& trace_dir, pid_t pid) {
function session_flags (line 362) | static ReplaySession::Flags session_flags(const ReplayFlags& flags, bo...
function to_microseconds (line 373) | static uint64_t to_microseconds(const struct timeval& tv) {
function serve_replay_no_debugger (line 377) | static void serve_replay_no_debugger(const string& trace_dir,
function handle_SIGINT_in_parent (line 470) | static void handle_SIGINT_in_parent(int sig) {
function handle_SIGINT_in_child (line 477) | static void handle_SIGINT_in_child(int sig) {
function DebuggerType (line 482) | static DebuggerType identify_debugger(const string& debugger_name) {
function replay (line 491) | static int replay(const string& trace_dir, const ReplayFlags& flags) {
FILE: src/ReplayCommand.h
function namespace (line 8) | namespace rr {
FILE: src/ReplaySession.cc
type rr (line 32) | namespace rr {
function debug_memory (line 34) | static void debug_memory(ReplayTask* t) {
function split_at_address (line 47) | static void split_at_address(ReplaySession::MemoryRanges& ranges,
function tracee_xsave_enabled (line 142) | static bool tracee_xsave_enabled(const TraceReader& trace_in) {
function check_xsave_compatibility (line 148) | static void check_xsave_compatibility(const TraceReader& trace_in) {
function can_checkpoint_at (line 355) | static bool can_checkpoint_at(const Event& ev) {
function Task (line 403) | Task* ReplaySession::new_task(pid_t tid, pid_t rec_tid, uint32_t serial,
function BindCPU (line 432) | BindCPU ReplaySession::cpu_binding() const {
function compute_ticks_request (line 495) | static bool compute_ticks_request(
function perform_interrupted_syscall (line 518) | static void perform_interrupted_syscall(ReplayTask* t) {
function Completion (line 574) | Completion ReplaySession::cont_syscall_boundary(
function emulate_syscall_entry (line 654) | static void emulate_syscall_entry(ReplayTask* t, const TraceFrame& frame,
function Completion (line 669) | Completion ReplaySession::enter_syscall(ReplayTask* t,
function Completion (line 748) | Completion ReplaySession::exit_syscall(ReplayTask* t) {
function do_replay_assist (line 776) | static bool do_replay_assist(Task* t) {
function Completion (line 812) | Completion ReplaySession::continue_or_step(ReplayTask* t,
function guard_overshoot (line 863) | static void guard_overshoot(ReplayTask* t, const Registers& target_regs,
function guard_unexpected_signal (line 889) | static void guard_unexpected_signal(ReplayTask* t) {
function is_same_execution_point (line 906) | static bool is_same_execution_point(ReplayTask* t, const Registers& re...
function Completion (line 963) | Completion ReplaySession::emulate_async_signal(
function is_fatal_default_action (line 1228) | static bool is_fatal_default_action(int sig) {
function Completion (line 1237) | Completion ReplaySession::emulate_signal_delivery(ReplayTask* oldtask) {
function treat_signal_event_as_deterministic (line 1283) | static bool treat_signal_event_as_deterministic(const SignalEvent& ev) {
function Completion (line 1300) | Completion ReplaySession::emulate_deterministic_signal(
type syscallbuf_hdr (line 1368) | struct syscallbuf_hdr
function string (line 1389) | static string mprotect_record_string(const mprotect_record& record) {
function apply_mprotect_records (line 1399) | static uint32_t apply_mprotect_records(ReplayTask* t,
function write_breakpoint_value (line 1441) | static void write_breakpoint_value(ReplayTask *t, uint64_t breakpoint_...
function maybe_handle_rseq_arch (line 1454) | static void maybe_handle_rseq_arch(ReplayTask* t) {
function maybe_handle_rseq (line 1467) | static void maybe_handle_rseq(ReplayTask* t) {
function Completion (line 1477) | Completion ReplaySession::flush_syscallbuf(ReplayTask* t,
function Completion (line 1582) | Completion ReplaySession::patch_ip(ReplayTask* t, const StepConstraint...
function Completion (line 1648) | Completion ReplaySession::patch_next_syscall(
function has_deterministic_ticks (line 1667) | static bool has_deterministic_ticks(const Event& ev,
function Completion (line 1690) | Completion ReplaySession::advance_to_ticks_target(
function Completion (line 1709) | Completion ReplaySession::try_one_trace_step(
function end_task (line 1776) | static void end_task(ReplayTask* t) {
function Completion (line 1806) | Completion ReplaySession::exit_task(ReplayTask* t) {
function ReplayTask (line 1815) | ReplayTask* ReplaySession::revive_task_for_exec() {
function ReplayTask (line 1855) | ReplayTask* ReplaySession::setup_replay_one_trace_frame(ReplayTask* t) {
function ReplayResult (line 2021) | ReplayResult ReplaySession::replay_step(const StepConstraints& constra...
function ReplayTask (line 2185) | ReplayTask* ReplaySession::find_task(pid_t rec_tid) const {
function ReplayTask (line 2189) | ReplayTask* ReplaySession::find_task(const TaskUid& tuid) const {
FILE: src/ReplaySession.h
type syscallbuf_hdr (line 19) | struct syscallbuf_hdr
type ReplayFlushBufferedSyscallState (line 30) | struct ReplayFlushBufferedSyscallState {
type ReplayTraceStepType (line 41) | enum ReplayTraceStepType {
type ReplayTraceStep (line 83) | struct ReplayTraceStep {
type ReplayStatus (line 106) | enum ReplayStatus {
type ReplayResult (line 116) | struct ReplayResult {
function class (line 137) | class ReplayStepKey {
function ReplayTask (line 218) | ReplayTask* current_task() {
type Flags (line 243) | struct Flags {
function ReplaySession (line 297) | ReplaySession* as_replay() override { return this; }
function SupportedArch (line 300) | SupportedArch arch() { return trace_in.arch(); }
type std (line 315) | typedef std::set<MemoryRange, MappingComparator> MemoryRanges;
type PerfTradeoff (line 316) | enum PerfTradeoff {
function virtual (line 336) | virtual TraceStream* trace_stream() override { return &trace_in; }
function virtual (line 338) | virtual BindCPU cpu_binding() const override;
function virtual (line 342) | virtual int tracee_output_fd(int dflt) override {
function notify_detected_transient_error (line 373) | void notify_detected_transient_error() { detected_transient_error_ = tru...
function set_suppress_stdio_before_event (line 375) | void set_suppress_stdio_before_event(FrameTime event) { suppress_stdio_b...
FILE: src/ReplayTask.cc
type rr (line 13) | namespace rr {
function ReplaySession (line 23) | ReplaySession& ReplayTask::session() const {
function TraceReader (line 27) | TraceReader& ReplayTask::trace_reader() const {
function TraceFrame (line 134) | const TraceFrame& ReplayTask::current_trace_frame() const {
function FrameTime (line 138) | FrameTime ReplayTask::current_frame_time() const {
function write_data_with_holes (line 143) | static size_t write_data_with_holes(ReplayTask* t,
function ExtraRegisters (line 219) | const ExtraRegisters& ReplayTask::extra_regs() {
FILE: src/ReplayTask.h
function namespace (line 9) | namespace rr {
FILE: src/ReplayTimeline.cc
type rr (line 14) | namespace rr {
function ostream (line 37) | ostream& operator<<(ostream& s, const ReplayTimeline::MarkKey& o) {
function ostream (line 42) | ostream& operator<<(ostream& s, const ReplayTimeline::InternalMark& o) {
function ostream (line 46) | ostream& operator<<(ostream& s, const ReplayTimeline::Mark& o) {
function ostream (line 53) | ostream& operator<<(ostream& s, const ReplayTimeline::ProtoMark& o) {
function equal_regs (line 96) | static bool equal_regs(const Registers& r1, const Registers& r2) {
function ReplayResult (line 454) | ReplayResult ReplayTimeline::replay_step_to_mark(
function ReplayResult (line 801) | ReplayResult ReplayTimeline::singlestep_with_breakpoints_disabled() {
function ReplayTask (line 926) | static ReplayTask* to_replay_task(const BreakStatus& status) {
function arch_watch_fires_before_instr (line 930) | static bool arch_watch_fires_before_instr(SupportedArch arch) {
function ReplayResult (line 943) | ReplayResult ReplayTimeline::reverse_continue(
function ReplayResult (line 1175) | ReplayResult ReplayTimeline::reverse_singlestep(
function ReplayResult (line 1463) | ReplayResult ReplayTimeline::replay_step_forward(RunCommand command) {
function ReplayResult (line 1498) | ReplayResult ReplayTimeline::reverse_singlestep(
function inter_checkpoint_interval (line 1569) | static ReplayTimeline::Progress inter_checkpoint_interval(
function next_interval_length (line 1576) | static ReplayTimeline::Progress next_interval_length(
FILE: src/ReplayTimeline.h
function namespace (line 19) | namespace rr {
function operator (line 290) | bool operator<=(const MarkKey& other) const { return !(other < *this); }
function operator (line 291) | bool operator>(const MarkKey& other) const { return other < *this; }
function operator (line 292) | bool operator>=(const MarkKey& other) const { return !(*this < other); }
function operator (line 293) | bool operator==(const MarkKey& other) const {
function operator (line 297) | bool operator!=(const MarkKey& other) const { return !(*this == other); }
function key (line 316) | ProtoMark(const MarkKey& key) : key(key) {}
type InternalMark (line 330) | struct InternalMark {
function MarkKey (line 380) | static MarkKey session_mark_key(ReplaySession& session) {
type ForceProgress (line 394) | enum ForceProgress { FORCE_PROGRESS, DONT_FORCE_PROGRESS }
type ReplayStepToMarkStrategy (line 399) | struct ReplayStepToMarkStrategy {
FILE: src/RerunCommand.cc
type rr (line 23) | namespace rr {
class RerunCommand (line 31) | class RerunCommand : public Command {
method RerunCommand (line 36) | RerunCommand(const char* name, const char* help) : Command(name, hel...
type RerunFlags (line 75) | struct RerunFlags {
method RerunFlags (line 88) | RerunFlags()
function parse_rerun_arg (line 97) | static bool parse_rerun_arg(vector<string>& args, RerunFlags& flags) {
function treat_event_completion_as_singlestep_complete (line 170) | static bool treat_event_completion_as_singlestep_complete(const Event&...
function ignore_singlestep_for_event (line 187) | static bool ignore_singlestep_for_event(const Event& ev) {
function run_diversion_function (line 200) | static void run_diversion_function(ReplaySession& replay, Task* task,
function session_flags (line 236) | static ReplaySession::Flags session_flags(const RerunFlags& flags) {
function rerun (line 244) | static int rerun(const string& trace_dir, const RerunFlags& flags, Com...
FILE: src/ReturnAddressList.cc
type rr (line 7) | namespace rr {
function read_bytes_no_breakpoints (line 9) | static bool read_bytes_no_breakpoints(Task* t, remote_ptr<void> p, ssi...
function return_addresses_x86ish (line 20) | static void return_addresses_x86ish(ReturnAddressList* result, Task* t) {
function compute_return_addresses (line 71) | static void compute_return_addresses(ReturnAddressList* result, Task* ...
FILE: src/ReturnAddressList.h
function namespace (line 10) | namespace rr {
FILE: src/RmCommand.cc
type rr (line 15) | namespace rr {
class RmCommand (line 17) | class RmCommand : public Command {
method RmCommand (line 22) | RmCommand(const char* name, const char* help) : Command(name, help) {}
type RmFlags (line 31) | struct RmFlags {
method RmFlags (line 33) | RmFlags() : force(false) {}
function parse_rm_arg (line 36) | static bool parse_rm_arg(vector<string>& args, RmFlags& flags) {
function _rm_cb (line 58) | static int _rm_cb(const char* path, const struct stat*, int, struct FT...
function remove_all (line 66) | static bool remove_all(const string& path) {
function rm (line 75) | static int rm(const string& trace, const RmFlags& flags, FILE* out) {
FILE: src/Scheduler.cc
type rr (line 32) | namespace rr {
function random_frac (line 185) | static double random_frac() { return double(random() % INT32_MAX) / IN...
function treat_syscall_as_nonblocking (line 203) | static bool treat_syscall_as_nonblocking(int syscallno, SupportedArch ...
class WaitAggregator (line 209) | class WaitAggregator {
method WaitAggregator (line 211) | explicit WaitAggregator(int num_waits_before_polling_stops) :
function RecordTask (line 423) | RecordTask* Scheduler::find_next_runnable_task(WaitAggregator& wait_ag...
function WaitResultCode (line 579) | static WaitResultCode wait_any(pid_t& tid, WaitStatus& status, double ...
function RecordTask (line 609) | static RecordTask* find_waited_task(RecordSession& session, pid_t tid,...
function round_robin_scheduling_enabled (line 1112) | static bool round_robin_scheduling_enabled() {
function RecordTask (line 1143) | RecordTask* Scheduler::get_round_robin_task() {
FILE: src/Scheduler.h
function set_max_ticks (line 92) | void set_max_ticks(Ticks max_ticks) {
function Ticks (line 96) | Ticks max_ticks() { return max_ticks_; }
function set_always_switch (line 97) | void set_always_switch(bool always_switch) {
type Rescheduled (line 114) | struct Rescheduled {
function RecordTask (line 142) | RecordTask* current() const { return current_; }
function set_current (line 143) | void set_current(RecordTask* t) { current_ = t; }
function expire_timeslice (line 147) | void expire_timeslice() { current_timeslice_end_ = 0; }
type CompareByScheduleOrder (line 192) | struct CompareByScheduleOrder {
FILE: src/ScopedFd.h
function namespace (line 16) | namespace rr {
FILE: src/SeccompFilterRewriter.cc
type rr (line 21) | namespace rr {
function set_syscall_result (line 23) | static void set_syscall_result(RecordTask* t, long ret) {
function pass_through_seccomp_filter (line 29) | static void pass_through_seccomp_filter(RecordTask* t) {
function install_patched_seccomp_filter_arch (line 41) | static void install_patched_seccomp_filter_arch(
FILE: src/SeccompFilterRewriter.h
function namespace (line 31) | namespace rr {
FILE: src/Session.cc
type rr (line 32) | namespace rr {
type Session::CloneCompletion (line 34) | struct Session::CloneCompletion {
type AddressSpaceClone (line 35) | struct AddressSpaceClone {
function Task (line 156) | Task* Session::new_task(pid_t tid, pid_t rec_tid, uint32_t serial,
function Task (line 169) | Task* Session::clone(Task* p, int flags, remote_ptr<void> stack,
function Task (line 179) | Task* Session::find_task(pid_t rec_tid) const {
function Task (line 185) | Task* Session::find_task(const TaskUid& tuid) const {
function ThreadGroup (line 190) | ThreadGroup* Session::find_thread_group(const ThreadGroupUid& tguid) c...
function ThreadGroup (line 199) | ThreadGroup* Session::find_thread_group(pid_t pid) const {
function AddressSpace (line 209) | AddressSpace* Session::find_address_space(const AddressSpaceUid& vmuid...
function ScopedFd (line 255) | ScopedFd Session::create_spawn_task_error_pipe() {
function string (line 264) | string Session::read_spawned_task_error() const {
function BreakStatus (line 274) | BreakStatus Session::diagnose_debugger_trap(Task* t, RunCommand run_co...
function remap_shared_mmap (line 391) | static void remap_shared_mmap(AutoRemoteSyscalls& remote, EmuFs& emu_fs,
function KernelMapping (line 449) | KernelMapping Session::create_shared_mmap(
function capture_syscallbuf (line 662) | static vector<uint8_t> capture_syscallbuf(const AddressSpace::Mapping& m,
function BindCPU (line 758) | BindCPU Session::cpu_binding() const {
FILE: src/Session.h
function namespace (line 21) | namespace rr {
function Task (line 143) | Task* task() const { return task_context.task; }
type RunCommand (line 145) | enum RunCommand {
function is_singlestep (line 156) | inline bool is_singlestep(RunCommand command) {
function class (line 170) | class Session {
FILE: src/SourcesCommand.cc
type rr (line 29) | namespace rr {
class SourcesCommand (line 57) | class SourcesCommand : public Command {
method SourcesCommand (line 62) | SourcesCommand(const char* name, const char* help) : Command(name, h...
class ExplicitSourcesCommand (line 80) | class ExplicitSourcesCommand : public Command {
method ExplicitSourcesCommand (line 85) | ExplicitSourcesCommand(const char* name, const char* help) : Command...
type SourcesFlags (line 102) | struct SourcesFlags {
function dir_name (line 107) | static void dir_name(string& s) {
function is_absolute (line 118) | static bool is_absolute(const string& s) {
function prepend_path (line 122) | static void prepend_path(const char* prefix, string& s) {
type DirExistsCache (line 134) | struct DirExistsCache {
method dir_exists (line 136) | bool dir_exists(const string& dir) {
type DebugDirs (line 147) | struct DebugDirs {
class DebugDirManager (line 156) | class DebugDirManager {
method DebugDirs (line 161) | DebugDirs initial_directories() {
method DebugDirManager (line 188) | DebugDirManager(const DebugDirManager&) = delete;
method DebugDirManager (line 189) | DebugDirManager& operator=(const DebugDirManager&) = delete;
function DebugDirs (line 282) | DebugDirs DebugDirManager::process_one_binary(const string& binary_pat...
function DebugDirs (line 300) | DebugDirs DebugDirManager::read_result() {
function resolve_file_name (line 364) | static bool resolve_file_name(const char* original_file_name,
type DwoInfo (line 416) | struct DwoInfo {
type OutputCompDirSubstitution (line 426) | struct OutputCompDirSubstitution {
function process_compilation_units (line 431) | static bool process_compilation_units(ElfFileReader& reader,
type ExternalDebugInfo (line 579) | struct ExternalDebugInfo {
function find_auxiliary_file (line 600) | static unique_ptr<ElfFileReader>
function find_auxiliary_file_by_buildid (line 704) | static unique_ptr<ElfFileReader>
function process_auxiliary_file (line 748) | static bool process_auxiliary_file(ElfFileReader& trace_file_reader,
function try_debuglink_file (line 803) | static bool try_debuglink_file(ElfFileReader& trace_file_reader,
type Symlink (line 876) | struct Symlink {
function has_subdir (line 881) | static bool has_subdir(string& base, const char* suffix) {
function assert_absolute (line 888) | static void assert_absolute(const string& path) {
function check_vcs_root (line 894) | static void check_vcs_root(string& path, set<string>* vcs_dirs) {
function string (line 912) | static string resolve_symlinks(const string& path,
function build_symlink_map (line 1031) | static void build_symlink_map(const set<string>& file_names,
function starts_with (line 1050) | static bool starts_with(const string& s, const string& prefix) {
function sources (line 1055) | static int sources(const iterable& binary_file_names,
function parse_sources_option (line 1289) | static bool parse_sources_option(vector<string>& args, SourcesFlags& f...
type stat (line 1405) | struct stat
FILE: src/StdioMonitor.cc
type rr (line 12) | namespace rr {
function Switchable (line 14) | Switchable StdioMonitor::will_write(Task* t) {
FILE: src/StdioMonitor.h
function namespace (line 8) | namespace rr {
FILE: src/StringVectorToCharArray.h
function namespace (line 9) | namespace rr {
FILE: src/SysCpuMonitor.cc
type rr (line 14) | namespace rr {
function string (line 19) | static string make_cpu_online_data(RecordTask* t) {
FILE: src/SysCpuMonitor.h
function namespace (line 9) | namespace rr {
FILE: src/TargetDescription.cc
type rr (line 10) | namespace rr {
class FeatureStream (line 12) | class FeatureStream {
method string (line 14) | string result() { return stream.str(); }
function FeatureStream (line 25) | FeatureStream& operator<<(FeatureStream& stream, Any any) {
method string (line 14) | string result() { return stream.str(); }
function FeatureStream (line 31) | FeatureStream& operator<<(FeatureStream& stream, rr::SupportedArch arc...
method string (line 14) | string result() { return stream.str(); }
function FeatureStream (line 52) | FeatureStream& operator<<(FeatureStream& stream, TargetFeature feature) {
method string (line 14) | string result() { return stream.str(); }
function string (line 130) | string TargetDescription::to_xml() const {
FILE: src/TargetDescription.h
function TargetFeature (line 14) | enum class TargetFeature : uint32_t {
FILE: src/Task.cc
type rr (line 64) | namespace rr {
function ReplayTask (line 113) | ReplayTask* Task::as_replay() {
function WaitStatus (line 203) | WaitStatus Task::kill() {
function string (line 310) | string Task::name() const {
type stat (line 384) | struct stat
type stat (line 387) | struct stat
type stat (line 393) | struct stat
type stat (line 396) | struct stat
function ScopedFd (line 402) | ScopedFd Task::open_fd(int fd, int flags) {
function string (line 408) | string Task::file_name_of_fd(int fd) {
function pid_t (line 421) | pid_t Task::get_ptrace_eventmsg_pid() {
function siginfo_t (line 429) | const siginfo_t& Task::get_siginfo() {
type syscallbuf_hdr (line 462) | struct syscallbuf_hdr
function ptrace_get_regs_set (line 531) | static vector<uint8_t> ptrace_get_regs_set(Task* t, const Registers& r...
function process_shmdt (line 539) | static void process_shmdt(Task* t, remote_ptr<void> addr) {
function ptrace_syscall_exit_legacy_arch (line 546) | static void ptrace_syscall_exit_legacy_arch(Task* t, Task* tracee, con...
function is_long_mode_segment (line 1058) | static bool is_long_mode_segment(uint32_t segment) {
function string (line 1108) | static string prname_from_exe_image(const string& e) {
function string (line 1152) | string Task::read_c_str(remote_ptr<char> child_addr, bool *ok) {
function Registers (line 1176) | const Registers& Task::regs() const {
function ExtraRegisters (line 1184) | const ExtraRegisters* Task::extra_regs_fallible() {
function dr_user_word_offset (line 1241) | static ssize_t dr_user_word_offset(size_t i) {
type iovec (line 1286) | struct iovec
type iovec (line 1293) | struct iovec
type iovec (line 1303) | struct iovec
type iovec (line 1325) | struct iovec
function is_singlestep_resume (line 1360) | static bool is_singlestep_resume(ResumeRequest request) {
function TrapReasons (line 1364) | TrapReasons Task::compute_trap_reasons() {
function setup_preload_thread_locals_arch (line 1472) | static void setup_preload_thread_locals_arch(Task* t) {
function cpu_has_KNL_string_singlestep_bug (line 1517) | static bool cpu_has_KNL_string_singlestep_bug() {
function cpu_has_KNL_string_singlestep_bug (line 1523) | static bool cpu_has_KNL_string_singlestep_bug() {
function single_step_coalesce_cutoff (line 1533) | static int single_step_coalesce_cutoff() { return 16; }
type iovec (line 1743) | struct iovec
type iovec (line 1765) | struct iovec
type iovec (line 1796) | struct iovec
type WatchBytesX86 (line 1810) | enum WatchBytesX86 {
function WatchBytesX86 (line 1816) | static WatchBytesX86 num_bytes_to_dr_len(size_t num_bytes) {
type DebugControl (line 1832) | struct DebugControl {
method enable (line 1853) | void enable(size_t index, WatchBytesX86 size, WatchType type) {
function set_x86_debug_regs (line 1881) | static bool set_x86_debug_regs(Task *t, const Task::HardwareWatchpoints&...
function query_max_bp_wp (line 1931) | static void query_max_bp_wp(Task* t, ssize_t* max_bp, ssize_t* max_wp) {
function set_debug_regs_internal (line 2011) | static bool set_debug_regs_internal(Task* t, const Task::HardwareWatchpo...
function set_thread_area (line 2028) | static void set_thread_area(std::vector<X86Arch::user_desc>& thread_areas_,
function pid_t (line 2066) | pid_t Task::tgid() const { return tg->tgid; }
function pid_t (line 2068) | pid_t Task::real_tgid() const {
function string (line 2073) | const string& Task::trace_dir() const {
function FrameTime (line 2079) | FrameTime Task::trace_time() const {
function is_signal_triggered_by_ptrace_interrupt (line 2084) | static bool is_signal_triggered_by_ptrace_interrupt(int group_stop_sig) {
function handle_alarm_signal (line 2098) | static void handle_alarm_signal(__attribute__((unused)) int sig) {}
type iovec (line 2233) | struct iovec
type iovec (line 2238) | struct iovec
function FrameTime (line 2244) | static FrameTime simulate_error_at_event() {
function simulate_transient_error (line 2252) | static bool simulate_transient_error(Task* t) {
function ignore_signal_for_detached_proxy (line 2264) | static bool ignore_signal_for_detached_proxy(int sig) {
type iovec (line 2393) | struct iovec
function set_tls_from_clone_arch (line 2516) | static void set_tls_from_clone_arch(Task* t, remote_ptr<void> tls) {
function set_tls_from_clone (line 2522) | static void set_tls_from_clone(Task* t, remote_ptr<void> tls) {
function setup_preload_thread_locals_from_clone_arch (line 2527) | static void setup_preload_thread_locals_from_clone_arch(Task* t, Task* o...
function Task (line 2551) | Task* Task::clone(CloneReason reason, int flags, remote_ptr<void> stack,
function Task (line 2712) | Task* Task::os_fork_into(Session* session, FdTable::shr_ptr new_fds) {
function Task (line 2735) | Task* Task::os_clone_into(const CapturedState& state,
function copy_tls_arch (line 2764) | static void copy_tls_arch(const Task::CapturedState& state,
function copy_tls (line 2779) | static void copy_tls(const Task::CapturedState& state,
function fdinfo_field (line 2784) | static int64_t fdinfo_field(Task* t, int fd, const char* field, bool mus...
function pid_t (line 2821) | pid_t Task::pid_of_pidfd(int fd) {
type syscallbuf_record (line 2917) | struct syscallbuf_record
type syscallbuf_record (line 2919) | struct syscallbuf_record
type syscallbuf_record (line 2923) | struct syscallbuf_record
function ScopedFd (line 2994) | ScopedFd& Task::pagemap_fd() {
function KernelMapping (line 3006) | KernelMapping Task::init_syscall_buffer(AutoRemoteSyscalls& remote,
function safe_pwrite64 (line 3199) | static ssize_t safe_pwrite64(Task* t, const void* buf, ssize_t buf_size,
function TraceStream (line 3387) | const TraceStream* Task::trace_stream() const {
function SupportedArch (line 3412) | SupportedArch Task::detect_syscall_arch() {
function do_preload_init_arch (line 3447) | static void do_preload_init_arch(Task* t) {
function do_preload_init (line 3461) | static void do_preload_init(Task* t) {
function perform_remote_clone_arch (line 3473) | static long perform_remote_clone_arch(
function perform_remote_clone (line 3486) | static long perform_remote_clone(AutoRemoteSyscalls& remote,
function Task (line 3494) | Task* Task::os_clone(CloneReason reason, Session* session,
function setup_fd_table (line 3515) | static void setup_fd_table(Task* t, FdTable& fds, int tracee_socket_fd_n...
function spawned_child_fatal_error (line 3522) | static void spawned_child_fatal_error(const ScopedFd& err_fd,
function disable_tsc (line 3539) | static void disable_tsc(const ScopedFd& err_fd) {
function set_up_process_arch (line 3553) | void set_up_process_arch(SupportedArch arch, const ScopedFd& err_fd) {
function set_up_process (line 3562) | static void set_up_process(Session& session, const ScopedFd& err_fd,
function create_seccomp_filter (line 3658) | static SeccompFilter<struct sock_filter> create_seccomp_filter() {
function set_up_seccomp_filter (line 3678) | static void set_up_seccomp_filter(const struct sock_fprog& prog, const S...
function run_initial_child (line 3689) | static void run_initial_child(Session& session, const ScopedFd& error_fd,
function Task (line 3759) | Task* Task::spawn(Session& session, ScopedFd& error_fd,
function file_was_deleted (line 3897) | static bool file_was_deleted(string s) {
function create_mapping (line 3903) | static void create_mapping(Task *t, AutoRemoteSyscalls &remote, const Ke...
function apply_mm_map (line 3924) | static void apply_mm_map(AutoRemoteSyscalls& remote, const NativeArch::p...
function copy_mem_mapping (line 3976) | static void copy_mem_mapping(Task* from, Task* to, const KernelMapping& ...
function copy_mem_mapping_just_used (line 3995) | static bool copy_mem_mapping_just_used(Task* from, Task* to, const Kerne...
function mremap_move (line 4051) | static void mremap_move(AutoRemoteSyscalls& remote, remote_ptr<void> src,
type VMappings (line 4065) | struct VMappings {
function move_vdso_and_vvar_mappings (line 4078) | static void move_vdso_and_vvar_mappings(AutoRemoteSyscalls& remote,
type rlimit64 (line 4277) | struct rlimit64
function __ptrace_cont (line 4302) | static bool __ptrace_cont(Task* t, ResumeRequest resume_how,
function setup_exec_args_arch (line 4355) | static void setup_exec_args_arch(Task* t, const std::string& filename,
function setup_exec_args (line 4373) | static void setup_exec_args(Task* t, const std::string& filename,
FILE: src/Task.h
type syscallbuf_hdr (line 28) | struct syscallbuf_hdr
type syscallbuf_record (line 29) | struct syscallbuf_record
function namespace (line 31) | namespace rr {
type WriteFlags (line 762) | enum WriteFlags {
function usable_scratch_size (line 968) | size_t usable_scratch_size() {
type CapturedState (line 982) | struct CapturedState {
function set_in_diversion (line 1021) | void set_in_diversion(bool in_diversion) {
function os_exec_stub (line 1085) | void os_exec_stub(SupportedArch arch) {
type CloneReason (line 1156) | enum CloneReason {
function virtual (line 1183) | virtual void post_wait_clone(Task*, int) {}
FILE: src/TaskishUid.h
function namespace (line 9) | namespace rr {
function namespace (line 81) | namespace std {
FILE: src/ThreadDb.cc
function ps_err_e (line 27) | ps_err_e ps_pglobal_lookup(struct ps_prochandle* h, const char*,
function ps_err_e (line 39) | ps_err_e ps_pdread(struct ps_prochandle* h, psaddr_t addr, void* buffer,
function ps_err_e (line 58) | ps_err_e ps_pdwrite(struct ps_prochandle*, psaddr_t, const void*, size_t) {
function ps_err_e (line 63) | ps_err_e ps_lgetregs(struct ps_prochandle* h, lwpid_t rec_tid,
function ps_err_e (line 77) | ps_err_e ps_lsetregs(struct ps_prochandle*, lwpid_t, const prgregset_t) {
function ps_err_e (line 82) | ps_err_e ps_lgetfpregs(struct ps_prochandle*, lwpid_t, prfpregset_t*) {
function ps_err_e (line 87) | ps_err_e ps_lsetfpregs(struct ps_prochandle*, lwpid_t, const prfpregset_...
function pid_t (line 92) | pid_t ps_getpid(struct ps_prochandle* h) {
function ps_err_e (line 100) | ps_err_e ps_get_thread_area(const struct ps_prochandle* h, lwpid_t rec_tid,
FILE: src/ThreadDb.h
function namespace (line 15) | namespace rr {
type ps_prochandle (line 23) | struct ps_prochandle {
function namespace (line 29) | namespace rr {
FILE: src/ThreadGroup.cc
type rr (line 10) | namespace rr {
FILE: src/ThreadGroup.h
function namespace (line 17) | namespace rr {
FILE: src/Ticks.h
function namespace (line 8) | namespace rr {
FILE: src/TraceField.cc
type rr (line 8) | namespace rr {
function print_hex (line 12) | void print_hex(uint8_t* value, size_t size, FILE* out) {
function print_value (line 22) | void print_value(const char* name, void* value, size_t size,
function seg_reg (line 92) | uint64_t seg_reg(const Registers& regs, uint8_t index) {
function find_gp_reg (line 112) | int find_gp_reg(const string& reg) {
function find_seg_reg (line 121) | int find_seg_reg(const string& reg) {
function print_trace_fields (line 132) | void print_trace_fields(ReplayTask* t, FrameTime event, uint64_t instr...
function parse_trace_fields (line 312) | bool parse_trace_fields(const string& value, vector<TraceField>* out) {
FILE: src/TraceField.h
function namespace (line 11) | namespace rr {
FILE: src/TraceFrame.cc
type rr (line 10) | namespace rr {
FILE: src/TraceFrame.h
function namespace (line 16) | namespace rr {
FILE: src/TraceInfoCommand.cc
type rr (line 27) | namespace rr {
class TraceInfoCommand (line 29) | class TraceInfoCommand : public Command {
method TraceInfoCommand (line 34) | TraceInfoCommand(const char* name, const char* help) : Command(name,...
function dump_trace_info (line 44) | static int dump_trace_info(const string& trace_dir, FILE* out) {
FILE: src/TraceStream.cc
type rr (line 46) | namespace rr {
type SubstreamData (line 58) | struct SubstreamData {
function SubstreamData (line 71) | static const SubstreamData& substream(TraceStream::Substream s) {
function dir_exists (line 87) | static bool dir_exists(const string& dir) {
function string (line 92) | static string default_rr_trace_dir() {
function string (line 127) | string trace_save_dir() {
function string (line 132) | string latest_trace_symlink() {
function string (line 136) | string resolve_trace_name(const string& trace_name)
class CompressedWriterOutputStream (line 159) | class CompressedWriterOutputStream : public kj::OutputStream {
method CompressedWriterOutputStream (line 161) | CompressedWriterOutputStream(CompressedWriter& writer) : writer(writ...
method write (line 164) | virtual void write(const void* buffer, size_t size) {
type IOException (line 172) | struct IOException {}
class CompressedReaderInputStream (line 174) | class CompressedReaderInputStream : public kj::BufferedInputStream {
method CompressedReaderInputStream (line 176) | CompressedReaderInputStream(CompressedReader& reader) : reader(reade...
method tryRead (line 179) | virtual size_t tryRead(void* buffer, size_t, size_t maxBytes) {
method skip (line 185) | virtual void skip(size_t bytes) {
method tryGetReadBuffer (line 188) | virtual kj::ArrayPtr<const capnp::byte> tryGetReadBuffer() {
function string (line 207) | string TraceStream::file_data_clone_file_name(const TaskUid& tuid) {
function string (line 213) | string TraceStream::path(Substream s) {
function str_to_data (line 237) | static kj::ArrayPtr<const capnp::byte> str_to_data(const string& str) {
function string (line 242) | static string data_to_str(const kj::ArrayPtr<const capnp::byte>& data) {
function to_trace_arch (line 252) | static trace::Arch to_trace_arch(SupportedArch arch) {
function to_tristate (line 266) | static trace::CpuTriState to_tristate(bool value) {
function SupportedArch (line 270) | static SupportedArch from_trace_arch(trace::Arch arch) {
function to_trace_disposition (line 284) | static trace::SignalDisposition to_trace_disposition(
function SignalResolvedDisposition (line 299) | static SignalResolvedDisposition from_trace_disposition(
function to_trace_syscall_state (line 314) | static trace::SyscallState to_trace_syscall_state(SyscallState state) {
function SyscallState (line 328) | static SyscallState from_trace_syscall_state(trace::SyscallState state) {
function to_trace_signal (line 342) | static void to_trace_signal(trace::Signal::Builder signal, const Event...
function Event (line 352) | static Event from_trace_signal(EventType type, trace::Signal::Reader s...
function to_trace_ticks_semantics (line 367) | static trace::TicksSemantics to_trace_ticks_semantics(TicksSemantics s...
function TicksSemantics (line 379) | static TicksSemantics from_trace_ticks_semantics(trace::TicksSemantics...
function pid_t (line 391) | static pid_t i32_to_tid(int tid) {
function check_fd (line 398) | static int check_fd(int fd) {
function TraceFrame (line 558) | TraceFrame TraceReader::read_frame(FrameTime skip_before) {
function TraceTaskEvent (line 812) | TraceTaskEvent TraceReader::read_task_event(FrameTime* time) {
function string (line 870) | static string base_file_name(const string& file_name) {
function starts_with (line 951) | static bool starts_with(const string& s, const string& with) {
type stat (line 957) | struct stat
type stat (line 1054) | struct stat
function KernelMapping (line 1133) | KernelMapping TraceReader::read_mapped_region(MappedData* data, bool* ...
function string (line 1324) | static string make_trace_dir(const string& exe_path, const string& out...
type utsname (line 1505) | struct utsname
function TraceFrame (line 1555) | TraceFrame TraceReader::peek_frame() {
FILE: src/TraceStream.h
function namespace (line 24) | namespace rr {
FILE: src/TraceTaskEvent.h
function namespace (line 16) | namespace rr {
FILE: src/TraceeAttentionSet.cc
type rr (line 14) | namespace rr {
type signalfd_siginfo (line 30) | struct signalfd_siginfo
FILE: src/TraceeAttentionSet.h
function namespace (line 11) | namespace rr {
FILE: src/VirtualPerfCounterMonitor.cc
type rr (line 15) | namespace rr {
type perf_event_attr (line 22) | struct perf_event_attr
type perf_event_attr (line 27) | struct perf_event_attr
type f_owner_ex (line 76) | struct f_owner_ex
function VirtualPerfCounterMonitor (line 161) | VirtualPerfCounterMonitor*
FILE: src/VirtualPerfCounterMonitor.h
type perf_event_attr (line 9) | struct perf_event_attr
function namespace (line 11) | namespace rr {
FILE: src/WaitManager.cc
type rr (line 18) | namespace rr {
class WaitState (line 20) | class WaitState {
function pid_t (line 41) | pid_t WaitState::do_wait(pid_t tid, bool consume, int type, double blo...
function WaitResult (line 104) | WaitResult WaitState::wait(const WaitOptions& options, int type) {
function WaitState (line 189) | static WaitState& wait_state() {
function WaitResult (line 194) | WaitResult WaitManager::wait_stop(const WaitOptions& options) {
function WaitResult (line 198) | WaitResult WaitManager::wait_exit(const WaitOptions& options) {
function WaitResult (line 214) | WaitResult WaitManager::wait_stop_or_exit(const WaitOptions& options) {
FILE: src/WaitManager.h
function namespace (line 10) | namespace rr {
FILE: src/WaitStatus.cc
type rr (line 16) | namespace rr {
function WaitStatus (line 122) | WaitStatus WaitStatus::for_exit_code(int code) {
function WaitStatus (line 127) | WaitStatus WaitStatus::for_fatal_sig(int sig) {
function WaitStatus (line 132) | WaitStatus WaitStatus::for_stop_sig(int sig) {
function WaitStatus (line 137) | WaitStatus WaitStatus::for_group_sig(int sig, RecordTask* t) {
function WaitStatus (line 146) | WaitStatus WaitStatus::for_syscall(RecordTask* t) {
function WaitStatus (line 154) | WaitStatus WaitStatus::for_ptrace_event(int ptrace_event) {
function ostream (line 200) | ostream& operator<<(ostream& stream, WaitStatus status) {
FILE: src/WaitStatus.h
type Type (line 22) | enum Type {
FILE: src/assembly_templates.py
class RawBytes (line 4) | class RawBytes(object):
method __init__ (line 6) | def __init__(self, *bytes):
method __len__ (line 9) | def __len__(self):
class Field (line 12) | class Field(object):
method __init__ (line 14) | def __init__(self, name, byte_length):
method __len__ (line 18) | def __len__(self):
method c_type (line 21) | def c_type(self):
class ShiftField (line 25) | class ShiftField(object):
method __init__ (line 27) | def __init__(self, parent, shift, name, byte_length):
method __len__ (line 33) | def __len__(self):
method c_type (line 36) | def c_type(self):
method patch_c_type (line 40) | def patch_c_type(self):
class AssemblyTemplate (line 44) | class AssemblyTemplate(object):
method __init__ (line 49) | def __init__(self, *chunks):
method fields (line 68) | def fields(self):
method bytes (line 71) | def bytes(self):
function byte_array_name (line 219) | def byte_array_name(name):
function generate_match_method (line 222) | def generate_match_method(byte_array, template):
function generate_substitute_chunk (line 248) | def generate_substitute_chunk(s, chunk, byte_array, offset):
function generate_substitute_method (line 265) | def generate_substitute_method(byte_array, template):
function generate_field_end_methods (line 280) | def generate_field_end_methods(byte_array, template):
function generate_size_member (line 289) | def generate_size_member(byte_array):
function generate (line 294) | def generate(f):
FILE: src/audit/rtld-audit.c
type SemaphoreAddrRange (line 38) | typedef struct {
function la_version (line 50) | unsigned la_version(unsigned version) {
function semaphore_addr_range_init (line 55) | static void semaphore_addr_range_init(SemaphoreAddrRange* range) {
function semaphore_addr_range_init_single (line 60) | static void semaphore_addr_range_init_single(SemaphoreAddrRange* range,
function semaphore_addr_range_is_valid (line 66) | static bool semaphore_addr_range_is_valid(const SemaphoreAddrRange* rang...
function semaphore_addr_range_contains (line 70) | static bool semaphore_addr_range_contains(const SemaphoreAddrRange* range,
function semaphore_addr_range_contiguous (line 75) | static bool semaphore_addr_range_contiguous(const SemaphoreAddrRange* ra...
function semaphore_addr_range_expand (line 80) | static void semaphore_addr_range_expand(SemaphoreAddrRange* range,
function semaphore_addr_range_submit (line 90) | static void semaphore_addr_range_submit(const SemaphoreAddrRange* range,
function semaphore_addr_range_handle_add (line 105) | static void semaphore_addr_range_handle_add(SemaphoreAddrRange* range,
function la_objopen (line 118) | unsigned la_objopen(struct link_map* map,
function la_objclose (line 164) | unsigned la_objclose(uintptr_t* cookie) {
FILE: src/audit/stap-note-iter.c
function stap_note_iter_unmap (line 57) | static void stap_note_iter_unmap(StapNoteIter* self __attribute__((unuse...
function stap_note_iter_init (line 65) | void stap_note_iter_init(StapNoteIter* self, const struct link_map* map) {
function stap_note_iter_next (line 132) | bool stap_note_iter_next(StapNoteIter* self, ElfStapNote* out_note) {
function stap_note_iter_release (line 217) | void stap_note_iter_release(StapNoteIter* self) {
FILE: src/audit/stap-note-iter.h
type ElfStapNote (line 8) | typedef struct {
type StapNoteIter (line 17) | typedef struct {
type link_map (line 27) | struct link_map
FILE: src/bpf/async_event_filter.c
type pt_regs (line 8) | struct pt_regs
function match_registers (line 27) | int match_registers(struct bpf_perf_event_data* event) {
FILE: src/chaos-test/chaosutil.h
function atomic_printf (line 27) | __attribute__((format(printf, 1, 2))) inline static int atomic_printf(
function check_cond (line 39) | inline static int check_cond(int cond) {
function atomic_puts (line 51) | inline static int atomic_puts(const char* str) {
function caught_test_failure (line 61) | __attribute__((format(printf, 1, 2))) inline static void caught_test_fai...
function now_double (line 78) | inline static double now_double(void) {
function get_page_size (line 84) | inline static long get_page_size(void) { return sysconf(_SC_PAGE_SIZE); }
FILE: src/chaos-test/core_count.c
function main (line 8) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/chaos-test/futex_wakeup.c
function main (line 15) | int main(void) {
FILE: src/chaos-test/getaffinity_core_count.c
function main (line 8) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/chaos-test/harness.py
function run (line 22) | def run(rr_params):
function safe_exit (line 45) | def safe_exit(code):
FILE: src/chaos-test/mmap_adjacent.c
function main (line 8) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/chaos-test/mmap_bits.c
function main (line 9) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/chaos-test/pipe_wakeup.c
function main (line 18) | int main(__attribute__((unused)) int argc,
FILE: src/chaos-test/startup.c
type timespec (line 9) | struct timespec
function main (line 17) | int main(void) {
FILE: src/chaos-test/starvation_multithreaded.c
type timespec (line 46) | struct timespec
function main (line 53) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/chaos-test/starvation_singlethreaded.c
function main (line 13) | int main(__attribute__((unused)) int argc, char** argv) {
FILE: src/core.h
function namespace (line 38) | namespace rr {
FILE: src/counters-test/counters.cc
function die (line 32) | static void die(const char* msg) {
type CpuMicroarch (line 45) | enum CpuMicroarch {
type PmuConfig (line 117) | struct PmuConfig {
function CPUIDData (line 251) | CPUIDData cpuid(uint32_t code, uint32_t subrequest) {
function CpuMicroarch (line 268) | static CpuMicroarch compute_cpu_microarch(void) {
function compute_cpu_microarchs (line 394) | static std::vector<CpuMicroarch> compute_cpu_microarchs() {
type CPUID (line 404) | struct CPUID {
function CpuMicroarch (line 428) | static CpuMicroarch compute_cpu_microarch(const CPUID &cpuid) {
function set_cpuid (line 489) | static void set_cpuid(std::vector<CPUID> &cpuids, unsigned long cpuidx, ...
function get_cpuinfo_sysfs (line 505) | static inline void get_cpuinfo_sysfs(std::vector<CPUID> &res)
function try_read_procfs_line (line 548) | static inline bool try_read_procfs_line(const std::string &line,
function get_cpuinfo_procfs (line 590) | static inline void get_cpuinfo_procfs(std::vector<CPUID> &res)
function compute_cpu_microarchs (line 635) | static std::vector<CpuMicroarch> compute_cpu_microarchs() {
function child_wait (line 678) | static void child_wait(void) {
function test_ticks_basic (line 721) | void test_ticks_basic(void) {
function test_ticks_syscalls (line 733) | void test_ticks_syscalls(void) {
function sighandler (line 763) | void sighandler(int sig) {
function test_interrupts (line 767) | void test_interrupts(void) {
function do_child (line 778) | static int do_child(void) {
function check_ticks (line 791) | static void check_ticks(Ticks got, Ticks expected) {
function reset_counter_period (line 798) | static void reset_counter_period(int counter_fd, uint64_t period) {
function Ticks (line 807) | static Ticks reset_counting(pid_t child, int counter_fd, uint64_t period) {
function main (line 820) | int main(int argc, char** argv) {
FILE: src/exec_stub.c
function _start (line 3) | void _start(void) {}
FILE: src/fast_forward.cc
type rr (line 10) | namespace rr {
type InstructionBuf (line 12) | struct InstructionBuf {
function InstructionBuf (line 18) | static InstructionBuf read_instruction(Task* t, remote_code_ptr ip) {
type DecodedInstruction (line 26) | struct DecodedInstruction {
function decode_x86_string_instruction (line 39) | static bool decode_x86_string_instruction(const InstructionBuf& code,
function mem_intersect (line 117) | static bool mem_intersect(remote_ptr<void> a1, int s1, remote_ptr<void...
function bound_iterations_for_watchpoint (line 124) | static void bound_iterations_for_watchpoint(Task* t, remote_ptr<void> ...
function FastForwardStatus (line 164) | FastForwardStatus fast_forward_through_instruction(Task* t, ResumeRequ...
function is_ignorable_prefix (line 358) | static bool is_ignorable_prefix(Task* t, uint8_t byte) {
function is_rep_prefix (line 379) | static bool is_rep_prefix(uint8_t byte) { return byte == 0xF2 || byte ...
function is_string_instruction (line 381) | static bool is_string_instruction(uint8_t byte) {
function fallible_read_byte (line 399) | static int fallible_read_byte(Task* t, remote_ptr<uint8_t> ip) {
function is_x86_string_instruction_at (line 408) | bool is_x86_string_instruction_at(Task* t, remote_code_ptr ip) {
function is_string_instruction_before (line 427) | static bool is_string_instruction_before(Task* t, remote_code_ptr ip) {
function maybe_at_or_after_x86_string_instruction (line 447) | bool maybe_at_or_after_x86_string_instruction(Task* t) {
function at_x86_string_instruction (line 456) | bool at_x86_string_instruction(Task* t) {
FILE: src/fast_forward.h
function namespace (line 10) | namespace rr {
function is_x86_string_instruction_at (line 66) | inline bool is_x86_string_instruction_at(Task*, remote_code_ptr) {
FILE: src/ftrace.cc
type rr (line 21) | namespace rr {
type ftrace (line 22) | namespace ftrace {
function open_socket (line 30) | static void open_socket() {
function write_control_message (line 52) | static void write_control_message(const string& s) {
function wait_for_reply (line 59) | static void wait_for_reply() {
function receive_marker_fd (line 66) | static void receive_marker_fd() {
function start_function_graph (line 92) | void start_function_graph(const Session& session, const TraceStream&...
function write (line 118) | void write(const string& str) {
function stop (line 137) | void stop() {
FILE: src/ftrace.h
function namespace (line 12) | namespace rr {
FILE: src/ftrace/ftrace_helper.c
function check_cond (line 66) | inline static int check_cond(int cond) {
function drop_sig (line 73) | static void drop_sig(__attribute__((unused)) int sig) {}
function chdir_to_tracing (line 102) | static void chdir_to_tracing(void) {
function copy_file_data (line 123) | static void copy_file_data(int final_fd, int in_fd) {
function copy_trace_file (line 135) | static void copy_trace_file(int final_fd, const char* name, int size_len) {
function copy_trace_file_with_name (line 156) | static void copy_trace_file_with_name(int final_fd, const char* name,
function iterate_events (line 169) | static int iterate_events(int final_fd, const char* dir, int write) {
function file_offset (line 192) | static uint64_t file_offset(int fd) {
function page_size (line 198) | size_t page_size(void) {
function pad_output_to_page_size (line 206) | static uint64_t pad_output_to_page_size(int fd) {
function write_final_output (line 215) | static void write_final_output(void) {
function open_control_fd (line 271) | static void open_control_fd(const char* path) {
function write_file (line 295) | static void write_file(const char* file, const char* value) {
function stop_tracing (line 304) | static void stop_tracing(void) {
function read_control_line (line 324) | static void read_control_line(char out[MAX_LINE_SIZE]) {
function ack_control_message (line 354) | static void ack_control_message(void) { check(1 == write(control_fd, "K"...
function send_marker_fd (line 356) | static void send_marker_fd(void) {
function process_control_session (line 382) | static void process_control_session(void) {
function main (line 431) | int main(int argc, const char** argv) {
FILE: src/generate_syscalls.py
function arch_syscall_number (line 10) | def arch_syscall_number(arch, syscall):
function write_syscall_enum (line 16) | def write_syscall_enum(f, arch):
function write_syscall_enum_for_tests (line 31) | def write_syscall_enum_for_tests(f, arch):
function write_syscallname_arch (line 45) | def write_syscallname_arch(f):
function write_syscall_record_cases (line 65) | def write_syscall_record_cases(f):
function write_syscall_helper_functions (line 130) | def write_syscall_helper_functions(f):
function write_check_syscall_numbers (line 140) | def write_check_syscall_numbers(f):
function main (line 162) | def main(argv):
FILE: src/kernel_abi.cc
type rr (line 68) | namespace rr {
function to_audit_arch (line 112) | int to_audit_arch(SupportedArch arch) {
function get_syscall_instruction_arch (line 133) | bool get_syscall_instruction_arch(Task* t, remote_code_ptr ptr,
function is_at_syscall_instruction (line 199) | bool is_at_syscall_instruction(Task* t, remote_code_ptr ptr, bool* ok) {
function syscall_instruction (line 204) | vector<uint8_t> syscall_instruction(SupportedArch arch) {
function instruction_length (line 218) | static ssize_t instruction_length(SupportedArch arch) {
function syscall_instruction_length (line 231) | ssize_t syscall_instruction_length(SupportedArch arch) {
function bkpt_instruction_length (line 241) | ssize_t bkpt_instruction_length(SupportedArch arch) {
function movrm_instruction_length (line 255) | ssize_t movrm_instruction_length(SupportedArch arch) {
function vsyscall_entry_length (line 266) | ssize_t vsyscall_entry_length(SupportedArch arch) {
function assign_sigval (line 277) | static void assign_sigval(typename Arch::sigval_t& to,
function set_arch_siginfo_arch (line 288) | static void set_arch_siginfo_arch(const siginfo_t& src, void* dest,
function set_arch_siginfo (line 362) | void set_arch_siginfo(const siginfo_t& siginfo, SupportedArch a, void*...
function sigaction_sigset_size_arch (line 367) | static size_t sigaction_sigset_size_arch() {
function sigaction_sigset_size (line 371) | size_t sigaction_sigset_size(SupportedArch arch) {
function user_regs_struct_size_arch (line 375) | static size_t user_regs_struct_size_arch() {
function user_fpregs_struct_size_arch (line 383) | static size_t user_fpregs_struct_size_arch() {
function virtual_address_size_arch (line 391) | static uint8_t virtual_address_size_arch(remote_ptr<void> ptr) {
function default_virtual_address_size_arch (line 399) | static uint8_t default_virtual_address_size_arch() {
type rr (line 98) | namespace rr {
function to_audit_arch (line 112) | int to_audit_arch(SupportedArch arch) {
function get_syscall_instruction_arch (line 133) | bool get_syscall_instruction_arch(Task* t, remote_code_ptr ptr,
function is_at_syscall_instruction (line 199) | bool is_at_syscall_instruction(Task* t, remote_code_ptr ptr, bool* ok) {
function syscall_instruction (line 204) | vector<uint8_t> syscall_instruction(SupportedArch arch) {
function instruction_length (line 218) | static ssize_t instruction_length(SupportedArch arch) {
function syscall_instruction_length (line 231) | ssize_t syscall_instruction_length(SupportedArch arch) {
function bkpt_instruction_length (line 241) | ssize_t bkpt_instruction_length(SupportedArch arch) {
function movrm_instruction_length (line 255) | ssize_t movrm_instruction_length(SupportedArch arch) {
function vsyscall_entry_length (line 266) | ssize_t vsyscall_entry_length(SupportedArch arch) {
function assign_sigval (line 277) | static void assign_sigval(typename Arch::sigval_t& to,
function set_arch_siginfo_arch (line 288) | static void set_arch_siginfo_arch(const siginfo_t& src, void* dest,
function set_arch_siginfo (line 362) | void set_arch_siginfo(const siginfo_t& siginfo, SupportedArch a, void*...
function sigaction_sigset_size_arch (line 367) | static size_t sigaction_sigset_size_arch() {
function sigaction_sigset_size (line 371) | size_t sigaction_sigset_size(SupportedArch arch) {
function user_regs_struct_size_arch (line 375) | static size_t user_regs_struct_size_arch() {
function user_fpregs_struct_size_arch (line 383) | static size_t user_fpregs_struct_size_arch() {
function virtual_address_size_arch (line 391) | static uint8_t virtual_address_size_arch(remote_ptr<void> ptr) {
function default_virtual_address_size_arch (line 399) | static uint8_t default_virtual_address_size_arch() {
FILE: src/kernel_abi.h
function namespace (line 16) | namespace rr {
type KernelConstants (line 71) | struct KernelConstants {
type FcntlConstants (line 156) | struct FcntlConstants {
type ELFCLASS (line 197) | enum ELFCLASS { CLASSNONE = 0, CLASS32 = 1, CLASS64 = 2 }
type ELFENDIAN (line 198) | enum ELFENDIAN { DATA2LSB = 1 }
type EM (line 199) | enum EM {
type WordSize32Defs (line 205) | struct WordSize32Defs {
type ElfPhdr (line 249) | typedef struct {
type ElfShdr (line 260) | typedef struct {
type ElfChdr (line 273) | typedef struct {
type ElfSym (line 278) | typedef struct {
type ElfDyn (line 287) | typedef struct {
type ElfNhdr (line 292) | typedef struct {
type ElfRel (line 298) | typedef struct {
type ElfRela (line 303) | typedef struct {
function clz_ptr (line 310) | static uint8_t clz_ptr(remote_ptr<void> ptr) {
type WordSize64Defs (line 315) | struct WordSize64Defs {
type ElfPhdr (line 359) | typedef struct {
type ElfShdr (line 370) | typedef struct {
type ElfChdr (line 383) | typedef struct {
type ElfSym (line 389) | typedef struct {
type ElfDyn (line 398) | typedef struct {
type ElfNhdr (line 403) | typedef struct {
type ElfRel (line 409) | typedef struct {
type ElfRela (line 414) | typedef struct {
function clz_ptr (line 421) | static uint8_t clz_ptr(remote_ptr<void> ptr) {
function is_x86ish (line 436) | static bool is_x86ish() {
type typename (line 440) | typedef typename wordsize::syscall_slong_t syscall_slong_t;
type typename (line 441) | typedef typename wordsize::syscall_ulong_t syscall_ulong_t;
type typename (line 442) | typedef typename wordsize::signed_int signed_int;
type typename (line 443) | typedef typename wordsize::unsigned_int unsigned_int;
type typename (line 444) | typedef typename wordsize::signed_short signed_short;
type typename (line 445) | typedef typename wordsize::unsigned_short unsigned_short;
type typename (line 446) | typedef typename wordsize::signed_long signed_long;
type typename (line 447) | typedef typename wordsize::unsigned_long unsigned_long;
type typename (line 448) | typedef typename wordsize::unsigned_word unsigned_word;
type typename (line 449) | typedef typename wordsize::size_t size_t;
type typename (line 450) | typedef typename wordsize::ssize_t ssize_t;
type typename (line 451) | typedef typename wordsize::sigchld_clock_t sigchld_clock_t;
type typename (line 452) | typedef typename wordsize::__statfs_word __statfs_word;
type syscall_slong_t (line 454) | typedef syscall_slong_t time_t;
type syscall_slong_t (line 455) | typedef syscall_slong_t off_t;
type syscall_slong_t (line 456) | typedef syscall_slong_t blkcnt_t;
type syscall_slong_t (line 457) | typedef syscall_slong_t blksize_t;
type syscall_ulong_t (line 458) | typedef syscall_ulong_t rlim_t;
type syscall_ulong_t (line 459) | typedef syscall_ulong_t fsblkcnt_t;
type syscall_ulong_t (line 460) | typedef syscall_ulong_t fsfilcnt_t;
type syscall_ulong_t (line 461) | typedef syscall_ulong_t ino_t;
type syscall_ulong_t (line 462) | typedef syscall_ulong_t nlink_t;
type off64_t (line 464) | typedef int64_t off64_t;
type loff_t (line 465) | typedef int64_t loff_t;
type rlim64_t (line 466) | typedef uint64_t rlim64_t;
type ino64_t (line 467) | typedef uint64_t ino64_t;
type blkcnt64_t (line 468) | typedef int64_t blkcnt64_t;
type syscall_slong_t (line 470) | typedef syscall_slong_t clock_t;
type signed_int (line 471) | typedef signed_int __kernel_key_t;
type signed_int (line 472) | typedef signed_int __kernel_uid32_t;
type signed_int (line 473) | typedef signed_int __kernel_gid32_t;
type unsigned_int (line 474) | typedef unsigned_int __kernel_mode_t;
type unsigned_long (line 475) | typedef unsigned_long __kernel_ulong_t;
type signed_long (line 476) | typedef signed_long __kernel_long_t;
type __kernel_long_t (line 477) | typedef __kernel_long_t __kernel_time_t;
type __kernel_long_t (line 478) | typedef __kernel_long_t __kernel_suseconds_t;
type signed_int (line 479) | typedef signed_int __kernel_pid_t;
type __kernel_loff_t (line 480) | typedef int64_t __kernel_loff_t;
type __u32 (line 482) | typedef uint32_t __u32;
type __u64 (line 483) | typedef uint64_t __u64;
type __u64 (line 484) | typedef __u64 aligned_u64 __attribute((aligned(8)));
type T (line 520) | typedef T Referent;
type T (line 539) | typedef T Referent;
type sockaddr (line 562) | struct sockaddr {
type sockaddr_storage (line 568) | struct sockaddr_storage {
type sockaddr_un (line 573) | struct sockaddr_un {
type timeval (line 579) | struct timeval {
type timespec (line 585) | struct timespec {
type pollfd (line 591) | struct pollfd {
type iovec (line 598) | struct iovec {
type msghdr (line 604) | struct msghdr {
type cmsghdr (line 619) | struct cmsghdr {
type mmsghdr (line 626) | struct mmsghdr {
type epoll_event (line 643) | struct epoll_event {
type rusage (line 657) | struct rusage {
type siginfo_t (line 677) | struct siginfo_t {
type cc_t (line 730) | typedef unsigned char cc_t;
type unsigned_int (line 731) | typedef unsigned_int speed_t;
type unsigned_int (line 732) | typedef unsigned_int tcflag_t;
type termios (line 734) | struct termios {
type termio (line 747) | struct termio {
type seccomp_notif_sizes (line 756) | struct seccomp_notif_sizes {
type serial_struct (line 764) | struct serial_struct {
type serial_icounter_struct (line 786) | struct serial_icounter_struct {
type winsize (line 802) | struct winsize {
type ipc64_perm (line 810) | struct ipc64_perm {
type msqid64_ds (line 825) | struct msqid64_ds {
type msginfo (line 846) | struct msginfo {
type shmid64_ds (line 859) | struct __attribute__((packed)) shmid64_ds {
type shminfo64 (line 873) | struct shminfo64 {
type shm_info (line 886) | struct shm_info {
type seminfo (line 897) | struct seminfo {
type CloneParameterOrdering (line 914) | enum CloneParameterOrdering {
type CloneTLSType (line 925) | enum CloneTLSType {
type user_desc (line 932) | struct user_desc {
type __user_cap_header_struct (line 946) | struct __user_cap_header_struct {
type __user_cap_data_struct (line 952) | struct __user_cap_data_struct {
type dqblk (line 962) | struct dqblk {
type dqinfo (line 975) | struct dqinfo {
type ifmap (line 983) | struct ifmap {
type if_settings (line 993) | struct if_settings {
type ifreq (line 1008) | struct ifreq {
type ifconf (line 1030) | struct ifconf {
type iw_param (line 1040) | struct iw_param {
type iw_point (line 1048) | struct iw_point {
type iw_freq (line 1055) | struct iw_freq {
type iw_quality (line 1063) | struct iw_quality {
type iwreq (line 1093) | struct iwreq {
type _flock (line 1101) | struct _flock {
type flock64 (line 1112) | struct flock64 {
type f_owner_ex (line 1123) | struct f_owner_ex {
type accept_args (line 1132) | struct accept_args {
type accept4_args (line 1139) | struct accept4_args {
type getsockname_args (line 1147) | struct getsockname_args {
type getsockopt_args (line 1154) | struct getsockopt_args {
type setsockopt_args (line 1163) | struct setsockopt_args {
type connect_args (line 1171) | struct connect_args {
type recv_args (line 1177) | struct recv_args {
type recvfrom_args (line 1185) | struct recvfrom_args {
type recvmsg_args (line 1194) | struct recvmsg_args {
type recvmmsg_args (line 1201) | struct recvmmsg_args {
type sendmsg_args (line 1210) | struct sendmsg_args {
type sendmmsg_args (line 1217) | struct sendmmsg_args {
type socketpair_args (line 1225) | struct socketpair_args {
type MmapCallingSemantics (line 1236) | enum MmapCallingSemantics {
type mmap_args (line 1242) | struct mmap_args {
type SelectCallingSemantics (line 1260) | enum SelectCallingSemantics {
type fd_set (line 1266) | struct fd_set {
type select_args (line 1270) | struct select_args {
type ipc_kludge_args (line 1283) | struct ipc_kludge_args {
type __sysctl_args (line 1288) | struct __sysctl_args {
type kernel_sigset_t (line 1302) | typedef struct {
type pselect6_arg6 (line 1306) | typedef struct {
type kernel_sigaction (line 1311) | struct kernel_sigaction {
type tms (line 1317) | struct tms {
type rlimit (line 1325) | struct rlimit {
type rlimit64 (line 1332) | struct rlimit64 {
type timezone (line 1338) | struct timezone {
type statfs_t (line 1344) | struct statfs_t {
type statfs64_t (line 1364) | struct __attribute__((packed)) statfs64_t {
type itimerval (line 1382) | struct itimerval {
type itimerspec (line 1388) | struct itimerspec {
type stack_t (line 1394) | typedef struct sigaltstack {
type sysinfo_t (line 1402) | struct sysinfo_t {
type utsname (line 1422) | struct utsname {
type sched_param (line 1432) | struct sched_param {
function cmsg_align (line 1438) | static constexpr size_t cmsg_align(size_t len) {
function cmsg_space (line 1441) | static constexpr size_t cmsg_space(size_t len) {
function cmsg_len (line 1444) | static size_t cmsg_len(size_t len) {
type v4l2_timecode (line 1448) | struct v4l2_timecode {
type v4l2_buffer (line 1459) | struct v4l2_buffer {
type sock_filter (line 1482) | struct sock_filter {
type sock_fprog (line 1490) | struct sock_fprog {
type robust_list (line 1497) | struct robust_list {
type robust_list_head (line 1502) | struct robust_list_head {
type snd_ctl_card_info (line 1509) | struct snd_ctl_card_info {
type usbdevfs_iso_packet_desc (line 1522) | struct usbdevfs_iso_packet_desc {
type usbdevfs_urb (line 1529) | struct usbdevfs_urb {
type usbdevfs_ioctl (line 1549) | struct usbdevfs_ioctl {
type usbdevfs_ctrltransfer (line 1556) | struct usbdevfs_ctrltransfer {
type dirent (line 1567) | struct dirent {
type dirent64 (line 1577) | struct dirent64 {
type mq_attr (line 1586) | struct mq_attr {
type xt_counters (line 1595) | struct xt_counters {
type ipt_replace (line 1600) | struct ipt_replace {
type ip6t_replace (line 1615) | struct ip6t_replace {
type cap_header (line 1630) | struct cap_header {
type cap_data (line 1635) | struct cap_data {
type hci_dev_req (line 1641) | struct hci_dev_req {
type hci_dev_list_req (line 1646) | struct hci_dev_list_req {
type bdaddr_t (line 1651) | typedef struct { uint8_t b[6]; } __attribute__((__packed__)) bdaddr_t;
type hci_dev_stats (line 1653) | struct hci_dev_stats {
type hci_dev_info (line 1666) | struct hci_dev_info {
type rseq_t (line 1689) | struct rseq_t {
type rseq_cs (line 1696) | struct rseq_cs {
type ifbond (line 1704) | typedef struct ifbond {
type timex (line 1711) | typedef struct timex {
type statx_timestamp (line 1748) | typedef struct statx_timestamp {
type statx (line 1756) | typedef struct statx_struct {
type sg_io_hdr (line 1782) | struct sg_io_hdr {
type file_handle (line 1883) | struct file_handle {
type link_map (line 1890) | struct link_map {
type r_debug (line 1899) | struct r_debug {
type prctl_mm_map (line 1905) | struct prctl_mm_map {
type fiemap_extent (line 1923) | struct fiemap_extent {
type fiemap (line 1932) | struct fiemap {
type vt_stat (line 1943) | struct vt_stat {
type fb_fix_screeninfo (line 1950) | struct fb_fix_screeninfo {
type fb_bitfield (line 1969) | struct fb_bitfield {
type fb_var_screeninfo (line 1975) | struct fb_var_screeninfo {
type cdrom_tochdr (line 2008) | struct cdrom_tochdr {
type cdrom_msf0 (line 2014) | struct cdrom_msf0 {
type cdrom_msf0 (line 2020) | struct cdrom_msf0
type cdrom_tocentry (line 2023) | struct cdrom_tocentry {
type mtd_read_req_ecc_stats (line 2033) | struct mtd_read_req_ecc_stats {
type mtd_read_req (line 2039) | struct mtd_read_req {
type ptrace_syscall_info (line 2051) | struct ptrace_syscall_info {
type X64Arch (line 2074) | struct X64Arch
type X64Arch (line 2075) | typedef X64Arch Arch64;
type legacy_uid_t (line 2089) | typedef uint32_t legacy_uid_t;
type legacy_gid_t (line 2090) | typedef uint32_t legacy_gid_t;
type user_regs_struct (line 2109) | struct user_regs_struct {
type sigcontext (line 2145) | struct sigcontext {
type user_fpregs_struct (line 2177) | struct user_fpregs_struct {
type user (line 2193) | struct user {
type stat_t (line 2221) | struct stat_t {
function stat_t (line 2240) | struct stat64_t : public stat_t {}
type semid64_ds (line 2243) | struct semid64_ds {
type ethtool_rx_flow_spec (line 2255) | struct ethtool_rx_flow_spec {
type ethtool_rxnfc (line 2266) | struct ethtool_rxnfc {
type X86Arch (line 2285) | struct X86Arch
type X64Arch (line 2286) | typedef X64Arch Arch64;
type legacy_uid_t (line 2307) | typedef uint16_t legacy_uid_t;
type legacy_gid_t (line 2308) | typedef uint16_t legacy_gid_t;
type user_regs_struct (line 2327) | struct user_regs_struct {
type user_fpregs_struct (line 2348) | struct user_fpregs_struct {
type user_fpxregs_struct (line 2361) | struct user_fpxregs_struct {
type sigcontext (line 2381) | struct sigcontext {
type user (line 2407) | struct user {
type stat_t (line 2426) | struct stat_t {
type stat64_t (line 2448) | struct __attribute__((packed)) stat64_t {
type semid64_ds (line 2468) | struct semid64_ds {
type ethtool_rx_flow_spec (line 2480) | struct __attribute__((packed)) ethtool_rx_flow_spec {
type ethtool_rxnfc (line 2491) | struct __attribute__((packed)) ethtool_rxnfc {
type legacy_uid_t (line 2510) | typedef uint32_t legacy_uid_t;
type legacy_gid_t (line 2511) | typedef uint32_t legacy_gid_t;
type stat_t (line 2514) | struct stat_t {
type semid64_ds (line 2533) | struct semid64_ds {
function stat_t (line 2542) | struct stat64_t : public stat_t {}
type ARM64Arch (line 2545) | struct ARM64Arch
type ARM64Arch (line 2546) | typedef ARM64Arch Arch64;
type user_pt_regs (line 2566) | struct user_pt_regs {
type user_regs_struct (line 2572) | typedef struct user_pt_regs user_regs_struct;
type __uint128_t (line 2575) | typedef struct {
type user_fpsimd_state (line 2579) | struct user_fpsimd_state {
type user_fpregs_struct (line 2585) | typedef struct user_fpsimd_state user_fpregs_struct;
type hw_breakpoint_ctrl (line 2587) | struct hw_breakpoint_ctrl {
type hw_bp (line 2596) | struct hw_bp {
type user_hwdebug_state (line 2602) | struct user_hwdebug_state {
type sigcontext (line 2609) | struct __attribute((aligned(16))) sigcontext {
type ucontext (line 2617) | struct ucontext {
type rt_sigframe (line 2627) | struct rt_sigframe {
type ethtool_rx_flow_spec (line 2635) | struct ethtool_rx_flow_spec {
type ethtool_rxnfc (line 2646) | struct ethtool_rxnfc {
type user_pac_address_keys (line 2664) | struct user_pac_address_keys {
type user_pac_generic_keys (line 2671) | struct user_pac_generic_keys {
type X86Arch (line 2751) | typedef X86Arch NativeArch;
type X64Arch (line 2753) | typedef X64Arch NativeArch;
type ARM64Arch (line 2755) | typedef ARM64Arch NativeArch;
FILE: src/kernel_metadata.cc
type rr (line 20) | namespace rr {
function string (line 32) | string arch_name(SupportedArch arch) {
function string (line 44) | string ptrace_event_name(int event) {
function string (line 77) | string ptrace_req_name(int request) {
function string (line 125) | string signal_name(int sig) {
function is_sigreturn (line 179) | bool is_sigreturn(int syscallno, SupportedArch arch) {
function string (line 323) | string errno_name(int err) {
function string (line 333) | string sicode_name(int code, int sig) {
function shm_flags_to_mmap_prot (line 420) | int shm_flags_to_mmap_prot(int flags) {
function string (line 425) | string xsave_feature_string(uint64_t xsave_features) {
function is_coredumping_signal (line 466) | bool is_coredumping_signal(int signo) {
function convert_to_native_siginfo_arch (line 487) | NativeArch::siginfo_t convert_to_native_siginfo_arch(const void* data,
function convert_to_native_siginfo (line 562) | NativeArch::siginfo_t convert_to_native_siginfo(SupportedArch arch,
function string (line 567) | string rlimit_resource_name(int resource) {
function string (line 592) | string prot_flags_string(int prot) {
function addr_bits (line 611) | int addr_bits(SupportedArch arch) {
function usable_address_space_end (line 630) | remote_ptr<void> usable_address_space_end(SupportedArch arch) {
FILE: src/kernel_metadata.h
function namespace (line 14) | namespace rr {
FILE: src/kernel_supplement.h
function namespace (line 22) | namespace rr {
type rr (line 630) | enum rr
FILE: src/launch_debugger.cc
type rr (line 26) | namespace rr {
function string (line 31) | static string gdb_rr_macros(const string* file_to_delete) {
function string (line 125) | static const string& lldb_python_rr_macros(
function push_default_gdb_options (line 147) | static void push_default_gdb_options(vector<string>& vec, bool serve_f...
function push_gdb_target_remote_cmd (line 177) | static void push_gdb_target_remote_cmd(vector<string>& vec, int socket...
function push_lldb_target_remote_cmd (line 198) | static void push_lldb_target_remote_cmd(vector<string>& vec, int socke...
function debugger_launch_command (line 217) | vector<string> debugger_launch_command(Task* t, int socket_domain,
function string (line 243) | string to_shell_string(const vector<string>& args) {
function needs_target (line 251) | static bool needs_target(const string& option) {
function launch_debugger (line 259) | void launch_debugger(ScopedFd& params_pipe_fd,
function emergency_debug (line 346) | void emergency_debug(Task* t) {
function string (line 397) | string gdb_init_script() { return gdb_rr_macros(nullptr); }
function string (line 399) | string lldb_init_script() { return lldb_python_rr_macros(nullptr, null...
FILE: src/launch_debugger.h
function DebuggerType (line 18) | enum class DebuggerType {
FILE: src/log.cc
function ostream (line 31) | ostream& operator<<(ostream& stream, const siginfo_t& siginfo) {
type rr (line 66) | namespace rr {
type LogModule (line 68) | struct LogModule {
function LogLevel (line 73) | static LogLevel to_log_level(const string& str) {
function simple_to_lower (line 94) | static char simple_to_lower(char ch) {
function string (line 102) | static string simple_to_lower(const string& s) {
function flush_log_file (line 144) | static void flush_log_file() { log_file->flush(); }
function apply_log_spec (line 148) | void apply_log_spec(const char *spec) {
function apply_log_spec_from_env (line 188) | void apply_log_spec_from_env() {
function init_log_globals (line 199) | static void init_log_globals() {
function LogLevel (line 241) | static LogLevel get_log_level(const string& name) {
function string (line 251) | static string file_to_name(const char* file) {
function LogModule (line 268) | LogModule& get_log_module(const char* file) {
function set_all_logging (line 282) | void set_all_logging(LogLevel level) {
function set_logging (line 288) | void set_logging(const char* name, LogLevel level) {
function ostream (line 308) | ostream& log_stream() {
function flush_log_stream (line 313) | static void flush_log_stream() {
function flush_log_buffer (line 337) | void flush_log_buffer(unique_ptr<deque<char>> &this_log_buffer) {
function flush_log_buffer (line 348) | void flush_log_buffer() {
function write_prefix (line 353) | static void write_prefix(T& stream, LogLevel level, const char* file, ...
function is_logging_enabled (line 367) | bool is_logging_enabled(LogLevel level, const char* file) {
function dump_stack_and_abort (line 407) | static void dump_stack_and_abort() {
function dump_last_events (line 466) | static void dump_last_events(const TraceStream& trace) {
function start_emergency_debug (line 481) | static void start_emergency_debug(Task* t) {
function ostream (line 546) | ostream& operator<<(ostream& stream, const vector<uint8_t>& bytes) {
FILE: src/log.h
function namespace (line 19) | namespace rr {
FILE: src/main.cc
type rr (line 25) | namespace rr {
function assert_prerequisites (line 31) | void assert_prerequisites(bool use_syscall_buffer) {
function print_version (line 52) | void print_version(FILE* out) { fprintf(out, "rr version %s %s\n", RR_...
function print_global_options (line 54) | void print_global_options(FILE* out) {
function list_commands (line 98) | void list_commands(FILE* out) {
function print_usage (line 102) | void print_usage(FILE* out) {
function init_random (line 117) | static void init_random() {
function parse_global_option (line 125) | bool parse_global_option(std::vector<std::string>& args) {
function saved_argv0_space (line 228) | size_t saved_argv0_space() {
function main (line 236) | int main(int argc, char* argv[]) {
FILE: src/main.h
function namespace (line 9) | namespace rr {
FILE: src/perf-test/many-threads-wake.c
function main (line 19) | int main(void) {
FILE: src/perf-test/many-threads.c
function main (line 22) | int main(void) {
FILE: src/perf-test/unbuffered-syscalls.c
function main (line 3) | int main(void) {
FILE: src/preload/overrides.c
type timespec (line 43) | struct timespec
function init_override (line 46) | static void __attribute__((constructor)) init_override(void) {
function fix_mutex_kind (line 54) | static void fix_mutex_kind(pthread_mutex_t* mutex) {
function pthread_mutex_init (line 78) | int pthread_mutex_init(pthread_mutex_t* mutex,
function pthread_mutex_lock (line 130) | int pthread_mutex_lock(pthread_mutex_t* mutex) {
function pthread_mutex_timedlock (line 142) | int pthread_mutex_timedlock(pthread_mutex_t* mutex,
function pthread_mutex_trylock (line 154) | int pthread_mutex_trylock(pthread_mutex_t* mutex) {
function XShmQueryExtension (line 180) | int XShmQueryExtension(__attribute__((unused)) void* dpy) { return 0; }
function delayed_syscall (line 201) | void delayed_syscall(struct syscall_info* info) {
type preload_thread_locals (line 216) | struct preload_thread_locals
function spurious_desched_syscall (line 222) | void spurious_desched_syscall(struct syscall_info* info) {
function sched_yield (line 239) | int sched_yield(void) {
function uid_t (line 271) | uid_t geteuid(void) {
function libstdcpp_not_found (line 279) | static void libstdcpp_not_found(void) {
function _ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (line 289) | void _ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_...
function _ZNSt13random_device7_M_initERKSs (line 313) | void _ZNSt13random_device7_M_initERKSs(void* this,
FILE: src/preload/preload_interface.h
function streq (line 23) | static inline int streq(const char* s1, const char* s2) {
function rrstrlen (line 36) | static inline size_t rrstrlen(const char* s) {
function streq (line 46) | static inline int streq(const char* s1, const char* s2) {
function rrstrlen (line 49) | static inline size_t rrstrlen(const char* s) { return strlen(s); }
function strprefix (line 56) | static inline int strprefix(const char* s1, const char* s2) {
type syscall_patch_hook (line 213) | struct syscall_patch_hook {
type mprotect_record (line 231) | struct mprotect_record {
type ContextSwitchEventStrategy (line 238) | enum ContextSwitchEventStrategy {
type preload_globals (line 253) | struct preload_globals {
function TEMPLATE_ARCH (line 318) | TEMPLATE_ARCH
function TEMPLATE_ARCH (line 324) | TEMPLATE_ARCH
function TEMPLATE_ARCH (line 330) | TEMPLATE_ARCH
function TEMPLATE_ARCH (line 346) | TEMPLATE_ARCH
type preload_thread_locals (line 457) | struct preload_thread_locals
type syscallbuf_fd_classes (line 462) | enum syscallbuf_fd_classes {
function TEMPLATE_ARCH (line 485) | TEMPLATE_ARCH
function TEMPLATE_ARCH (line 527) | TEMPLATE_ARCH
type syscallbuf_record (line 546) | struct syscallbuf_record {
type syscallbuf_hdr (line 584) | struct syscallbuf_hdr {
type syscallbuf_hdr (line 638) | struct syscallbuf_hdr
type syscallbuf_locked_why (line 646) | enum syscallbuf_locked_why {
function stored_record_size (line 658) | inline static long stored_record_size(size_t length) {
function is_blacklisted_filename (line 674) | inline static int is_blacklisted_filename(const char* filename) {
function is_blacklisted_memfd (line 686) | inline static int is_blacklisted_memfd(const char* name) {
function is_blacklisted_socket (line 690) | inline static int is_blacklisted_socket(const char* filename) {
function is_gcrypt_deny_file (line 697) | inline static int is_gcrypt_deny_file(const char* filename) {
function is_terminal (line 701) | inline static int is_terminal(const char* filename) {
function is_proc_mem_file (line 705) | inline static int is_proc_mem_file(const char* filename) {
function is_proc_fd_dir (line 712) | inline static int is_proc_fd_dir(const char* filename) {
function is_sys_cpu_online_file (line 726) | inline static int is_sys_cpu_online_file(const char* filename) {
function is_proc_stat_file (line 730) | inline static int is_proc_stat_file(const char* filename) {
function is_rr_page_lib (line 734) | inline static int is_rr_page_lib(const char* filename) {
function allow_buffered_open (line 746) | inline static int allow_buffered_open(const char* filename) {
FILE: src/preload/syscallbuf.c
type btrfs_ioctl_clone_range_args (line 94) | struct btrfs_ioctl_clone_range_args {
type rr_rseq (line 127) | struct rr_rseq {
type rr_iovlen_t (line 143) | typedef size_t rr_iovlen_t;
type rr_iovlen_t (line 145) | typedef int rr_iovlen_t;
function _traced_init_syscall (line 148) | static long _traced_init_syscall(int syscallno, long a0, long a1, long a2,
type rr_f_owner_ex (line 166) | struct rr_f_owner_ex {
type rr_flock64 (line 174) | struct rr_flock64 {
type kernel_sigset_t (line 186) | typedef uint64_t kernel_sigset_t;
type preload_thread_locals (line 195) | struct preload_thread_locals
type preload_thread_locals (line 196) | struct preload_thread_locals
type syscallbuf_hdr (line 202) | struct syscallbuf_hdr
type syscallbuf_hdr (line 203) | struct syscallbuf_hdr
type syscallbuf_record (line 211) | struct syscallbuf_record
type syscallbuf_hdr (line 212) | struct syscallbuf_hdr
type syscallbuf_record (line 214) | struct syscallbuf_record
function local_memcpy (line 237) | static void local_memcpy(void* dest, const void* source, int n) {
function local_memset (line 287) | static void local_memset(void* dest, uint8_t c, int n) {
function local_random (line 326) | static int64_t local_random(void) {
function privileged_traced_syscall (line 349) | static int privileged_traced_syscall(int syscallno, long a0, long a1, lo...
function traced_raw_syscall (line 371) | static long traced_raw_syscall(struct syscall_info* call) {
function privileged_traced_raw_syscall (line 391) | static long privileged_traced_raw_syscall(const struct syscall_info* cal...
function privileged_traced_fcntl (line 405) | static int privileged_traced_fcntl(int fd, int cmd, ...) {
function pid_t (line 416) | static pid_t privileged_traced_getpid(void) {
function pid_t (line 420) | static pid_t privileged_traced_gettid(void) {
function privileged_traced_perf_event_open (line 424) | static int privileged_traced_perf_event_open(struct perf_event_attr* attr,
function privileged_traced_raise (line 431) | static __attribute__((noreturn)) void privileged_traced_raise(int sig) {
function privileged_traced_write (line 436) | static ssize_t privileged_traced_write(int fd, const void* buf, size_t c...
function logmsg (line 440) | static void logmsg(const char* msg) {
function untraced_syscall_full (line 475) | static long untraced_syscall_full(int syscallno, long a0, long a1, long a2,
function untraced_replay_assist_syscall_base (line 549) | static long __attribute__((unused))
function privileged_untraced_close (line 626) | static int privileged_untraced_close(int fd) {
function privileged_untraced_fcntl (line 630) | static int privileged_untraced_fcntl(int fd, int cmd, ...) {
function rrcall_init_buffers (line 656) | static void rrcall_init_buffers(struct rrcall_init_buffers_params* args) {
function open_desched_event_counter (line 664) | static int open_desched_event_counter(pid_t tid) {
function init_thread (line 727) | static void init_thread(void) {
type syscall_info (line 773) | struct syscall_info
type rrcall_init_preload_params (line 781) | struct rrcall_init_preload_params
type syscall_patch_hook (line 792) | struct syscall_patch_hook
type syscall_patch_hook (line 1082) | struct syscall_patch_hook
type preload_thread_locals (line 1087) | struct preload_thread_locals
type syscallbuf_record (line 1218) | struct syscallbuf_record
function fd_class (line 1221) | static enum syscallbuf_fd_classes fd_class(int fd) {
function is_bufferable_fd (line 1231) | static int is_bufferable_fd(int fd) {
function arm_desched_event (line 1255) | static void arm_desched_event(void) {
function disarm_desched_event (line 1268) | static void disarm_desched_event(void) {
function fd_write_blocks (line 1286) | static int fd_write_blocks(int fd) {
function start_commit_buffered_syscall (line 1303) | static int start_commit_buffered_syscall(int syscallno, void* record_end,
function force_tick (line 1388) | static void force_tick(void) {
function do_breakpoint (line 1400) | static void __attribute__((noinline)) do_breakpoint(size_t value)
function commit_raw_syscall (line 1449) | static long commit_raw_syscall(int syscallno, void* record_end, long ret) {
function memcpy_input_parameter (line 1561) | static void memcpy_input_parameter(void* buf, void* src, int size) {
function rdtsc_recording_only (line 1622) | static void rdtsc_recording_only(uint32_t buf[2]) {
function copy_futex_int (line 1644) | static void copy_futex_int(uint32_t* buf, uint32_t* real) {
function force_traced_syscall_for_chaos_mode (line 1678) | static int force_traced_syscall_for_chaos_mode(void) {
function sys_generic_nonblocking (line 1706) | static long sys_generic_nonblocking(struct syscall_info* call) {
function sys_generic_nonblocking_fd (line 1722) | static long sys_generic_nonblocking_fd(struct syscall_info* call) {
function privileged_sys_generic_nonblocking_fd (line 1739) | static long privileged_sys_generic_nonblocking_fd(const struct syscall_i...
function sys_clock_gettime (line 1752) | static long sys_clock_gettime(struct syscall_info* call) {
type kernel_timespec (line 1781) | struct kernel_timespec {
function sys_clock_gettime64 (line 1786) | static long sys_clock_gettime64(struct syscall_info* call) {
type syscall_info (line 1815) | struct syscall_info
function sys_creat (line 1816) | static long sys_creat(struct syscall_info* call) {
function sys_fcntl64_no_outparams (line 1829) | static int sys_fcntl64_no_outparams(struct syscall_info* call) {
function sys_fcntl64_own_ex (line 1849) | static int sys_fcntl64_own_ex(struct syscall_info* call) {
function sys_fcntl64_setlk64 (line 1879) | static int sys_fcntl64_setlk64(struct syscall_info* call) {
function sys_fcntl64_setlkw64 (line 1913) | static int sys_fcntl64_setlkw64(struct syscall_info* call) {
type syscall_info (line 1938) | struct syscall_info
function sys_fcntl (line 1941) | static long sys_fcntl(struct syscall_info* call)
function ret_buf_len (line 1990) | static long ret_buf_len(long ret, size_t len) {
function sys_flistxattr (line 2000) | static long sys_flistxattr(struct syscall_info* call) {
function sys_safe_nonblocking_ioctl (line 2025) | static long sys_safe_nonblocking_ioctl(struct syscall_info* call) {
function sys_ioctl_fionread (line 2039) | static long sys_ioctl_fionread(struct syscall_info* call) {
function sys_ioctl (line 2062) | static long sys_ioctl(struct syscall_info* call) {
function sys_futex (line 2075) | static long sys_futex(struct syscall_info* call) {
function sys_getrandom (line 2161) | static long sys_getrandom(struct syscall_info* call) {
function sys_generic_getdents (line 2186) | static long sys_generic_getdents(struct syscall_info* call) {
function sys_getdents (line 2209) | static long sys_getdents(struct syscall_info* call) {
function sys_getdents64 (line 2214) | static long sys_getdents64(struct syscall_info* call) {
function sys_gettimeofday (line 2218) | static long sys_gettimeofday(struct syscall_info* call) {
function sys_generic_getxattr (line 2260) | static long sys_generic_getxattr(struct syscall_info* call) {
function sys_getxattr (line 2283) | static long sys_getxattr(struct syscall_info* call) {
function sys_lgetxattr (line 2287) | static long sys_lgetxattr(struct syscall_info* call) {
function sys_fgetxattr (line 2291) | static long sys_fgetxattr(struct syscall_info* call) {
function sys_generic_listxattr (line 2314) | static long sys_generic_listxattr(struct syscall_info* call) {
function sys_listxattr (line 2336) | static long sys_listxattr(struct syscall_info* call) {
function sys_llistxattr (line 2340) | static long sys_llistxattr(struct syscall_info* call) {
function sys__llseek (line 2345) | static long sys__llseek(struct syscall_info* call) {
function sys_madvise (line 2379) | static long sys_madvise(struct syscall_info* call) {
function sys_mprotect (line 2442) | static long sys_mprotect(struct syscall_info* call) {
function supported_open (line 2479) | static int supported_open(const char* file_name, int flags) {
type syscall_info (line 2505) | struct syscall_info
type check_open_state (line 2507) | struct check_open_state {
function check_file_open_ok (line 2512) | static int check_file_open_ok(struct syscall_info* call, int ret, struct...
function capture_check_open_state (line 2549) | static struct check_open_state capture_check_open_state(void) {
function sys_open (line 2557) | static long sys_open(struct syscall_info* call) {
function sys_openat (line 2588) | static long sys_openat(struct syscall_info* call) {
function sys_openat2 (line 2620) | static long sys_openat2(struct syscall_info* call) {
function __before_poll_syscall_breakpoint (line 2660) | __attribute__((visibility("protected"))) void __before_poll_syscall_brea...
function sys_poll (line 2665) | static long sys_poll(struct syscall_info* call) {
function sys_ppoll (line 2720) | static long sys_ppoll(struct syscall_info* call) {
function sys_epoll_wait (line 2784) | static long sys_epoll_wait(struct syscall_info* call) {
type timespec64 (line 2851) | struct timespec64 {
function sys_epoll_pwait2 (line 2857) | static long sys_epoll_pwait2(struct syscall_info* call) {
function sys_read (line 2923) | static long sys_read(struct syscall_info* call) {
function sys_pread64 (line 3045) | static long sys_pread64(struct syscall_info* call) {
function sys_readlink (line 3075) | static long sys_readlink(struct syscall_info* call) {
function sys_readlinkat (line 3101) | static long sys_readlinkat(struct syscall_info* call, int privileged) {
function sys_socketcall_recv (line 3135) | static long sys_socketcall_recv(struct syscall_info* call) {
function sys_socketcall (line 3173) | static long sys_socketcall(struct syscall_info* call) {
function sys_recvfrom (line 3184) | static long sys_recvfrom(struct syscall_info* call) {
function msg_received_file_descriptors (line 3252) | static int msg_received_file_descriptors(struct msghdr* msg) {
function sys_recvmsg (line 3262) | static long sys_recvmsg(struct syscall_info* call) {
function sys_sendmsg (line 3373) | static long sys_sendmsg(struct syscall_info* call) {
function sys_sendto (line 3400) | static long sys_sendto(struct syscall_info* call) {
function sys_setsockopt (line 3431) | static long sys_setsockopt(struct syscall_info* call) {
function sys_getsockopt (line 3471) | static long sys_getsockopt(struct syscall_info* call) {
function sys_getsockname (line 3523) | static long sys_getsockname(struct syscall_info* call) {
function sys_socketpair (line 3567) | static long sys_socketpair(struct syscall_info* call) {
function sys_uname (line 3593) | static long sys_uname(struct syscall_info* call) {
function sys_time (line 3618) | static long sys_time(struct syscall_info* call) {
type stat64_t (line 3640) | typedef struct stat64 stat64_t;
type stat64_t (line 3642) | typedef struct stat stat64_t;
function sys_xstat64 (line 3644) | static long sys_xstat64(struct syscall_info* call) {
function sys_statx (line 3674) | static long sys_statx(struct syscall_info* call) {
function sys_fstatat (line 3699) | static long sys_fstatat(struct syscall_info* call) {
function sys_quotactl (line 3726) | static long sys_quotactl(struct syscall_info* call) {
function sys_statfs (line 3755) | static long sys_statfs(struct syscall_info* call) {
function sys_write (line 3783) | static long sys_write(struct syscall_info* call) {
function sys_pwrite64 (line 3812) | static long sys_pwrite64(struct syscall_info* call) {
function sys_writev (line 3841) | static long sys_writev(struct syscall_info* call) {
function sys_prctl (line 3866) | static long sys_prctl(struct syscall_info* call) {
function sys_set_robust_list (line 3891) | static long sys_set_robust_list(struct syscall_info* call) {
function sys_rseq (line 3918) | static long sys_rseq(struct syscall_info* call) {
function sys_ptrace (line 3952) | static long sys_ptrace(struct syscall_info* call) {
function sys_getrusage (line 4000) | static long sys_getrusage(struct syscall_info* call) {
function sys_rt_sigprocmask (line 4025) | static long sys_rt_sigprocmask(struct syscall_info* call) {
function sys_sigaltstack (line 4101) | static long sys_sigaltstack(struct syscall_info* call) {
function sys_rrcall_rdtsc (line 4128) | static long sys_rrcall_rdtsc(struct syscall_info* call) {
function syscall_hook_internal (line 4156) | static long syscall_hook_internal(struct syscall_info* call) {
function do_delay (line 4358) | static void do_delay(void) {
function syscall_hook (line 4371) | RR_HIDDEN long syscall_hook(struct syscall_info* call) {
FILE: src/preload/syscallbuf.h
type timespec (line 6) | struct timespec
FILE: src/preload/tweak_librrpage.py
function read_byte (line 21) | def read_byte(f):
function read_uint64 (line 24) | def read_uint64(f):
function write_uint64 (line 27) | def write_uint64(f, v):
function read_uint32 (line 30) | def read_uint32(f):
function write_uint32 (line 33) | def write_uint32(f, v):
function read_uint16 (line 36) | def read_uint16(f):
function seek_nth_section_sh_offset (line 39) | def seek_nth_section_sh_offset(f, shtable, e_shentsize, n, offset):
function read_uptr (line 42) | def read_uptr(is64, f):
function write_uptr (line 48) | def write_uptr(is64, f, v):
FILE: src/processor_trace_check.cc
type rr (line 18) | namespace rr {
function get_next_instruction (line 20) | static bool get_next_instruction(ReplayTask* t, ProcessorTraceDecoder&...
function string (line 36) | static string intel_pt_context(ReplayTask* t, const vector<uint8_t>& r...
function flatten_vector (line 82) | static vector<uint8_t> flatten_vector(const vector<vector<uint8_t>>& d...
function check_intel_pt_internal (line 99) | static bool check_intel_pt_internal(ReplayTask* t,
function check_intel_pt_if_enabled (line 176) | void check_intel_pt_if_enabled(ReplayTask* t) {
function emergency_check_intel_pt (line 204) | void emergency_check_intel_pt(ReplayTask* t, ostream& stream) {
FILE: src/processor_trace_check.h
function namespace (line 8) | namespace rr {
FILE: src/record_signal.cc
type rr (line 32) | namespace rr {
function restore_sighandler_if_not_default (line 34) | static void restore_sighandler_if_not_default(RecordTask* t, int sig) {
function restore_signal_state (line 51) | static void restore_signal_state(RecordTask* t, int sig,
function try_handle_trapped_instruction (line 78) | static bool try_handle_trapped_instruction(RecordTask* t, siginfo_t* s...
function try_grow_map (line 165) | static bool try_grow_map(RecordTask* t, siginfo_t* si) {
function disarm_desched_event (line 178) | void disarm_desched_event(RecordTask* t) {
function arm_desched_event (line 185) | void arm_desched_event(RecordTask* t) {
function desched_event_armed (line 192) | bool desched_event_armed(RecordTask *t) {
function remote_code_ptr (line 207) | static remote_code_ptr get_stub_scratch_1_arch(RecordTask* t) {
function remote_code_ptr (line 214) | static remote_code_ptr get_stub_scratch_1(RecordTask* t) {
function get_stub_scratch_2_arch (line 219) | static void get_stub_scratch_2_arch(RecordTask* t, void *buff, size_t ...
function get_stub_scratch_2 (line 226) | static void get_stub_scratch_2(RecordTask* t, void *buff, size_t sz) {
function handle_syscallbuf_breakpoint (line 239) | bool handle_syscallbuf_breakpoint(RecordTask* t) {
function handle_desched_event (line 343) | static void handle_desched_event(RecordTask* t) {
function is_safe_to_deliver_signal (line 589) | static bool is_safe_to_deliver_signal(RecordTask* t, siginfo_t* si) {
function SignalHandled (line 670) | SignalHandled handle_signal(RecordTask* t, siginfo_t* si,
FILE: src/record_signal.h
function namespace (line 10) | namespace rr {
FILE: src/record_syscall.cc
type termios2 (line 121) | struct termios2 {
type rr (line 133) | namespace rr {
type semid64_ds (line 137) | struct semid64_ds
type seminfo (line 139) | struct seminfo
function _shmctl (line 145) | static int _shmctl(int shmid, int cmd, shmid64_ds* buf) {
function _semctl (line 161) | static int _semctl(int semid, int semnum, int cmd, _semun un_arg) {
type ArgMode (line 181) | enum ArgMode {
type ParamSize (line 204) | struct ParamSize {
method ParamSize (line 205) | ParamSize() : incoming_size(size_t(-1)), from_syscall_multiplier(0) {}
method ParamSize (line 208) | ParamSize(size_t incoming_size)
method ParamSize (line 217) | static ParamSize from_initialized_mem(RecordTask* t, remote_ptr<T> p) {
method ParamSize (line 228) | static ParamSize from_mem(remote_ptr<T> p) {
method ParamSize (line 239) | static ParamSize from_syscall_result() {
method ParamSize (line 246) | static ParamSize from_syscall_result(size_t incoming_size, uint32_t ...
method ParamSize (line 255) | ParamSize limit_size(size_t max) const {
method is_same_source (line 269) | bool is_same_source(const ParamSize& other) const {
type TaskSyscallState (line 371) | struct TaskSyscallState : TaskSyscallStateBase {
method TaskSyscallState (line 372) | static TaskSyscallState& get(RecordTask* t) {
method TaskSyscallState (line 377) | static TaskSyscallState* maybe_get(RecordTask* t) {
method init (line 382) | void init(RecordTask* t) {
method reg_parameter (line 398) | remote_ptr<T> reg_parameter(int arg, ArgMode mode = OUT,
method mem_ptr_parameter (line 422) | remote_ptr<T> mem_ptr_parameter(remote_ptr<void> addr_of_buf_ptr,
method mem_ptr_parameter_inferred (line 438) | remote_ptr<typename Ptr::Referent> mem_ptr_parameter_inferred(
method after_syscall_action (line 461) | void after_syscall_action(AfterSyscallAction action) {
method emulate_result (line 465) | void emulate_result(uint64_t result) {
type WriteBack (line 492) | enum WriteBack { WRITE_BACK, NO_WRITE_BACK }
type MemoryParam (line 512) | struct MemoryParam {
method MemoryParam (line 513) | MemoryParam() : ptr_in_reg(0) {}
method TaskSyscallState (line 575) | TaskSyscallState()
function set_remote_ptr_arch (line 585) | static void set_remote_ptr_arch(RecordTask* t, remote_ptr<void> addr,
function set_remote_ptr (line 591) | static void set_remote_ptr(RecordTask* t, remote_ptr<void> addr,
function get_remote_ptr_arch (line 597) | static remote_ptr<void> get_remote_ptr_arch(RecordTask* t,
function get_remote_ptr (line 604) | static remote_ptr<void> get_remote_ptr(RecordTask* t, remote_ptr<void>...
function align_scratch (line 608) | static void align_scratch(remote_ptr<void>* scratch, uintptr_t amount ...
function Switchable (line 682) | Switchable TaskSyscallState::done_preparing_internal(Switchable sw) {
function Switchable (line 753) | Switchable TaskSyscallState::done_preparing(Switchable sw) {
function prepare_recvmsg (line 941) | static void prepare_recvmsg(RecordTask* t, TaskSyscallState& syscall_s...
function prepare_recvmmsg (line 967) | static void prepare_recvmmsg(RecordTask* t, TaskSyscallState& syscall_...
function block_sock_opt (line 977) | static bool block_sock_opt(int level, int optname,
function Switchable (line 1001) | static Switchable prepare_setsockopt(RecordTask* t,
function Switchable (line 1035) | static Switchable maybe_blacklist_connect(RecordTask* t,
function Switchable (line 1055) | static Switchable prepare_socketcall(RecordTask* t,
function Switchable (line 1256) | static Switchable prepare_msgctl(TaskSyscallState& syscall_state, int ...
function Switchable (line 1280) | static Switchable prepare_shmctl(TaskSyscallState& syscall_state, int ...
type SemctlDereference (line 1309) | enum SemctlDereference { DEREFERENCE, USE_DIRECTLY }
function Switchable (line 1312) | static Switchable prepare_semctl(RecordTask* t, TaskSyscallState& sysc...
function record_v4l2_buffer_change (line 1381) | static void record_v4l2_buffer_change(RecordTask* t, int fd, uint64_t ...
function record_v4l2_buffer_contents (line 1393) | static void record_v4l2_buffer_contents(RecordTask* t) {
function record_usbdevfs_reaped_urb (line 1408) | static void record_usbdevfs_reaped_urb(RecordTask* t) {
function record_page_below_stack_ptr (line 1436) | static void record_page_below_stack_ptr(RecordTask* t) {
function get_ethtool_gstrings_arch (line 1449) | void get_ethtool_gstrings_arch(RecordTask* t) {
function get_ethtool_gstrings (line 1508) | static void get_ethtool_gstrings(RecordTask* t) {
function prepare_ethtool_ioctl (line 1512) | void prepare_ethtool_ioctl(RecordTask* t, TaskSyscallState& syscall_st...
function Switchable (line 1644) | static Switchable prepare_ioctl(RecordTask* t,
function BpfMapMonitor (line 2241) | static BpfMapMonitor* bpf_map_monitor(RecordTask* t,
function Switchable (line 2253) | static Switchable prepare_bpf(RecordTask* t,
function maybe_emulate_wait (line 2364) | static bool maybe_emulate_wait(RecordTask* t, TaskSyscallState& syscal...
function maybe_pause_instead_of_waiting (line 2398) | static void maybe_pause_instead_of_waiting(RecordTask* t) {
function RecordTask (line 2430) | static RecordTask* verify_ptrace_target(RecordTask* tracer,
function prepare_ptrace_cont (line 2453) | static void prepare_ptrace_cont(RecordTask* tracee, int sig, int comma...
function widen_buffer_unsigned (line 2478) | static uint64_t widen_buffer_unsigned(const void* buf, size_t size) {
function widen_buffer_signed (line 2494) | static int64_t widen_buffer_signed(const void* buf, size_t size) {
function path_inode_number (line 2510) | static uint64_t path_inode_number(const char* path) {
function is_same_namespace (line 2517) | static bool is_same_namespace(const char* name, pid_t tid1, pid_t tid2) {
function ptrace_get_reg_set (line 2526) | static void ptrace_get_reg_set(RecordTask* t, TaskSyscallState& syscal...
function ptrace_verify_set_reg_set (line 2539) | static void ptrace_verify_set_reg_set(RecordTask* t, size_t min_size,
function verify_ptrace_options (line 2549) | static bool verify_ptrace_options(RecordTask* t,
function check_ptracer_compatible (line 2564) | static void check_ptracer_compatible(RecordTask* tracer, RecordTask* t...
function RecordTask (line 2571) | static RecordTask* prepare_ptrace_attach(RecordTask* tracer, pid_t att...
function RecordTask (line 2596) | static RecordTask* prepare_ptrace_traceme(RecordTask* tracee,
function ptrace_attach_to_already_stopped_task (line 2624) | static void ptrace_attach_to_already_stopped_task(RecordTask* t) {
function prepare_ptrace_legacy (line 2643) | static void prepare_ptrace_legacy(RecordTask* t,
function non_negative_command (line 2799) | static int non_negative_command(int command) { return command < 0 ? INT3...
function Switchable (line 2802) | static Switchable prepare_ptrace(RecordTask* t,
function check_signals_while_exiting (line 3316) | static void check_signals_while_exiting(RecordTask* t) {
function send_signal_during_init_buffers (line 3330) | static bool send_signal_during_init_buffers() {
function prepare_exit (line 3342) | static void prepare_exit(RecordTask* t) {
function prepare_mmap_register_params (line 3404) | static void prepare_mmap_register_params(RecordTask* t) {
type ScratchAddrType (line 3458) | enum ScratchAddrType { FIXED_ADDRESS, DYNAMIC_ADDRESS }
function init_scratch_memory (line 3464) | static void init_scratch_memory(RecordTask* t,
function ptrace_option_for_event (line 3509) | static int ptrace_option_for_event(int ptrace_event) {
function Switchable (line 3524) | static Switchable prepare_clone(RecordTask* t, TaskSyscallState& syscall...
function protect_rr_sigs (line 3673) | static bool protect_rr_sigs(RecordTask* t, remote_ptr<void> p, void* sav...
function protect_rr_sigs_sa_mask_arch (line 3695) | static bool protect_rr_sigs_sa_mask_arch(RecordTask* t, remote_ptr<void> p,
function protect_rr_sigs_sa_mask (line 3722) | static bool protect_rr_sigs_sa_mask(RecordTask* t, remote_ptr<void> p,
function record_ranges (line 3727) | static void record_ranges(RecordTask* t,
function pid_t (line 3740) | static pid_t do_detach_teleport(RecordTask *t)
function Switchable (line 3793) | static Switchable did_emulate_read(int syscallno, RecordTask* t,
function ParamSize (line 3816) | static ParamSize select_param_size(intptr_t nfds, SupportedArch arch) {
function Switchable (line 3827) | static Switchable rec_prepare_syscall_arch(RecordTask* t,
function Switchable (line 5565) | static Switchable rec_prepare_syscall_internal(
function Switchable (line 5575) | Switchable rec_prepare_syscall(RecordTask* t) {
function rec_abort_prepared_syscall (line 5584) | void rec_abort_prepared_syscall(RecordTask* t) {
function rec_return_normally_from_wait (line 5593) | bool rec_return_normally_from_wait(RecordTask* t) {
function aarch64_kernel_bug_workaround (line 5607) | static void aarch64_kernel_bug_workaround(RecordTask *t,
function rec_prepare_restart_syscall_arch (line 5623) | static void rec_prepare_restart_syscall_arch(RecordTask* t,
function rec_prepare_restart_syscall_internal (line 5667) | static void rec_prepare_restart_syscall_internal(
function rec_prepare_restart_syscall (line 5673) | void rec_prepare_restart_syscall(RecordTask* t) {
function is_privileged_executable (line 5687) | static bool is_privileged_executable(RecordTask* t, const string& path) {
function in_same_mount_namespace_as (line 5710) | static bool in_same_mount_namespace_as(RecordTask* t) {
function check_privileged_exe (line 5719) | static void check_privileged_exe(RecordTask* t) {
function word_at (line 5755) | static uint64_t word_at(uint8_t* buf, size_t wsize) {
function get_exe_entry_interp_base (line 5765) | static pair<remote_ptr<void>, remote_ptr<void>> get_exe_entry_interp_bas...
function string (line 5786) | static string try_make_process_file_name(RecordTask* t,
type PageState (line 5817) | enum class PageState {
function find_pages (line 5823) | static vector<MemoryRange> find_pages(RecordTask* t, MemoryRange range, ...
function process_execve (line 5861) | static void process_execve(RecordTask* t, TaskSyscallState& syscall_stat...
function is_writable (line 6063) | static bool is_writable(RecordTask* t, int fd) {
function monitor_fd_for_mapping (line 6070) | static bool monitor_fd_for_mapping(RecordTask* mapped_t, int mapped_fd, ...
function os_has_broken_zfs (line 6131) | static bool os_has_broken_zfs() {
function may_have_zfs_seek_bug (line 6162) | static bool may_have_zfs_seek_bug(ScopedFd& fd) {
function find_holes (line 6184) | static vector<WriteHole> find_holes(RecordTask* t, int desc, uint64_t of...
function check_outside_mappings (line 6226) | static void check_outside_mappings(const KernelMapping& tracee_km, const...
function process_mmap (line 6271) | static void process_mmap(RecordTask* t, size_t length, int prot, int flags,
function process_mremap (line 6412) | static void process_mremap(RecordTask* t, remote_ptr<void> old_addr,
function process_shmat (line 6460) | static void process_shmat(RecordTask* t, int shmid, int shm_flags,
function maybe_process_new_socket (line 6495) | static void maybe_process_new_socket(RecordTask* t, int fd) {
function string (line 6510) | static string extra_expected_errno_info(RecordTask* t,
function is_rr_fd_terminal (line 6597) | static bool is_rr_fd_terminal(int fd, const string& pathname) {
function is_rr_terminal (line 6606) | static bool is_rr_terminal(const string& pathname) {
function dev_tty_fd (line 6620) | static int dev_tty_fd() {
function record_iovec_output (line 6629) | static void record_iovec_output(RecordTask* t, RecordTask* dest,
function all_tasks_exited (line 6640) | static bool all_tasks_exited(AddressSpace* vm) {
function is_mapped_shared (line 6649) | static bool is_mapped_shared(RecordTask* t, const struct stat& st) {
function string (line 6669) | static string handle_opened_file(RecordTask* t, int fd, int flags) {
function check_scm_rights_fd (line 6732) | static void check_scm_rights_fd(RecordTask* t, typename Arch::msghdr& ms...
function fake_gcrypt_file (line 6759) | static void fake_gcrypt_file(RecordTask* t, Registers* r) {
function record_madvise (line 6793) | static void record_madvise(RecordTask* t) {
function rec_process_syscall_arch (line 6839) | static void rec_process_syscall_arch(RecordTask* t,
function rec_did_sigreturn (line 7465) | void rec_did_sigreturn(RecordTask *t) {
function rec_process_syscall (line 7471) | void rec_process_syscall(RecordTask* t) {
FILE: src/record_syscall.h
function namespace (line 8) | namespace rr {
FILE: src/remote_code_ptr.cc
type rr (line 7) | namespace rr {
function ostream (line 9) | ostream& operator<<(ostream& stream, remote_code_ptr p) {
FILE: src/remote_code_ptr.h
function namespace (line 9) | namespace rr {
function namespace (line 115) | namespace std {
FILE: src/remote_ptr.h
function namespace (line 10) | namespace rr {
function T (line 92) | T* dummy() { return nullptr; }
function T (line 93) | const T* dummy() const { return nullptr; }
function referent_size (line 95) | size_t referent_size() { return sizeof(T); }
function arith_size (line 99) | static size_t arith_size() { return pointer_arithmetic_size<T>(); }
FILE: src/replay_syscall.cc
type rr (line 62) | namespace rr {
function init_scratch_memory (line 74) | static void init_scratch_memory(ReplayTask* t, const KernelMapping& km,
function maybe_noop_restore_syscallbuf_scratch (line 112) | static void maybe_noop_restore_syscallbuf_scratch(ReplayTask* t) {
function TraceTaskEvent (line 121) | static TraceTaskEvent read_task_trace_event(ReplayTask* t,
function syscall_shares_vm (line 138) | static bool syscall_shares_vm(Registers r)
function prepare_clone (line 153) | static void prepare_clone(ReplayTask* t) {
function restore_mapped_region (line 318) | static void restore_mapped_region(ReplayTask* t, AutoRemoteSyscalls& r...
function process_execve (line 360) | static void process_execve(ReplayTask* t, const TraceFrame& trace_frame,
function process_brk (line 504) | static void process_brk(ReplayTask* t) {
function finish_anonymous_mmap (line 526) | static void finish_anonymous_mmap(ReplayTask* t, AutoRemoteSyscalls& r...
function write_mapped_data (line 557) | static void write_mapped_data(ReplayTask* t,
function finish_private_mmap (line 599) | static void finish_private_mmap(ReplayTask* t, AutoRemoteSyscalls& rem...
function finish_shared_mmap (line 622) | static void finish_shared_mmap(ReplayTask* t, AutoRemoteSyscalls& remote,
function process_mmap (line 681) | static void process_mmap(ReplayTask* t, const TraceFrame& trace_frame,
function process_mremap (line 773) | static void process_mremap(ReplayTask* t, const TraceFrame& trace_frame,
function process_grow_map (line 870) | void process_grow_map(ReplayTask* t) {
function process_shmat (line 878) | static void process_shmat(ReplayTask* t, const TraceFrame& trace_frame,
function process_shmdt (line 902) | static void process_shmdt(ReplayTask* t, const TraceFrame& trace_frame,
function process_madvise (line 917) | static bool process_madvise(ReplayTask* t, const TraceFrame& trace_frame,
function process_init_buffers (line 958) | static void process_init_buffers(ReplayTask* t, ReplayTraceStep* step) {
function non_negative_syscall (line 968) | static int non_negative_syscall(int sys) { return sys < 0 ? INT32_MAX ...
function rep_after_enter_syscall_arch (line 971) | static void rep_after_enter_syscall_arch(ReplayTask* t) {
function rep_prepare_run_to_syscall (line 1043) | void rep_prepare_run_to_syscall(ReplayTask* t, ReplayTraceStep* step) {
function handle_opened_files (line 1068) | static void handle_opened_files(ReplayTask* t, int flags) {
function rep_process_syscall_arch (line 1098) | static void rep_process_syscall_arch(ReplayTask* t, ReplayTraceStep* s...
function rep_process_syscall (line 1406) | void rep_process_syscall(ReplayTask* t, ReplayTraceStep* step) {
FILE: src/replay_syscall.h
function namespace (line 8) | namespace rr {
FILE: src/seccomp-bpf.h
type seccomp_data (line 57) | struct seccomp_data {
function namespace (line 65) | namespace rr {
FILE: src/syscalls.py
class BaseSyscall (line 1) | class BaseSyscall(object):
method __init__ (line 10) | def __init__(self, all=None, x86=None, x64=None, generic=None, **kwargs):
class RestartSyscall (line 21) | class RestartSyscall(BaseSyscall):
method __init__ (line 23) | def __init__(self, **kwargs):
class UnsupportedSyscall (line 26) | class UnsupportedSyscall(BaseSyscall):
method __init__ (line 33) | def __init__(self, **kwargs):
class InvalidSyscall (line 36) | class InvalidSyscall(UnsupportedSyscall):
method __init__ (line 43) | def __init__(self, **kwargs):
class RegularSyscall (line 46) | class RegularSyscall(BaseSyscall):
method __init__ (line 59) | def __init__(self, **kwargs):
class EmulatedSyscall (line 67) | class EmulatedSyscall(RegularSyscall):
method __init__ (line 70) | def __init__(self, **kwargs):
class IrregularEmulatedSyscall (line 73) | class IrregularEmulatedSyscall(BaseSyscall):
method __init__ (line 76) | def __init__(self, **kwargs):
function _syscalls (line 1820) | def _syscalls():
function all (line 1825) | def all():
function for_arch (line 1828) | def for_arch(arch):
FILE: src/test-monitor/test-monitor.cc
function print_usage (line 22) | static void print_usage(FILE* out) {
function sighandler (line 43) | static void sighandler(__attribute__((unused)) int sig, siginfo_t* si,
type ProcessInfo (line 48) | struct ProcessInfo {
method ProcessInfo (line 49) | ProcessInfo() : is_traced(false) {}
type ProcessMap (line 55) | struct ProcessMap {
type dirent (line 68) | struct dirent
function dump_proc_for_process (line 115) | static void dump_proc_for_process(pid_t child, const char* suffix, FILE*...
function dump_popen_cmdline (line 131) | static void dump_popen_cmdline(const char* cmdline, FILE* out) {
function dump_gdb_stacktrace (line 183) | static void dump_gdb_stacktrace(pid_t child, FILE* out) {
function force_trace_closure (line 191) | static void force_trace_closure(pid_t child, FILE* out) {
function dump_emergency_debugger (line 205) | static void dump_emergency_debugger(char* gdb_cmd, FILE* out) {
function get_child_threads (line 227) | static vector<pid_t> get_child_threads(pid_t pid) {
function dump_subtree (line 251) | static void dump_subtree(ProcessMap& child_processes,
function dump_state_and_kill (line 281) | static void dump_state_and_kill(pid_t child, const char* out_file_name) {
function main (line 346) | int main(int argc, char* argv[]) {
FILE: src/test/64bit_child.c
function callback (line 5) | void callback(uint64_t env, char *name, __attribute__((unused)) map_prop...
function skip_if_rr_32_bit_under_kernel_64_bit (line 17) | static void skip_if_rr_32_bit_under_kernel_64_bit(void) {
function main (line 35) | int main(void) {
FILE: src/test/_llseek.c
function main (line 5) | int main(__attribute__((unused)) int argc, char* argv[]) {
FILE: src/test/abort.c
function main (line 5) | int main(void) {
FILE: src/test/abort_nonmain.c
function main (line 12) | int main(void) {
FILE: src/test/accept.c
function client (line 5) | static void client(const struct sockaddr_un* addr) {
function server (line 27) | static void server(int use_accept4, int pass_addr) {
function main (line 71) | int main(void) {
FILE: src/test/acct.c
function main (line 5) | int main(void) {
FILE: src/test/adjtimex.c
function main (line 7) | int main(void) {
FILE: src/test/aio.c
function main (line 5) | int main(void) {
FILE: src/test/alarm.c
function breakpoint (line 5) | static void breakpoint(void) {}
function catcher (line 9) | void catcher(__attribute__((unused)) int signum,
function main (line 15) | int main(void) {
FILE: src/test/alarm2.c
function catcher (line 5) | void catcher(__attribute__((unused)) int signum,
function main (line 12) | int main(void) {
FILE: src/test/alsa_ioctl.c
function main (line 9) | int main(void) {
FILE: src/test/alternate_thread_diversion.c
function get_value (line 5) | __attribute__((used)) static int get_value(void) { return value; }
function break_here (line 7) | __attribute__((noinline)) static void break_here(void) { __asm__(""); }
function main (line 18) | int main(void) {
FILE: src/test/args.c
function main (line 5) | int main(int argc, char* argv[]) {
FILE: src/test/arm/arch_timer.c
function cntfrq (line 14) | long cntfrq(void) {
function cntvct (line 20) | long cntvct(void) {
function cntvctss (line 26) | long cntvctss(void) {
function arch_timer_nops (line 39) | void arch_timer_nops(void) {
function diversion_check (line 47) | void diversion_check(void) {
function breakpoint (line 55) | void breakpoint(void) {}
function main (line 57) | int main(void) {
FILE: src/test/arm/brk_nonzero.c
function breakpoint (line 5) | static void breakpoint(void) {
function handle_sigtrap (line 9) | static void handle_sigtrap(__attribute__((unused)) int sig) {
function main (line 14) | int main(void) {
FILE: src/test/arm/tagged_addr_ctrl.c
function main (line 7) | int main(void) {
FILE: src/test/async_kill_with_syscallbuf.c
function main (line 5) | int main(void) {
FILE: src/test/async_kill_with_syscallbuf2.c
function main (line 5) | int main(void) {
FILE: src/test/async_kill_with_threads.c
function main (line 11) | int main(void) {
FILE: src/test/async_kill_with_threads_main_running.c
function main (line 10) | int main(void) {
FILE: src/test/async_kill_with_threads_thread_running.c
function main (line 13) | int main(void) {
FILE: src/test/async_segv.c
function handle_segv (line 5) | static void handle_segv(int sig) {
function main (line 11) | int main(void) {
FILE: src/test/async_segv_ignored.c
function main (line 5) | int main(void) {
FILE: src/test/async_signal_syscalls.c
function handle_usr1 (line 7) | static void handle_usr1(int sig) {
function main (line 20) | int main(int argc, char* argv[]) {
FILE: src/test/async_signal_syscalls2.c
function handle_signal (line 14) | static void handle_signal(int sig) {
type timespec (line 33) | struct timespec
function main (line 67) | int main(void) {
FILE: src/test/async_signal_syscalls_siginfo.c
function handle_usr1 (line 10) | static void handle_usr1(int sig, siginfo_t* si,
function main (line 34) | int main(int argc, char* argv[]) {
FILE: src/test/async_usr1.c
function handle_usr1 (line 7) | static void handle_usr1(int sig) {
function breakpoint (line 13) | static void breakpoint(void) {
function main (line 18) | int main(void) {
FILE: src/test/at_threadexit.c
function thread_exit (line 8) | static void thread_exit(__attribute__((unused)) void* data) {
function main (line 18) | int main(void) {
FILE: src/test/bad_ip.c
function sighandler (line 5) | static void sighandler(int sig, siginfo_t* si,
function main (line 13) | int main(void) {
FILE: src/test/bad_syscall.c
function main (line 5) | int main(void) {
FILE: src/test/barrier.c
function breakpoint (line 5) | static void breakpoint(void) {
function hit_barrier (line 10) | static void hit_barrier(void) {
function joined_threads (line 15) | static void joined_threads(void) {
function set_thread_name (line 20) | static void set_thread_name(int id) {
type thread_data (line 26) | struct thread_data {
type thread_data (line 32) | struct thread_data
function main (line 47) | int main(void) {
FILE: src/test/big_buffers.c
function main (line 8) | int main(void) {
FILE: src/test/big_select.c
function main (line 7) | int main(void) {
FILE: src/test/blacklist.c
function main (line 7) | int main(void) {
FILE: src/test/block.c
type sendmmsg_arg (line 8) | struct sendmmsg_arg {
type recvmmsg_arg (line 15) | struct recvmmsg_arg {
type select_arg (line 23) | struct select_arg {
function breakpoint (line 31) | static void breakpoint(void) {
type timeval (line 45) | struct timeval
type sockaddr_un (line 79) | struct sockaddr_un
type sockaddr (line 83) | struct sockaddr
type mmsghdr (line 92) | struct mmsghdr
type iovec (line 93) | struct iovec
type recvmmsg_arg (line 97) | struct recvmmsg_arg
type cmsghdr (line 107) | struct cmsghdr
type cmsghdr (line 107) | struct cmsghdr
type stat (line 128) | struct stat
type msghdr (line 165) | struct msghdr
type iovec (line 166) | struct iovec
type pollfd (line 188) | struct pollfd
type pollfd (line 202) | struct pollfd
type timeval (line 217) | struct timeval
type timeval (line 218) | struct timeval
type select_arg (line 221) | struct select_arg
type timeval (line 254) | struct timeval
type timeval (line 255) | struct timeval
type epoll_event (line 276) | struct epoll_event
type iovec (line 300) | struct iovec
function read_all_chunks (line 347) | static void read_all_chunks(int sock, char* buf, ssize_t num_sockbuf_bytes,
function main (line 376) | int main(void) {
FILE: src/test/block_clone_checkpoint.c
function breakpoint (line 7) | static void breakpoint(void) { event_syscall(); }
function main (line 9) | int main(void) {
FILE: src/test/block_clone_interrupted.c
function main (line 9) | int main(void) {
FILE: src/test/block_clone_syscallbuf_overflow.c
function main (line 9) | int main(void) {
FILE: src/test/block_intr_sigchld.c
function child_proc (line 13) | static void child_proc(void) { exit(MAGIC_EXIT_CODE); }
function main (line 33) | int main(void) {
FILE: src/test/block_open.c
function try_open (line 5) | static int try_open(int flags) { return open("fifo", flags); }
function try_openat (line 7) | static int try_openat(int flags) { return openat(AT_FDCWD, "fifo", flags...
function do_test (line 9) | static void do_test(int (*func)(int)) {
function main (line 33) | int main(void) {
FILE: src/test/blocked_bad_ip.c
function fault_handler (line 5) | static void fault_handler(__attribute__((unused)) int sig,
function main (line 27) | int main(void) {
FILE: src/test/blocked_sigill.c
function fault_handler (line 5) | static void fault_handler(__attribute__((unused)) int sig,
function main (line 25) | int main(void) {
FILE: src/test/bpf.c
function bpf (line 6) | int bpf(int cmd, union bpf_attr *attr, unsigned int size)
function main (line 11) | int main(void) {
FILE: src/test/bpf_map.c
function bpf (line 6) | int bpf(int cmd, union bpf_attr *attr, unsigned int size)
function main (line 11) | int main(void) {
FILE: src/test/bpf_prog_map.c
function bpf (line 13) | int bpf(int cmd, union bpf_attr *attr, unsigned int size) {
type bpf_insn (line 17) | struct bpf_insn
function main (line 24) | int main(void) {
FILE: src/test/bpf_query.c
function bpf (line 15) | int bpf(int cmd, union bpf_attr *attr, unsigned int size) {
type bpf_insn (line 19) | struct bpf_insn
function main (line 26) | int main(void) {
FILE: src/test/breakpoint.c
function C (line 5) | static void C(void) { atomic_puts("in C"); }
function B (line 13) | static void B(void)
function A (line 19) | static void A(void)
function main (line 25) | int main(void) {
FILE: src/test/breakpoint_conditions.c
function breakpointA (line 5) | static void breakpointA(__attribute__((unused)) int v4) {
function breakpointB (line 10) | static void breakpointB(__attribute__((unused)) int v4) {
function main (line 24) | int main(void) {
FILE: src/test/breakpoint_conditions.py
function test_cond (line 3) | def test_cond(c):
FILE: src/test/breakpoint_overlap.c
function main (line 42) | int main(__attribute__((unused)) int argc, char* argv[]) {
FILE: src/test/brk.c
function main (line 5) | int main(void) {
FILE: src/test/brk2.c
function main (line 5) | int main(void) {
FILE: src/test/call_function.c
function breakpoint (line 7) | static void breakpoint(void) {
function mutate_var (line 12) | void mutat
Condensed preview — 1609 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,108K chars).
[
{
"path": ".android/Dockerfile",
"chars": 737,
"preview": "FROM ubuntu:latest\n\nARG ndk_version=r27c\n\nRUN apt-get update && apt-get install -y \\\n build-essential \\\n curl \\\n "
},
{
"path": ".android/README.md",
"chars": 663,
"preview": "# Building for Android\n\nTo build for Android (from the root of the rr source tree):\n\n```\ndocker build .android -t rr-and"
},
{
"path": ".android/build.sh",
"chars": 918,
"preview": "#!/usr/bin/env bash\nset -e\nset -x\n\nDEVICE_CMAKE_DEFS=\"-DCMAKE_TOOLCHAIN_FILE=/ndk/build/cmake/android.toolchain.cmake -D"
},
{
"path": ".buildkite/.gitignore",
"chars": 20,
"preview": "test.yml\ntest-*.yml\n"
},
{
"path": ".buildkite/CTestCostData.txt",
"chars": 99932,
"preview": "check_environment 2 0.0177417\n64bit_child 2 0.388554\n64bit_child-no-syscallbuf 2 0.343397\n_llseek 2 0.178732\n_llseek-no-"
},
{
"path": ".buildkite/Manifest.toml",
"chars": 3766,
"preview": "# This file is machine-generated - editing it directly is not advised\n\njulia_version = \"1.7.2\"\nmanifest_format = \"2.0\"\n\n"
},
{
"path": ".buildkite/Project.toml",
"chars": 53,
"preview": "[deps]\nYAML = \"ddb6d928-2868-570f-bddf-ab3f9cf99eb6\"\n"
},
{
"path": ".buildkite/capture_tmpdir.jl",
"chars": 4713,
"preview": "import Dates\nimport Pkg\nimport Tar\n\nfunction my_exit(process::Base.Process)\n wait(process)\n\n @info(\n \"\",\n "
},
{
"path": ".buildkite/pipeline.yml",
"chars": 720,
"preview": "steps:\n - label: \"Launch jobs\"\n plugins:\n - JuliaCI/julia#v1:\n persist_depot_dirs: packages,artifacts,"
},
{
"path": ".clang-format",
"chars": 1390,
"preview": "# BasedOnStyle: Mozilla\nAccessModifierOffset: -2\nConstructorInitializerIndentWidth: 4\nAlignEscapedNewlinesLeft: false\nA"
},
{
"path": ".github/workflows/android-build.yml",
"chars": 657,
"preview": "name: Android Build\n\non: [push, pull_request]\n\njobs:\n android-build:\n name: Android Build\n runs-on: ubuntu-latest"
},
{
"path": ".github/workflows/build-and-test-main.yml",
"chars": 1656,
"preview": "name: Build and test\n\non: [push, pull_request]\n\njobs:\n setup:\n name: Setup runners\n runs-on: ubuntu-latest\n if"
},
{
"path": ".github/workflows/build-and-test.yml",
"chars": 805,
"preview": "name: Build and test on runner\n\non:\n workflow_call:\n inputs:\n label:\n required: true\n type: strin"
},
{
"path": ".gitignore",
"chars": 742,
"preview": "*~\n.cache\n.cproject\nCMakeCache.txt\nCMakeFiles/\ncmake_install.cmake\nCPackConfig.cmake\nCPackSourceConfig.cmake\n_CPack_Pack"
},
{
"path": "CMakeLists.txt",
"chars": 69962,
"preview": "# *-* Mode: cmake; *-*\n\ncmake_minimum_required(VERSION 3.12)\nproject(rr C CXX ASM)\n\n# Require c++17 as minimum\nif(NOT DE"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 691,
"preview": "# Community Participation Guidelines\n\nThis repository is governed by Mozilla's code of conduct and etiquette guidelines."
},
{
"path": "CONTRIBUTING.md",
"chars": 3761,
"preview": "## Submission Checklist\n\nPlease make sure you go through this list before submitting a patch. The rules aren't hard and"
},
{
"path": "LICENSE",
"chars": 22309,
"preview": "Copyright (c) 2013 Mozilla Foundation\nCopyright 2015 VMware, Inc\nCopyright 2015 Google Inc.\n\nContributors: Albert Noll <"
},
{
"path": "README.md",
"chars": 1942,
"preview": "# Overview\n\n[ do |config|\n\tconfig.vm.box "
},
{
"path": "configure",
"chars": 88,
"preview": "#!/usr/bin/env bash\n\n# Helper to make |./configure && make| do what you expect.\ncmake .\n"
},
{
"path": "include/rr/rr.h",
"chars": 1339,
"preview": "/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_H_\n#define RR_H_\n\n/**\n * rr t"
},
{
"path": "release-process/README.md",
"chars": 4079,
"preview": "# Setting up AWS-based rr release testing\n\n* Create an AWS account.\n* Switch to the `us-east-2` (Ohio) region. The AMI I"
},
{
"path": "release-process/distro-configs/centos9.json",
"chars": 922,
"preview": "{\n \"name\": \"CentOS Stream 9\",\n \"ami_owner\": \"125523088429\",\n \"ami_name_pattern\": \"CentOS Stream 9 *\",\n \"user\": \"ec2-"
},
{
"path": "release-process/distro-configs/debian11.json",
"chars": 844,
"preview": "{\n \"name\": \"Debian 11\",\n \"ami_owner\": \"136693071363\",\n \"ami_name_pattern\": \"debian-11-*\",\n \"user\": \"admin\",\n \"setup"
},
{
"path": "release-process/distro-configs/debian12.json",
"chars": 887,
"preview": "{\n \"name\": \"Debian 12\",\n \"ami_owner\": \"136693071363\",\n \"ami_name_pattern\": \"debian-12-*\",\n \"user\": \"admin\",\n \"archs"
},
{
"path": "release-process/distro-configs/ubuntu20-lts.json",
"chars": 827,
"preview": "{\n \"name\": \"Ubuntu 20.04 LTS\",\n \"ami_owner\": \"099720109477\",\n \"ami_name_pattern\": \"ubuntu/images/hvm-ssd/ubuntu-focal"
},
{
"path": "release-process/distro-configs/ubuntu22-lts.json",
"chars": 922,
"preview": "{\n \"name\": \"Ubuntu 22.04 LTS\",\n \"ami_owner\": \"099720109477\",\n \"ami_name_pattern\": \"ubuntu/images/hvm-ssd/ubuntu-jammy"
},
{
"path": "release-process/distro-configs/ubuntu24-lts.json",
"chars": 744,
"preview": "{\n \"name\": \"Ubuntu 24.04 LTS\",\n \"ami_owner\": \"099720109477\",\n \"ami_name_pattern\": \"ubuntu/images/hvm-ssd-gp3/ubuntu-n"
},
{
"path": "release-process/distro-configs/ubuntu24.10.json",
"chars": 734,
"preview": "{\n \"name\": \"Ubuntu 24.10\",\n \"ami_owner\": \"099720109477\",\n \"ami_name_pattern\": \"ubuntu/images/hvm-ssd-gp3/ubuntu-oracu"
},
{
"path": "release-process/prepare-release.py",
"chars": 5452,
"preview": "#!/usr/bin/python3\n\nimport argparse\nimport glob\nimport json\nimport os\nimport re\nimport subprocess\nimport sys\nimport time"
},
{
"path": "release-process/rr-testing-cloud-formation.json",
"chars": 452,
"preview": "{\n \"AWSTemplateFormatVersion\" : \"2010-09-09\",\n \"Resources\": {\n \"SecurityGroup\": {\n \"Type\": \"AWS::EC2::Security"
},
{
"path": "release-process/rr-testing.sh",
"chars": 3572,
"preview": "# Bash script to build rr and run tests.\n#\n# Requires variables and functions to be set. See test-system.py.\n# $git_revi"
},
{
"path": "release-process/test-data/test.html",
"chars": 92,
"preview": "<!DOCTYPE HTML>\n<html>\n<body>\n<p>Hello!\n<script>\ndocument.title = \"rr Test Page\";\n</script>\n"
},
{
"path": "release-process/test-system.py",
"chars": 8862,
"preview": "#!/usr/bin/python3\n\nimport argparse\nimport boto3\nfrom datetime import datetime\nimport json\nimport pathlib\nimport subproc"
},
{
"path": "rr.spec",
"chars": 1375,
"preview": "Buildroot: @CPACK_BINARY_DIR@/_CPack_Packages/@CPACK_SYSTEM_NAME@/RPM/@CPACK_PACKAGE_FILE_NAME@\nSummary: Lightwei"
},
{
"path": "scripts/checkpoint-visualizer.html",
"chars": 2775,
"preview": "<!DOCTYPE HTML>\n<html>\n<body>\n<canvas width=\"1000\" height=\"50\" id=\"c\" style=\"border:1px solid black\"></canvas>\n<table st"
},
{
"path": "scripts/github-actions-CTestCostData.txt",
"chars": 105542,
"preview": "check_environment 3 0.0164291\n64bit_child 3 0.337334\n64bit_child-no-syscallbuf 3 0.302363\n_llseek 3 0.157875\n_llseek-no-"
},
{
"path": "scripts/github-actions-build.sh",
"chars": 546,
"preview": "#!/bin/bash\n\nset +x # echo commands\nset -e # default to exiting on error\"\n\nuname -a\n\nEXTRA_PACKAGES=\nMACHINE_TYPE=`uname"
},
{
"path": "scripts/github-actions-test.sh",
"chars": 1060,
"preview": "#!/bin/bash\n\nset +x # echo commands\n\n# Enable perf events for rr\necho 0 | sudo tee /proc/sys/kernel/perf_event_paranoid "
},
{
"path": "scripts/reformat.sh",
"chars": 81,
"preview": "#!/bin/sh\n\nfind src -regex '.*\\.\\(c\\|h\\|cc\\)$'|xargs clang-format -style=file -i\n"
},
{
"path": "scripts/rr-collect-symbols.py",
"chars": 7480,
"preview": "#!/usr/bin/env python3\n\nimport errno\nimport glob\nimport os\nimport re\nimport shutil\nimport subprocess\nimport sys\nimport t"
},
{
"path": "scripts/rr-gdb-script-host.py",
"chars": 7087,
"preview": "#!/usr/bin/env python3\n\"\"\" rr-gdb-script-host.py <user-gdb-script> <primary binary name>\"\"\"\n# Performs a limited emulati"
},
{
"path": "scripts/rr_completion",
"chars": 873,
"preview": "# vi:syntax=sh\n#\n# completion script for rr commands (to be sourced)\n\n_rr_subcmd_completion() {\n local cmd=$1\n loc"
},
{
"path": "scripts/rr_completion.zsh",
"chars": 1274,
"preview": "#compdef rr\n\n_rr() {\n # allow overridding rr with another command (e.g. if multiple versions are installed)\n zstyle -s"
},
{
"path": "scripts/signal-rr-recording.sh",
"chars": 562,
"preview": "#!/usr/bin/env bash\n\nsignal=$1\nif [[ \"$signal\" == \"\" ]]; then\n echo \"Usage: $0 <signal>\" >&2\n echo \"Sends <signal>"
},
{
"path": "scripts/update-gh-pages.sh",
"chars": 742,
"preview": "#!/usr/bin/env bash\n\nfunction fatal { why=$1;\n echo \"[FATAL]\" $why >&2\n exit 1\n}\n\nrev=HEAD\nif [[ $1 != \"\" ]]; then"
},
{
"path": "scripts/zen_workaround.py",
"chars": 5547,
"preview": "#!/usr/bin/env python3\n\nimport argparse\nimport os\nimport struct\nimport sys\n\nimport array\nfrom os.path import join\nfrom f"
},
{
"path": "scripts/zen_workaround.service",
"chars": 1150,
"preview": "# systemd service for AMD Zen `rr` workaround\n# See https://github.com/rr-debugger/rr/wiki/Zen for more details\n# To ins"
},
{
"path": "snap/snapcraft.yaml",
"chars": 1981,
"preview": "name: rr\nbase: core20 # the base snap is the execution environment for this snap\nversion: git\nsummary: low-overhead reco"
},
{
"path": "src/AddressSpace.cc",
"chars": 90940,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"AddressSpace.h\"\n\n#include <l"
},
{
"path": "src/AddressSpace.h",
"chars": 45420,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_ADDRESS_SPACE_H_\n#define RR"
},
{
"path": "src/AutoRemoteSyscalls.cc",
"chars": 36309,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"AutoRemoteSyscalls.h\"\n\n#incl"
},
{
"path": "src/AutoRemoteSyscalls.h",
"chars": 11558,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_AUTO_REMOTE_SYSCALLS_H_\n#de"
},
{
"path": "src/BpfMapMonitor.h",
"chars": 697,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_BPF_MAP_MONITOR_H_\n#define "
},
{
"path": "src/BreakpointCondition.h",
"chars": 370,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_BREAKPOINT_CONDITION_H_\n#de"
},
{
"path": "src/BuildidCommand.cc",
"chars": 1214,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <iostream>\n\n#include \"log.h\"\n"
},
{
"path": "src/CPUFeaturesCommand.cc",
"chars": 1483,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Command.h\"\n#include \"GdbServ"
},
{
"path": "src/CPUIDBugDetector.cc",
"chars": 2566,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"CPUIDBugDetector.h\"\n#include"
},
{
"path": "src/CPUIDBugDetector.h",
"chars": 1363,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_CPUID_BUG_DETECTOR_H_\n#defi"
},
{
"path": "src/CPUs.cc",
"chars": 4337,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"CPUs.h\"\n\n#include <sched.h>\n"
},
{
"path": "src/CPUs.h",
"chars": 1552,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_CPUS_H_\n#define RR_CPUS_H_\n"
},
{
"path": "src/Command.cc",
"chars": 5017,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#define _BSD_SOURCE\n\n#include \"Command"
},
{
"path": "src/Command.h",
"chars": 2016,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_COMMAND_H_\n#define RR_COMMA"
},
{
"path": "src/CompressedReader.cc",
"chars": 5611,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"CompressedReader.h\"\n\n#includ"
},
{
"path": "src/CompressedReader.h",
"chars": 2297,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_COMPRESSED_READER_H_\n#defin"
},
{
"path": "src/CompressedWriter.cc",
"chars": 8329,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"CompressedWriter.h\"\n\n#includ"
},
{
"path": "src/CompressedWriter.h",
"chars": 2793,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_COMPRESSED_WRITER_H_\n#defin"
},
{
"path": "src/ContextSwitchEvent.cc",
"chars": 4522,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ContextSwitchEvent.h\"\n\n#incl"
},
{
"path": "src/ContextSwitchEvent.h",
"chars": 2832,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_CONTEXT_SWITCH_EVENT_H_\n#de"
},
{
"path": "src/DebuggerExtensionCommand.cc",
"chars": 7247,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"DebuggerExtensionCommand.h\"\n"
},
{
"path": "src/DebuggerExtensionCommand.h",
"chars": 2368,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_DEBUGGER_EXTENSION_COMMAND_"
},
{
"path": "src/DebuggerExtensionCommandHandler.cc",
"chars": 11150,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"DebuggerExtensionCommandHand"
},
{
"path": "src/DebuggerExtensionCommandHandler.h",
"chars": 1698,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_DEBUGGER_EXTENSION_COMMAND_"
},
{
"path": "src/DiversionSession.cc",
"chars": 10108,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"DiversionSession.h\"\n\n#includ"
},
{
"path": "src/DiversionSession.h",
"chars": 2323,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_DIVERSION_SESSION_H_\n#defin"
},
{
"path": "src/DumpCommand.cc",
"chars": 14143,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"DumpCommand.h\"\n\n#include <ar"
},
{
"path": "src/DumpCommand.h",
"chars": 935,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_DUMP_COMMAND_H_\n#define RR_"
},
{
"path": "src/Dwarf.cc",
"chars": 22485,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Dwarf.h\"\n\n#include <string.h"
},
{
"path": "src/Dwarf.h",
"chars": 6452,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_DWARF_H_\n#define RR_DWARF_H"
},
{
"path": "src/ElfReader.cc",
"chars": 20017,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ElfReader.h\"\n\n#include <elf."
},
{
"path": "src/ElfReader.h",
"chars": 3691,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_ELF_READER_H_\n#define RR_EL"
},
{
"path": "src/EmuFs.cc",
"chars": 6305,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"EmuFs.h\"\n\n#include <syscall."
},
{
"path": "src/EmuFs.h",
"chars": 5808,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_EMUFS_H_\n#define RR_EMUFS_H"
},
{
"path": "src/Event.cc",
"chars": 6058,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Event.h\"\n\n#include <syscall."
},
{
"path": "src/Event.h",
"chars": 15133,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_EVENT_H_\n#define RR_EVENT_H"
},
{
"path": "src/ExportImportCheckpoints.cc",
"chars": 11419,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ExportImportCheckpoints.h\"\n\n"
},
{
"path": "src/ExportImportCheckpoints.h",
"chars": 1911,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_EXPORT_IMPORT_CHECKPOINTS_H"
},
{
"path": "src/ExtraRegisters.cc",
"chars": 32547,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ExtraRegisters.h\"\n\n#include "
},
{
"path": "src/ExtraRegisters.h",
"chars": 5690,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_EXTRA_REGISTERS_H_\n#define "
},
{
"path": "src/FdTable.cc",
"chars": 7562,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"FdTable.h\"\n\n#include <limits"
},
{
"path": "src/FdTable.h",
"chars": 3703,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_FD_TABLE_H_\n#define RR_FD_T"
},
{
"path": "src/FileMonitor.cc",
"chars": 3390,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"FileMonitor.h\"\n\n#include <li"
},
{
"path": "src/FileMonitor.h",
"chars": 3751,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_FILE_MONITOR_H_\n#define RR_"
},
{
"path": "src/FileNameCommand.cc",
"chars": 2223,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <unordered_set>\n\n#include \"Ad"
},
{
"path": "src/Flags.cc",
"chars": 213,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Flags.h\"\n\nnamespace rr {\n\nFl"
},
{
"path": "src/Flags.h",
"chars": 2665,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_FLAGS_H_\n#define RR_FLAGS_H"
},
{
"path": "src/GdbInitCommand.cc",
"chars": 679,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Command.h\"\n#include \"GdbServ"
},
{
"path": "src/GdbServer.cc",
"chars": 84396,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"GdbServer.h\"\n\n#include <elf."
},
{
"path": "src/GdbServer.h",
"chars": 13386,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_GDB_SERVER_H_\n#define RR_GD"
},
{
"path": "src/GdbServerConnection.cc",
"chars": 65026,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#define REVERSE_EXECUTION\n\n/**\n * Much"
},
{
"path": "src/GdbServerConnection.h",
"chars": 25505,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_GDB_CONNECTION_H_\n#define R"
},
{
"path": "src/GdbServerExpression.cc",
"chars": 11525,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"GdbServerExpression.h\"\n\n#inc"
},
{
"path": "src/GdbServerExpression.h",
"chars": 1183,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_GDB_EXPRESSION_H_\n#define R"
},
{
"path": "src/GdbServerRegister.h",
"chars": 5550,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_GDB_SERVER_REGISTER_H_\n#def"
},
{
"path": "src/HasTaskSet.cc",
"chars": 810,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"HasTaskSet.h\"\n\n#include \"Tas"
},
{
"path": "src/HasTaskSet.h",
"chars": 760,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_HASTASKSET_H_\n#define RR_HA"
},
{
"path": "src/HelpCommand.cc",
"chars": 883,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Command.h\"\n#include \"main.h\""
},
{
"path": "src/LldbInitCommand.cc",
"chars": 852,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Command.h\"\n#include \"GdbServ"
},
{
"path": "src/LsCommand.cc",
"chars": 7168,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <assert.h>\n#include <dirent.h"
},
{
"path": "src/MagicSaveDataMonitor.cc",
"chars": 2764,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"MagicSaveDataMonitor.h\"\n\n#in"
},
{
"path": "src/MagicSaveDataMonitor.h",
"chars": 602,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_MAGIC_SAVE_DATA_MONITOR_H_\n"
},
{
"path": "src/MemoryRange.h",
"chars": 2449,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_MEMORY_RANGE_H_\n#define RR_"
},
{
"path": "src/MmappedFileMonitor.cc",
"chars": 3468,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"MmappedFileMonitor.h\"\n\n#incl"
},
{
"path": "src/MmappedFileMonitor.h",
"chars": 1205,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_MMAPPED_FILE_MONITOR_H_\n#de"
},
{
"path": "src/MonitoredSharedMemory.cc",
"chars": 2804,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"MonitoredSharedMemory.h\"\n\n#i"
},
{
"path": "src/MonitoredSharedMemory.h",
"chars": 1838,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_MONITORED_SHARED_MEMORY_H_\n"
},
{
"path": "src/Monkeypatcher.cc",
"chars": 73031,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Monkeypatcher.h\"\n\n#include <"
},
{
"path": "src/Monkeypatcher.h",
"chars": 7218,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_MONKEYPATCHER_H_\n#define RR"
},
{
"path": "src/MvCommand.cc",
"chars": 2937,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <stdio.h>\n#include <sysexits."
},
{
"path": "src/NonvirtualPerfCounterMonitor.h",
"chars": 579,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_NONVIRTUAL_PERF_COUNTER_MON"
},
{
"path": "src/ODirectFileMonitor.h",
"chars": 584,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_ODIRECT_MONITOR_H_\n#define "
},
{
"path": "src/PackCommand.cc",
"chars": 24959,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <dirent.h>\n#include <limits.h"
},
{
"path": "src/PerfCounterBuffers.cc",
"chars": 4127,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"PerfCounterBuffers.h\"\n\n#incl"
},
{
"path": "src/PerfCounterBuffers.h",
"chars": 2038,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PERF_COUNTER_BUFFERS_H_\n#de"
},
{
"path": "src/PerfCounters.cc",
"chars": 47056,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"PerfCounters.h\"\n\n#include <d"
},
{
"path": "src/PerfCounters.h",
"chars": 7073,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PERF_COUNTERS_H_\n#define RR"
},
{
"path": "src/PerfCounters_aarch64.h",
"chars": 11863,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n// This file is included from PerfCount"
},
{
"path": "src/PerfCounters_x86.h",
"chars": 19192,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n// This file is included from PerfCount"
},
{
"path": "src/PidFdMonitor.cc",
"chars": 584,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"PidFdMonitor.h\"\n\n#include \"S"
},
{
"path": "src/PidFdMonitor.h",
"chars": 724,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PID_FD_MONITOR_H_\n#define R"
},
{
"path": "src/PreserveFileMonitor.h",
"chars": 874,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PRESERVE_FILE_MONITOR_H_\n#d"
},
{
"path": "src/ProcFdDirMonitor.cc",
"chars": 3588,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ProcFdDirMonitor.h\"\n\n#includ"
},
{
"path": "src/ProcFdDirMonitor.h",
"chars": 740,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PROC_FD_DIR_MONITOR_H_\n#def"
},
{
"path": "src/ProcMemMonitor.cc",
"chars": 1888,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ProcMemMonitor.h\"\n\n#include "
},
{
"path": "src/ProcMemMonitor.h",
"chars": 1118,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PROC_MEM_MONITOR_H_\n#define"
},
{
"path": "src/ProcStatMonitor.cc",
"chars": 1998,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <sys/stat.h>\n#include <unistd"
},
{
"path": "src/ProcStatMonitor.h",
"chars": 925,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PROC_STAT_MONITOR_H_\n#defin"
},
{
"path": "src/ProcessorTraceDecoder.cc",
"chars": 6435,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <intel-pt.h>\n\n#include <ostre"
},
{
"path": "src/ProcessorTraceDecoder.h",
"chars": 2208,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_PROCESSOR_TRACE_DECODER_H_\n"
},
{
"path": "src/PsCommand.cc",
"chars": 4992,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <map>\n\n#include \"Command.h\"\n#"
},
{
"path": "src/RRPageMonitor.h",
"chars": 741,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_RR_PAGE_MONITOR_H_\n#define "
},
{
"path": "src/RecordCommand.cc",
"chars": 32276,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"RecordCommand.h\"\n\n#include <"
},
{
"path": "src/RecordCommand.h",
"chars": 554,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_RECORD_COMMAND_H_\n#define R"
},
{
"path": "src/RecordSession.cc",
"chars": 111501,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"RecordSession.h\"\n\n#include <"
},
{
"path": "src/RecordSession.h",
"chars": 10137,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_RECORD_SESSION_H_\n#define R"
},
{
"path": "src/RecordTask.cc",
"chars": 81691,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"RecordTask.h\"\n\n#include <dir"
},
{
"path": "src/RecordTask.h",
"chars": 30605,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_RECORD_TASK_H_\n#define RR_R"
},
{
"path": "src/Registers.cc",
"chars": 25529,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Registers.h\"\n\n#include <arra"
},
{
"path": "src/Registers.h",
"chars": 22415,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REGISTERS_H_\n#define RR_REG"
},
{
"path": "src/ReplayCommand.cc",
"chars": 23927,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ReplayCommand.h\"\n\n#include <"
},
{
"path": "src/ReplayCommand.h",
"chars": 518,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REPLAY_COMMAND_H_\n#define R"
},
{
"path": "src/ReplaySession.cc",
"chars": 87493,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#define USE_BREAKPOINT_TARGET 1\n\n#incl"
},
{
"path": "src/ReplaySession.h",
"chars": 15485,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REPLAY_SESSION_H_\n#define R"
},
{
"path": "src/ReplayTask.cc",
"chars": 8374,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ReplayTask.h\"\n\n#include \"Aut"
},
{
"path": "src/ReplayTask.h",
"chars": 3361,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REPLAY_TASK_H_\n#define RR_R"
},
{
"path": "src/ReplayTimeline.cc",
"chars": 63837,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ReplayTimeline.h\"\n\n#include "
},
{
"path": "src/ReplayTimeline.h",
"chars": 20847,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REPLAY_TIMELINE_H_\n#define "
},
{
"path": "src/RerunCommand.cc",
"chars": 14946,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <sys/time.h>\n#include <sys/wa"
},
{
"path": "src/ReturnAddressList.cc",
"chars": 2839,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ReturnAddressList.h\"\n\n#inclu"
},
{
"path": "src/ReturnAddressList.h",
"chars": 1396,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_RETURNADDRESSLIST_H_\n#defin"
},
{
"path": "src/RmCommand.cc",
"chars": 3461,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <ftw.h>\n#include <stdio.h>\n\n#"
},
{
"path": "src/Scheduler.cc",
"chars": 43469,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n//#define MONITOR_UNSWITCHABLE_WAITS\n\n"
},
{
"path": "src/Scheduler.h",
"chars": 11011,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_REC_SCHED_H_\n#define RR_REC"
},
{
"path": "src/ScopedFd.h",
"chars": 1651,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_SCOPED_FD_H_\n#define RR_SCO"
},
{
"path": "src/SeccompFilterRewriter.cc",
"chars": 4777,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"SeccompFilterRewriter.h\"\n\n#i"
},
{
"path": "src/SeccompFilterRewriter.h",
"chars": 2806,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_SECCOMP_FILTER_REWRITER_H_\n"
},
{
"path": "src/Session.cc",
"chars": 28980,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"Session.h\"\n\n#include <linux/"
},
{
"path": "src/Session.h",
"chars": 17034,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_SESSION_H_\n#define RR_SESSI"
},
{
"path": "src/SourcesCommand.cc",
"chars": 50802,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <dirent.h>\n#include <spawn.h>"
},
{
"path": "src/StdioMonitor.cc",
"chars": 941,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"StdioMonitor.h\"\n\n#include \"F"
},
{
"path": "src/StdioMonitor.h",
"chars": 1655,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_STDIO_MONITOR_H_\n#define RR"
},
{
"path": "src/StringVectorToCharArray.h",
"chars": 651,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_STRING_VECTOR_TO_CHAR_ARRAY"
},
{
"path": "src/SysCpuMonitor.cc",
"chars": 1396,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <sstream>\n\n#include \"SysCpuMo"
},
{
"path": "src/SysCpuMonitor.h",
"chars": 782,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_SYS_CPU_MONITOR_H_\n#define "
},
{
"path": "src/TargetDescription.cc",
"chars": 3727,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"TargetDescription.h\"\n\n#inclu"
},
{
"path": "src/TargetDescription.h",
"chars": 614,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TARGET_DESCRIPTION_H_\n#defi"
},
{
"path": "src/Task.cc",
"chars": 166763,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include <errno.h>\n#include <limits.h>"
},
{
"path": "src/Task.h",
"chars": 50137,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TASK_H_\n#define RR_TASK_H_\n"
},
{
"path": "src/TaskishUid.h",
"chars": 2509,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TASKISH_UID_H_\n#define RR_T"
},
{
"path": "src/ThreadDb.cc",
"chars": 8342,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ThreadDb.h\"\n#include \"GdbSer"
},
{
"path": "src/ThreadDb.h",
"chars": 3532,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_THREADDB_H_\n#define RR_THRE"
},
{
"path": "src/ThreadGroup.cc",
"chars": 1595,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"ThreadGroup.h\"\n\n#include \"Re"
},
{
"path": "src/ThreadGroup.h",
"chars": 2340,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TASKGROUP_H_\n#define RR_TAS"
},
{
"path": "src/Ticks.h",
"chars": 228,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TICKS_H_\n#define RR_TICKS_H"
},
{
"path": "src/TraceField.cc",
"chars": 12590,
"preview": "#include <string>\n\n#include \"ReplayTask.h\"\n#include \"TraceField.h\"\n\nusing namespace std;\n\nnamespace rr {\n\nnamespace {\n\nv"
},
{
"path": "src/TraceField.h",
"chars": 1469,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TRACE_FIELD_H_\n#define RR_T"
},
{
"path": "src/TraceFrame.cc",
"chars": 1479,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"TraceFrame.h\"\n\n#include <int"
},
{
"path": "src/TraceFrame.h",
"chars": 2291,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TRACE_FRAME_H_\n#define RR_T"
},
{
"path": "src/TraceInfoCommand.cc",
"chars": 5367,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"DumpCommand.h\"\n\n#include <in"
},
{
"path": "src/TraceStream.cc",
"chars": 61514,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef _GNU_SOURCE\n// For utsname::do"
},
{
"path": "src/TraceStream.h",
"chars": 18881,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TRACE_STREAM_H_\n#define RR_"
},
{
"path": "src/TraceTaskEvent.h",
"chars": 3802,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TRACE_TASK_EVENT_H_\n#define"
},
{
"path": "src/TraceeAttentionSet.cc",
"chars": 2258,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"TraceeAttentionSet.h\"\n\n#incl"
},
{
"path": "src/TraceeAttentionSet.h",
"chars": 1034,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_TRACEE_ATTENTION_SET_H_\n#de"
},
{
"path": "src/VirtualPerfCounterMonitor.cc",
"chars": 5064,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"VirtualPerfCounterMonitor.h\""
},
{
"path": "src/VirtualPerfCounterMonitor.h",
"chars": 1928,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_VIRTUAL_PERF_COUNTER_MONITO"
},
{
"path": "src/WaitManager.cc",
"chars": 6942,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"WaitManager.h\"\n\n#include <er"
},
{
"path": "src/WaitManager.h",
"chars": 3390,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#ifndef RR_WAIT_MANAGER_H_\n#define RR_"
},
{
"path": "src/WaitStatus.cc",
"chars": 5669,
"preview": "/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */\n\n#include \"WaitStatus.h\"\n\n#include <sys"
}
]
// ... and 1409 more files (download for full content)
About this extraction
This page contains the full source code of the rr-debugger/rr GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1609 files (6.5 MB), approximately 1.8M tokens, and a symbol index with 4505 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.