Giter Club home page Giter Club logo

rrapper's Introduction

rrapper

1.0 Overview

This repository contains several scripts that work in complement with the modified rr, as part of the CrashSimulator project. It comprises of several important components that make work together to ensure successful record-replay and injection.

2.0 Requirements

  • 32-bit Linux-based Operating System using a โ‰ฅ 3.11.x kernel. (64-bit support is coming)
$ uname --kernel-release
4.15.0-23-generic
  • Disable ASLR
$ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

and set

$ echo kernel.randomize_va_space = 0 | sudo tee /etc/sysctl.d/01-disable-aslr.conf
  • Disable ptrace
$ echo kernel.yama.ptrace_scope = 0 | sudo tee /etc/sysctl.d/10-ptrace.conf
  • Allow access to kernel perf events
$ echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid


  • Hardware Performance Counters
For VMWare Fusion:
Virtual Machine Menu -> Settings -> Processors and Memory -> Advanced Options
-> tick "Enable Code Profiling Applications in this Virtual Machine"

Other Setups:
You must configure your system or virtualization setup to allow access to hardware performance counters.
KVM allows this for Linux Hosts
Virtual Box DOES NOT support virtualized performance counters.

Note that some of these settings can be reverted upon system restart.

  • An installed and working copy of our modified version of rr located here. Note that you must install the spin-off branch from this repository NOT the master branch.

Very Important Note: You must pull and use the spin-off branch from the repository containing our modified version of rr. The master branch tracks the unmodified version of rr provided by mozilla/rr

Other dependencies that may need to be installed using your Linux distribution's package manager:

  • Python 2.7.x
  • libpython2-dev
  • zlib

3.0 Installation

Automated Installation (with Docker)

We use Docker in order to deploy the entire CrashSimulator codebase into an isolated container. The --cap-add=SYS_PTRACE and --security-opt seccomp=unconfined flags are required to allow the usage of the ptrace, perf_event_open, and process_vm_writev system calls by rr within the container.

$ docker build -t crashsimulator .
$ docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it crashsimulator

This starts an interactive session within the Ubuntu image in the container with all the necessary components installed.

Automated Installation (with Vagrant)

As an alternative, Vagrant can provide virtualization and isolation through libvirt while also automating the build process. This is good for macOS users, who want to bootstrap and deploy CrashSimulator as soon as possible.

$ vagrant plugin install vagrant-libvirt
$ vagrant up --provider=libvirt
$ vagrant ssh

Manual Installation

After cloning this repository a few dependencies must be put in place:

First, initialize a virtualenv:

$ pip install virtualenv
$ virtualenv crashsim
$ source crashsim/bin/activate

Install CrashSimulator's dependencies

$ python setup.py install
$ pip install -r requirements.txt

Ensuring Your Installation Works

There are a few actions you can take to ensure you have installed the tool correctly.

First, run rrinit to check your environment. This will ensure the options mentioned at the top of this file have been configured correctly.

Second, run nosetests to run the unit tests that ship with rrapper.

4.0 Usage

This interface is under heavy development. Actual output may differ from below Basic Usage:

crashsim <testname> --command="<command or executable>" --mutator="<mutator constructor>"

e.g.

crashsim testmyapp --command="myapp -h -t -c100" --mutator="UnusualFiletypeMutator('S_IFCHR')"

Expected output:

UnusualFiletypeMutator for event 140() completed without deltas
UnusualFiletypeMutator for event 146() completed without deltas
UnusualFiletypeMutator for event 151() completed without deltas
ReplayDeltaError open system call is not expected from trace (expected write)

The first three lines indicate the application did not recognize that we changed the file being examined at the specific event from a regular file (S_IFREG) to a character device (S_IFCHR).

The 4th line indicates the application recognized that the file being examined was different than expecteed and diverted off the previous recording we took. For more information see the anomaly specific documentaton in the anomalies folder.

4.1 Tips for Configuration

When complete the test (stored within ~/.crashsim/mytest/ will have a config.ini. This file can be modified for more advanced testing. Updated configs can be used via rreplay <test name> The comments in the below code snippet describe required elements.

# Top level section specifies global stuff. Right now, the only element in use
# defines the directory containing the rr recording to be used.
[rr_recording]
rr_dir = test/flask-1/
# Each subsequent section describes an rr event during which we want to spin off
# processes and attach an injector.  Each element below is required to tie all
# these pieces together correctly.
[request_handling_process]
# The rr event during which to perform spin off and injection
event = 16154
# The pid amongst the group spun off to which we want to attach the injector.
# This is the pid of the process as recoreded by rr.  The actual pid the spun
# off processes gets will differ.  Mapping between these two is handled
# automatically by rrapper.py
pid = 14350
# The file that contains the strace segment that describes application behavior
# AFTER it has been spun off
trace_file = test/flask_request_snip.strace
# Defines the line that the injector should start with when it takes over for rr
# and begins its work
trace_start = 0
# Defines the last line that the injector should be concerned with.  Once this
# strace line has been handled by the injector, the injector considers its work
# done and the processes associated with this injection are killed cleaned up.
trace_end = 13

4.2 Checkers and Mutators

Mutators

Mutators are also implemented as a python class that implements a specific set of methods. The mutator operates on the text content of the configured strace segment.

init(self, <additional parameters>

The mutator's init method is used to supply values needed during the mutating process. Values for the additional parameters are supplied through the config.ini file or on the command line via the --mutator switch.

identify_lines(self, syscalls)

This function receives syscalls, an iterator, which yeilds posix-omni-parser syscall objects for the entire recording. Syscalls should be consumed using a for i in syscalls: pattern to examine each syscall as it is yeilded. This function should identify which syscall object indexes are valid opportunities during which the mutators anomaly can be simulated. This function should return a list of these indexes after it has examined all of the system call objects.

mutate_syscalls(self, syscalls)

This function receives syscalls, a list containing a subset of posix-omni-parser system call objects starting from an index identified by identify_lines() and ending some fixed number of system calls later (5 by default). This function should modify the contents of these objects in such a way that the mutator's anomaly is present. These modified system calls are used to influence an applications execution.

Checkers

CrashSimulator supports user supplied checkers implemented in Python. These checkers consist of Python classes that support a specific set of methods as described below. Checkers receive the sequence of system calls as they are handled by CrashSimulator. The checker is responsible for examining these system calls and making a decision as to whether the application took a specific action or not. Built in checkers use a form of state machine to make this decision but users are free to track state using whatever model they prefer.

init(self, <additional parameters>)

The checker class's init method can be used to configure things like file names, file descriptors, or parameter values to watch for. The values for these parameters are passed in when the checker is configured in a .ini file.

transition(self, syscall_object)

This method is called for every system call entrance and exit handled by CrashSimulator. The supplied syscall_object is a posix-omni-parser--like object meaning things like parameters and return values can be examined.

is_accepting(self)

This method must return a truth-y for false-y value that is used to CrashSimulator to report whether or not the checker accepted the handled system call sequence.

5.0 Old Interface

This repository comprises of several modules that work together sequentially in order to produce a trace, and perform record-replay execution.

5.1 rrinit

rrinit makes an effort to configure your virtual machine with many of the requirements mentioned above. There is a possibility it will will not be able to do so.

This command also checks for the presence of a supported microarchitecture, creates a path for storing tests and configurations, then generates the necessary system call definition file.

$ rrinit    # ... is all you need!

5.2 rrtest

rrtest generates and bootstraps CrashSimulator-compliant tests.

This application-level script enables the user to perform an initial recording in order to produce the rr recording and strace output required used for testing. The produced strace can then be compared against a ReplaySession debug log in order to determine corresponding events and trace lines, in order to put together a test configuration. Once complete, a user can utilize rreplay in order to execute another replay execution.

5.3 rreplay

rreplay replays the recorded test generated by rrtest by attaching the CrashSimulator injector and executing a test as described in the test's configuration file.

rrapper's People

Contributors

alyptik avatar aniket025 avatar junjieg avatar kallsyms avatar oskarwirga avatar pkmoore avatar yuxiangchai avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

rrapper's Issues

Socket not implemented

A trace_snip that includes a socket call fails with the following error:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 214, in handle_syscall
    util.validate_syscall(syscall_id, syscall_object)
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/syscallreplay/util.py", line 184, in validate_syscall
    compare_syscall = SYSCALLS[syscall_id][4:]
KeyError: -1
Failed to complete trace
Injector for event:rec_pid 760:18143 failed

syscall with no handler: fchownat

When trying to run the crash simulator for chown as a root user, without making any changes in the snip file, I got the error 'no handler: 298(fchownat)'. Here's the entire output:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 388, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 298(fchownat)
Failed to complete trace
Injector for event:rec_pid 307:14620 failed

Here are the contents of my snip file:

14620 fchownat(AT_FDCWD, "testfile2_chown.txt", 0, -1, 0) = 0

syscall with no handler: fstatat64

When trying to run the crash simulator for chown as a root user, without making any changes in the snip file, I got the error 'no handler: 300(fstatat64)'. Here's the entire output:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 388, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 300(fstatat64)
Failed to complete trace
Injector for event:rec_pid 305:14620 failed

Here are the contents of my snip file:

14620 fstatat64(AT_FDCWD, "testfile2_chown.txt", {st_dev=makedev(8, 1), st_ino=537062, st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8, st_size=12, st_atime=1542739942 /* 2018-11-20T10:52:22.290357798-0800 */, st_atime_nsec=290357798, st_mtime=1542739940 /* 2018-11-20T10:52:20.598373721-0800 */, st_mtime_nsec=598373721, st_ctime=1544552396 /* 2018-12-11T10:19:56.411597265-0800 */, st_ctime_nsec=411597265}, AT_SYMLINK_NOFOLLOW) = 0

Exception while testing `flask`

So I created a flask app by pip install flask-appbuilder && fabmanager create-app. Then within the folder you just created, running `rrtest create -n 'flask' -c 'python run.py' fails.

image

I feel as if this is a similar bug to pip and both programs open ports.

Error thrown after the trace has completed

The below error is thrown after the trace is completed when testing a few NodeJS libraries with driver scripts.

Completed the trace
Traceback (most recent call last):
  File "/home/sse/rrapper/crashsim/bin/rreplay", line 11, in <module>
    load_entry_point('rrapper==0.1.0', 'console_scripts', 'rreplay')()
  File "build/bdist.linux-i686/egg/src/rreplay.py", line 351, in main
  File "build/bdist.linux-i686/egg/src/rreplay.py", line 274, in wait_on_handles
TypeError: list indices must be integers, not str

One sample script used is:

const fs = require('fs-extra');
fs.writeJsonSync('/home/sse/testfile.json', { name: 'testwrite' });

Fail to complete trace with stat64 and write

When testing for the tool 'iostat' normal rreplay, i.e. without changing anything in any of the system calls, fails to execute and gives the 'openat(295) is not from trace:write' error. Here's the entire output:

DEBUG:root:No debug printer associated with syscall_id
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 214, in handle_syscall
    util.validate_syscall(syscall_id, syscall_object)
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/syscallreplay/util.py", line 221, in validate_syscall
    syscall_object.name))
ReplayDeltaError: System call validation failed: from execution: openat(295) is not from trace:write
Failed to complete trace
Injector for event:rec_pid 291:1961 failed

My trace file contains a stat64() call followed by a write() call. Here are the contents of my trace_snip.strace file:

1961  stat64("/etc/localtime", {st_dev=makedev(8, 1), st_ino=2230664, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=2845, st_atime=1543880662 /* 2018-12-03T15:44:22.068026113-0800 */, st_atime_nsec=68026113, st_mtime=1540806663 /* 2018-10-29T02:51:03-0700 */, st_mtime_nsec=0, st_ctime=1542057997 /* 2018-11-12T13:26:37.065961269-0800 */, st_ctime_nsec=65961269}) = 0
1961  write(1, "", 0)                   = 0

Syscall entry with no handler: fchmodat

Encountered an unhandled system call: fchmodat. Checked the latest version of master and I saw this system call is not implemented yet.

The error encountered was:

NotImplementedError: Encountered un-ignored syscall entry with no handler: 306(fchmodat)

mutator incorrectly handling stat64 syscall

mutator CONFIG:

(crashsim) alex@ubuntu:~/rrapper/test_which$ cat ~/.crashsim/which/config.ini
[rr_recording]
rr_dir = /home/alex/.crashsim/which/

[request_handling_process]
event = 218
pid = 8435
trace_file = /home/alex/.crashsim/which/trace_snip.strace
trace_start = 0
trace_end = 5
mutator = UnusualFiletypeMutator("S_IFDIR")

TRACE_SNIP:

"~/.crashsim/which/trace_snip.strace" 5L, 569C                                                1,1           All
8435  stat64("/bin/ls", {st_dev=makedev(8, 1), st_ino=262228, st_mode=S_IFDIR|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=288, st_size=145144, st_atime=1542293672 /* 2018-11-15T06:54:32.231983444-0800 */, st_atime_nsec=231983444, st_mtime=1516268629 /* 2018-01-18T01:43:49-0800 */, st_mtime_nsec=0, st_ctime=1541552655 /* 2018-11-06T17:04:15.493711012-0800 */, st_ctime_nsec=493711012}) = 0
8435  geteuid()                         = 1000
8435  faccessat(AT_FDCWD, "/bin/ls", X_OK) = 0
8435  write(1, "/bin/ls\n", 8)          = 8
8435  exit_group(0

RREPLAY Traceback:

(crashsim) alex@ubuntu:~/rrapper/test_which$ rreplay which
Traceback (most recent call last):
  File "/home/alex/rrapper/crashsim/bin/inject", line 11, in <module>
    load_entry_point('rrapper==0.1.0', 'console_scripts', 'inject')()
  File "build/bdist.linux-i686/egg/src/inject.py", line 540, in main
  File "build/bdist.linux-i686/egg/src/mutator/UnusualFiletype.py", line 29, in mutate_trace
TypeError: list indices must be integers, not NoneType
Injector for event:rec_pid 218:8435 failed

File mentioned in error:

string_lines[line] = string_lines[line].replace('S_IFREG', self.filetype)

getuid32 not implemented

When setting up a test for perl rreplay failed with the following error:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 385, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 199(getuid32)
Failed to complete trace
Injector for event:rec_pid 268:13011 failed

The perl file I was testing was:

$variable = 5;
print "$variable\n";

rreplay fails when number of lines are less than the default value in "trace_snip.strace" file

When trying to run rreplay when the "trace_snip.strace" file contains than 5 lines (default length) the following errors occur:

Traceback (most recent call last):
  File "/home/alex/rrapper/crashsim/bin/inject", line 11, in <module>
    load_entry_point('rrapper==0.1.0', 'console_scripts', 'inject')()
  File "build/bdist.linux-i686/egg/src/inject.py", line 557, in main
IndexError: list index out of range
Injector for event:rec_pid 164:3963 failed

The fix for this was by using the "--sniplen" option when configuring the rrtest.

Exception while testing clang

Affected Rapper version

  • master
  • output_event_number

Clang Version

clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: i686-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/7.3.0
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7.3.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Selected GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/7.3.0
Candidate multilib: .;@m32
Selected multilib: .;@m32

Reproduction

  1. Create a test file called test.c with the following content. (The content probably shouldn't matter)
#include <stdio.h>

void main() {
    printf("asdf\n");
}
  1. Within the same directory, perform the following actions
rrtest create -n clang -c 'clang test.c' # change the project name if necessary
rrtest configure -l <ANY_LINE_NUMBER> -n clang
rreplay clang # this is where the error occurs
  1. See that the following exception occurred
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 214, in handle_syscall
    util.validate_syscall(syscall_id, syscall_object)
  File "$HOME/virtualenvs/rrapper/local/lib/python2.7/site-packages/syscallreplay/util.py", line 221, in validate_syscall
    syscall_object.name))
ReplayDeltaError: System call validation failed: from execution: write(4) is not from trace:fstat64
Failed to complete trace
Traceback (most recent call last):
  File "$HOME/virtualenvs/rrapper/bin/rreplay", line 11, in <module>
    load_entry_point('rrapper==0.1.0', 'console_scripts', 'rreplay')()
  File "build/bdist.linux-i686/egg/src/rreplay.py", line 351, in main
  File "build/bdist.linux-i686/egg/src/rreplay.py", line 274, in wait_on_handles
TypeError: list indices must be integers, not str

KeyError: 'mmap_backing_files'

While running rreplay on cal after running the command -

rrtest configure --name=cal_test --traceline=211 --sniplen=25

Got below error-

DEBUG:root:Injecting 4747
DEBUG:root:Attached 4747
DEBUG:root:Requesting stop at next system call entry using SIGCONT
DEBUG:root:Second sigcont 4747
DEBUG:root:Entering system call handling loop
DEBUG:root:Handling syscall
DEBUG:root:Entering time entry handler
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:Got successful time call
DEBUG:root:time: 1542671440
DEBUG:root:addr: 0
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 1542671440
DEBUG:root:Injecting return value 1542671440
DEBUG:root:Handling syscall
DEBUG:root:Entering ioctl handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:edx: bfffb6d8
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:pid: 4747
DEBUG:root:Addr: -1073760552
DEBUG:root:c_iflags: 4500
DEBUG:root:c_oflags: 5
DEBUG:root:c_cflags: bf
DEBUG:root:c_lflags: 8a3b
DEBUG:root:c_line: 0
DEBUG:root:len(cc): 19
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering ioctl handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:edx: bfffb708
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:pid: 4747
DEBUG:root:Addr: -1073760504
DEBUG:root:c_iflags: 4500
DEBUG:root:c_oflags: 5
DEBUG:root:c_cflags: bf
DEBUG:root:c_lflags: 8a3b
DEBUG:root:c_line: 0
DEBUG:root:len(cc): 19
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering ioctl handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:edx: bfffb708
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:pid: 4747
DEBUG:root:Addr: -1073760504
DEBUG:root:c_iflags: 4500
DEBUG:root:c_oflags: 5
DEBUG:root:c_cflags: bf
DEBUG:root:c_lflags: 8a3b
DEBUG:root:c_line: 0
DEBUG:root:len(cc): 19
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering ioctl handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:edx: bfffb678
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:pid: 4747
DEBUG:root:Addr: -1073760648
DEBUG:root:c_iflags: 4500
DEBUG:root:c_oflags: 5
DEBUG:root:c_cflags: bf
DEBUG:root:c_lflags: 8a3b
DEBUG:root:c_line: 0
DEBUG:root:len(cc): 19
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering ioctl handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:edx: bfffb744
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:ws_row: 46
DEBUG:root:ws_col: 180
DEBUG:root:ws_xpixel: 0
DEBUG:root:ws_ypixel: 0
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering openat entry handler
DEBUG:root:Filename from trace: /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
DEBUG:root:Filename from execution: /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 3
DEBUG:root:Injecting return value 3
DEBUG:root:Handling syscall
DEBUG:root:Entering fstat64 handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:ECX: bfffb6ac
DEBUG:root:Nooping the current system call in pid: 4747
DEBUG:root:Got successful stat-like call
DEBUG:root:st_dev1: 8
DEBUG:root:st_dev2: 1
DEBUG:root:st_ino: 1971939
DEBUG:root:Cleaning up st_mode
DEBUG:root:Found st_mode parts: ['S_IFREG', '0644']
DEBUG:root:Got part: S_IFREG
DEBUG:root:Interpreting part as S_<CONST>
DEBUG:root:Part value in base 10: 32768
DEBUG:root:Part value in base 8: 0100000
DEBUG:root:New value for tmp: 32768
DEBUG:root:Got part: 0644
DEBUG:root:Interpreting part as base 8 int
DEBUG:root:Part value in base 10: 420
DEBUG:root:Part value in base 8: 0644
DEBUG:root:New value for tmp: 33188
DEBUG:root:Final value for tmp: 33188
DEBUG:root:st_mode: 33188
DEBUG:root:st_nlink: 1
DEBUG:root:st_uid: 0
DEBUG:root:st_gid: 0
DEBUG:root:st_blksize: 4096
DEBUG:root:st_block: 56
DEBUG:root:st_size: 26374
DEBUG:root:st_atime: 1542644838
DEBUG:root:st_mtime: 1542644838
DEBUG:root:st_ctime: 1541552696
DEBUG:root:pid: 4747
DEBUG:root:addr: bfffb6ac
C: populate_stat64: child 4747
C: populate_stat64: addr 0xbfffb6ac
C: populate_stat64: s 0xbfffe6d0
C: populate_stat64: sizeof(s) 88
C: populate_stat64: st_mode 33188
REG: 1
REG2: 1
sizeof(st.dev): 8
s.st_dev: 2049
sizeof(s.st_rdev): 8
s.st_rdev: 0
sizeof(s.st_ino): 4
s.st_ino: 1971939
sizeof(s.st_mode): 4
s.st_mode: 33188
sizeof(s.st_nlink): 4
s.st_nlink: 1
sizeof(s.st_uid): 4
s.st_uid: 0
sizeof(s.st_gid): 4
s.st_gid: 0
sizeof(s.st_size): 8
s.st_size: 26374
sizeof(s.st_blksize): 4
s.st_blksize: 4096
sizeof(s.st_blocks): 8
s.st_blocks: 56
s.st_ctime: 2018/11/-0800u 17:v
s.st_mtime: 2018/11/-0800u 08:v
s.st_atime: 2018/11/-0800u 08:v
C: copy_buffer: number of writes: 85
C: copy_buffer: buffer data: 
01 08 00 00 00 00 00 00 00 00 00 00 E3 16 1E 00 A4 81 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 67 00 00 00 00 00 00 00 10 00 00 38 00 00 00 00 00 00 00 66 E4 F2 5B 00 00 00 00 66 E4 F2 5B 00 00 00 00 38 3A E2 5B 00 00 00 00 C: copy_buffer: buffer data(ASCII): 
๏ฟฝ           ๏ฟฝ ๏ฟฝ ๏ฟฝ  ๏ฟฝ ๏ฟฝ   ๏ฟฝ                        ๏ฟฝ g        ๏ฟฝ   8        f ๏ฟฝ ๏ฟฝ [     f ๏ฟฝ ๏ฟฝ [     8 : ๏ฟฝ [     
C: copy_buffer: poking (0xbfffe6d0)00000801 into 0xbfffb6ac
C: copy_buffer: poking (0xbfffe6d1)00000008 into 0xbfffb6ad
C: copy_buffer: poking (0xbfffe6d2)00000000 into 0xbfffb6ae
C: copy_buffer: poking (0xbfffe6d3)00000000 into 0xbfffb6af
C: copy_buffer: poking (0xbfffe6d4)00000000 into 0xbfffb6b0
C: copy_buffer: poking (0xbfffe6d5)00000000 into 0xbfffb6b1
C: copy_buffer: poking (0xbfffe6d6)00000000 into 0xbfffb6b2
C: copy_buffer: poking (0xbfffe6d7)00000000 into 0xbfffb6b3
C: copy_buffer: poking (0xbfffe6d8)00000000 into 0xbfffb6b4
C: copy_buffer: poking (0xbfffe6d9)E3000000 into 0xbfffb6b5
C: copy_buffer: poking (0xbfffe6da)16E30000 into 0xbfffb6b6
C: copy_buffer: poking (0xbfffe6db)1E16E300 into 0xbfffb6b7
C: copy_buffer: poking (0xbfffe6dc)001E16E3 into 0xbfffb6b8
C: copy_buffer: poking (0xbfffe6dd)A4001E16 into 0xbfffb6b9
C: copy_buffer: poking (0xbfffe6de)81A4001E into 0xbfffb6ba
C: copy_buffer: poking (0xbfffe6df)0081A400 into 0xbfffb6bb
C: copy_buffer: poking (0xbfffe6e0)000081A4 into 0xbfffb6bc
C: copy_buffer: poking (0xbfffe6e1)01000081 into 0xbfffb6bd
C: copy_buffer: poking (0xbfffe6e2)00010000 into 0xbfffb6be
C: copy_buffer: poking (0xbfffe6e3)00000100 into 0xbfffb6bf
C: copy_buffer: poking (0xbfffe6e4)00000001 into 0xbfffb6c0
C: copy_buffer: poking (0xbfffe6e5)00000000 into 0xbfffb6c1
C: copy_buffer: poking (0xbfffe6e6)00000000 into 0xbfffb6c2
C: copy_buffer: poking (0xbfffe6e7)00000000 into 0xbfffb6c3
C: copy_buffer: poking (0xbfffe6e8)00000000 into 0xbfffb6c4
C: copy_buffer: poking (0xbfffe6e9)00000000 into 0xbfffb6c5
C: copy_buffer: poking (0xbfffe6ea)00000000 into 0xbfffb6c6
C: copy_buffer: poking (0xbfffe6eb)00000000 into 0xbfffb6c7
C: copy_buffer: poking (0xbfffe6ec)00000000 into 0xbfffb6c8
C: copy_buffer: poking (0xbfffe6ed)00000000 into 0xbfffb6c9
C: copy_buffer: poking (0xbfffe6ee)00000000 into 0xbfffb6ca
C: copy_buffer: poking (0xbfffe6ef)00000000 into 0xbfffb6cb
C: copy_buffer: poking (0xbfffe6f0)00000000 into 0xbfffb6cc
C: copy_buffer: poking (0xbfffe6f1)00000000 into 0xbfffb6cd
C: copy_buffer: poking (0xbfffe6f2)00000000 into 0xbfffb6ce
C: copy_buffer: poking (0xbfffe6f3)00000000 into 0xbfffb6cf
C: copy_buffer: poking (0xbfffe6f4)00000000 into 0xbfffb6d0
C: copy_buffer: poking (0xbfffe6f5)00000000 into 0xbfffb6d1
C: copy_buffer: poking (0xbfffe6f6)00000000 into 0xbfffb6d2
C: copy_buffer: poking (0xbfffe6f7)00000000 into 0xbfffb6d3
C: copy_buffer: poking (0xbfffe6f8)00000000 into 0xbfffb6d4
C: copy_buffer: poking (0xbfffe6f9)06000000 into 0xbfffb6d5
C: copy_buffer: poking (0xbfffe6fa)67060000 into 0xbfffb6d6
C: copy_buffer: poking (0xbfffe6fb)00670600 into 0xbfffb6d7
C: copy_buffer: poking (0xbfffe6fc)00006706 into 0xbfffb6d8
C: copy_buffer: poking (0xbfffe6fd)00000067 into 0xbfffb6d9
C: copy_buffer: poking (0xbfffe6fe)00000000 into 0xbfffb6da
C: copy_buffer: poking (0xbfffe6ff)00000000 into 0xbfffb6db
C: copy_buffer: poking (0xbfffe700)00000000 into 0xbfffb6dc
C: copy_buffer: poking (0xbfffe701)00000000 into 0xbfffb6dd
C: copy_buffer: poking (0xbfffe702)10000000 into 0xbfffb6de
C: copy_buffer: poking (0xbfffe703)00100000 into 0xbfffb6df
C: copy_buffer: poking (0xbfffe704)00001000 into 0xbfffb6e0
C: copy_buffer: poking (0xbfffe705)38000010 into 0xbfffb6e1
C: copy_buffer: poking (0xbfffe706)00380000 into 0xbfffb6e2
C: copy_buffer: poking (0xbfffe707)00003800 into 0xbfffb6e3
C: copy_buffer: poking (0xbfffe708)00000038 into 0xbfffb6e4
C: copy_buffer: poking (0xbfffe709)00000000 into 0xbfffb6e5
C: copy_buffer: poking (0xbfffe70a)00000000 into 0xbfffb6e6
C: copy_buffer: poking (0xbfffe70b)00000000 into 0xbfffb6e7
C: copy_buffer: poking (0xbfffe70c)00000000 into 0xbfffb6e8
C: copy_buffer: poking (0xbfffe70d)66000000 into 0xbfffb6e9
C: copy_buffer: poking (0xbfffe70e)E4660000 into 0xbfffb6ea
C: copy_buffer: poking (0xbfffe70f)F2E46600 into 0xbfffb6eb
C: copy_buffer: poking (0xbfffe710)5BF2E466 into 0xbfffb6ec
C: copy_buffer: poking (0xbfffe711)005BF2E4 into 0xbfffb6ed
C: copy_buffer: poking (0xbfffe712)00005BF2 into 0xbfffb6ee
C: copy_buffer: poking (0xbfffe713)0000005B into 0xbfffb6ef
C: copy_buffer: poking (0xbfffe714)00000000 into 0xbfffb6f0
C: copy_buffer: poking (0xbfffe715)66000000 into 0xbfffb6f1
C: copy_buffer: poking (0xbfffe716)E4660000 into 0xbfffb6f2
C: copy_buffer: poking (0xbfffe717)F2E46600 into 0xbfffb6f3
C: copy_buffer: poking (0xbfffe718)5BF2E466 into 0xbfffb6f4
C: copy_buffer: poking (0xbfffe719)005BF2E4 into 0xbfffb6f5
C: copy_buffer: poking (0xbfffe71a)00005BF2 into 0xbfffb6f6
C: copy_buffer: poking (0xbfffe71b)0000005B into 0xbfffb6f7
C: copy_buffer: poking (0xbfffe71c)00000000 into 0xbfffb6f8
C: copy_buffer: poking (0xbfffe71d)38000000 into 0xbfffb6f9
C: copy_buffer: poking (0xbfffe71e)3A380000 into 0xbfffb6fa
C: copy_buffer: poking (0xbfffe71f)E23A3800 into 0xbfffb6fb
C: copy_buffer: poking (0xbfffe720)5BE23A38 into 0xbfffb6fc
C: copy_buffer: poking (0xbfffe721)005BE23A into 0xbfffb6fd
C: copy_buffer: poking (0xbfffe722)00005BE2 into 0xbfffb6fe
C: copy_buffer: poking (0xbfffe723)0000005B into 0xbfffb6ff
C: copy_buffer: poking (0xbfffe724)00000000 into 0xbfffb700
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering mmap2 entry handler
DEBUG:root:Validating integer argument (trace position: 1 execution position: 1)
DEBUG:root:Argument from execution: 26374
DEBUG:root:Argument from trace: 26374
DEBUG:root:Validating integer argument (trace position: 4 execution position: 4)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Got non-anonymous mapping
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 386, in handle_syscall
    handlers[(syscall_id, entering)](syscall_id, syscall_object, pid)
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/syscallreplay/kernel_handlers.py", line 645, in mmap2_entry_handler
    print(cint.injected_state['config']['mmap_backing_files'])
KeyError: 'mmap_backing_files'
Failed to complete trace
Injector for event:rec_pid 243:3197 failed

ALso found same issue while trying to rreplay for wc

Add support for openat

Replays with the openat system call fail with the error: "NotImplementedError: Encountered un-ignored syscall entry with no handler: (openat)".

Add support for fadvise64_64

When running rreplay for wc, getting below error-

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 570, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 381, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 272(fadvise64_64)
Failed to complete trace
Injector for event:rec_pid 179:10340 failed

And these are the contents of trace_snip.strace file-

10340 stat64("testfile.txt", {st_dev=makedev(8, 1), st_ino=540923, st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8, st_size=293, st_atime=1542158737 /* 2018-11-13T17:25:37.753286103-0800 */, st_atime_nsec=753286103, st_mtime=1542158649 /* 2018-11-13T17:24:09.963231916-0800 */, st_mtime_nsec=963231916, st_ctime=1542158649 /* 2018-11-13T17:24:09.963231916-0800 */, st_ctime_nsec=963231916}) = 0
10340 openat(AT_FDCWD, "testfile.txt", O_RDONLY|O_LARGEFILE) = 3
10340 fadvise64_64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
10340 read(3, "djnfdkv dfovmsdf f vifovkv v  djs djshd  test fill is a generation sefk 0 fsd \nsds,d o f,lfmasd sd;f sdfssssssssssssssssss dfmsld fsdf\nflm f spfk sfs dfsf   fpwppepeppepeppeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeee\nfls, fsf\nwefn ef wwwwwwwwwwwwwwwwwwww wwwwwwwwwwww wwwwwwwwwww \n", 16384) = 293
10340 openat(AT_FDCWD, "/usr/lib/i386-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 4

rreplay fails when the "trace_snip.strace" file contains "exit_group(0"

When trying to run rreplay when the "trace_snip.strace" file contains "exit_group(0" the following errors occur:

Traceback (most recent call last):
  File "/home/alex/rrapper/crashsim/bin/inject", line 11, in <module>
    load_entry_point('rrapper==0.1.0', 'console_scripts', 'inject')()
  File "build/bdist.linux-i686/egg/src/inject.py", line 518, in main
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/posix_omni_parser/Trace.py", line 109, in __init__
    self.syscalls = self.parser.parse_trace()
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/posix_omni_parser/parsers/StraceParser.py", line 579, in parse_trace
    line_parts = self._parse_line(line, unfinished_syscalls)
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/posix_omni_parser/parsers/StraceParser.py", line 752, in _parse_line
    + line + "`")
Exception: Invalid format when parsing completed trace line `3963  exit_group(0`
Injector for event:rec_pid 164:3963 failed

The fix for this was to not include the line containing "exit_group(0" when configuring rrtest or by manually removing the "exit_group(0" line from the "trace_snip.strace" file

ReplayDeltaError: System call validation failed: from execution: epoll_pwait(319) is not from trace: fstat64

Seeing the below error when running rreplay for an app without any mutators configured. The app calls the readFile function of the fs-extra JS lib.

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    hande_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 214, in handle_syscall
    util.validate_syscall(syscall_id, syscall_object)
  File "/home/sse/rrapper/crashsim/local/lib/python2.7/site-packages/syscallreplay/util.py", line 221, in validate_syscall
    syscall_object.name))
ReplayDeltaError: System call validation failed: from execution: epoll_pwait(319) is not from trace: fstat64
Failed to complete trace

Future Time Mutator

Add support for a new mutator that manipulates time related calls in order to simulate the application running in the future. Shorter values (minutes or smaller) could be interesting to see what happens when the application encounters clock skew. Larger values (days, weeks, years) could exercise code that deals with things like certificates expiring etc.

Add support for 85(readlink)

Ran into it while testing HEAD (grabs the header from HTTP GET call to a website). Testing time anomaly on it

Add support for 307(faccessat)

For tool called "which". Attached the relevant traceback below:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 571, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 382, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 307(faccessat)
Failed to complete trace
Injector for event:rec_pid 218:5413 failed

TODOs

(migrated from #6)

Documentation:

  • Documentation for rrinit and rrtest in README.
  • Document cpuid.c code
  • Docstrings for inject.py and rreplay

Logging:

  • Add logging mechanisms for rrtest.
  • Unify logging mechanisms for inject and parse_syscall_definitions to use a basicConfig logger.

Features:

  • Support for rreplay or rrtest to list existing tests
  • Mechanism for rrtest to pack tests for distribution and portability
  • Mechanism for rrinit to copy over rr tests to CrashSim configuration file
  • More accurate trace line / ReplaySession comparison in rrtest
  • Enhance setup.py such that requirements.txt do not need to exist
  • Better cleanup routine for rreplay
  • Change trace_file to point to snippet file
  • Move all applicaton-generated files (i.e pickles, JSON, pipes, etc) into ~/.crashsim for internalization and portability (TODO: make posix-omni-parser compliant as well)
  • Verbose and "clean" outputs + error messages (hmmmm.... unified CrashSimulator exception class in consts.py???)
  • Fix runtime IndexError / EOF when choosing events near end of file

Testing:

  • Just testing in general, seeing whether there are any run-time errors.

Reproducing Clang Segmentation Fault?

So I spoke with you a while ago about a segfault I found in clang. I was able to reproduce it although I am unsure if it was the same bug. It also appears that this time it's clang's problem not LLVM, unlike last time.

Environment

image

Reproduction

  1. cat /dev/urandom > bigfile.c until there is little to no space left on device.
  2. strace -f -s 65535 -vvvvv -o clang.strace clang bigfile.c
  3. Optionally strace -f -s 65535 -vvvvv -o clang-plus-plus.strace clang++ bigfile.c

Question

I understand that this is a threading issue that fails rrapper but would you say this belongs to a bug found by crashsim?

Implement dup2

Got below error for split (traceline 173)

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 575, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 386, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 63(dup2)
Failed to complete trace
Injector for event:rec_pid 203:15101 failed

Better rr replay / strace alignment

I've been investigating this and it seems like if we filter out certain RR events we can get pretty close to a perfect match between rr events and strace output. For an example, check out the attached files. I've filtered system call exits, EXIT events, and INSTRUCTION_TRAP events.

rrout.txt
strace_out.txt

It seems like the easiest way to do this is to record the rr output, filter it, and look up the correct event number.

rreplay fails: Invalid Syntax

When performing the rreplay while testing the "echo hello" command.
Using the latest master version.

Traceback (most recent call last):
File "/home/alex/rrapper/crashsim/bin/inject", line 11, in
load_entry_point('rrapper==0.1.0', 'console_scripts', 'inject')()
File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/pkg_resources/init.py", line 487, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/pkg_resources/init.py", line 2728, in load_entry_point
return ep.load()
File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/pkg_resources/init.py", line 2346, in load
return self.resolve()
File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/pkg_resources/init.py", line 2352, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/rrapper-0.1.0-py2.7-linux-i686.egg/src/inject.py", line 317
(250), True): generic_handlers.syscall_return_success_handler,
^
SyntaxError: invalid syntax
Injector for event:rec_pid 179:1571 failed

Exception occurrence with PIP

PIP Version

pip 18.1 from $HOME/virtualenvs/rrapper/local/lib/python2.7/site-packages/pip (python 2.7)

Description

While testing pip, I encountered the following error during the creation phase. Maybe it's because accessing a remote resource with rrapper doesn't work?

[FATAL $HOME/rr_path/Task.cc:2164:read_bytes_helper() errno: EIO] 
 (task 18356 (rec:18356) at time 37090)
 -> Assertion `false' failed to hold. Should have read 18357 bytes from 0x865810, but only read -1
=== Start rr backtrace:
rr(_ZN2rr13dump_rr_stackEv+0x4a)[0x810920]
rr(_ZN2rr9GdbServer15emergency_debugEPNS_4TaskE+0x1db)[0x6a8887]
rr(+0x2d25a5)[0x6d25a5]
rr(_ZN2rr21EmergencyDebugOstreamD1Ev+0x64)[0x6d282a]
rr(_ZN2rr4Task17read_bytes_helperENS_10remote_ptrIvEEiPvPb+0x11c)[0x7dfb3e]
rr(umoven+0x8d)[0x70f9ea]
rr(printstr_ex+0x5e)[0x88418e]
rr(sys_read+0x2f)[0x88ec2f]
rr(syscall_exiting_trace+0xb7)[0x86a5b7]
rr(_ZN2rr13RecordSession21syscall_state_changedEPNS_10RecordTaskEPNS0_9StepStateE+0x158b)[0x70a533]
rr(_ZN2rr13RecordSession11record_stepEv+0x4b7)[0x70f49f]
rr(+0x3032ed)[0x7032ed]
rr(_ZN2rr13RecordCommand3runERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE+0x314)[0x703ec6]
rr(main+0x9fa)[0x827961]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0xb76d3e81]
rr(+0x21a9dc)[0x61a9dc]
=== End rr backtrace
Launch gdb with
  gdb '-l' '10000' '-ex' 'set sysroot /' '-ex' 'target extended-remote 127.0.0.1:18356' /bin/dash

Reproduction

  1. In a virtualenv, do rrtest create -n pip -c 'pip install -r req.txt'

access not implemented

While running rreplay on uptime after executing the reconfigure command
rrtest configure --name uptime_test2 --traceline 283 --sniplen=20 , got below error -

DEBUG:root:Injecting 7167
DEBUG:root:Attached 7167
DEBUG:root:Requesting stop at next system call entry using SIGCONT
DEBUG:root:Second sigcont 7167
DEBUG:root:Entering system call handling loop
DEBUG:root:Handling syscall
DEBUG:root:Entering time entry handler
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Got successful time call
DEBUG:root:time: 1542671204
DEBUG:root:addr: -1073745996
DEBUG:root:Populating the time_t
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 1542671204
DEBUG:root:Injecting return value 1542671204
DEBUG:root:Handling syscall
DEBUG:root:Entering openat entry handler
DEBUG:root:Filename from trace: /etc/localtime
DEBUG:root:Filename from execution: /etc/localtime
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 3
DEBUG:root:Injecting return value 3
DEBUG:root:Handling syscall
DEBUG:root:Entering fstat64 handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:ECX: bfffee48
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Got successful stat-like call
DEBUG:root:st_dev1: 8
DEBUG:root:st_dev2: 1
DEBUG:root:st_ino: 2230664
DEBUG:root:Cleaning up st_mode
DEBUG:root:Found st_mode parts: ['S_IFREG', '0644']
DEBUG:root:Got part: S_IFREG
DEBUG:root:Interpreting part as S_<CONST>
DEBUG:root:Part value in base 10: 32768
DEBUG:root:Part value in base 8: 0100000
DEBUG:root:New value for tmp: 32768
DEBUG:root:Got part: 0644
DEBUG:root:Interpreting part as base 8 int
DEBUG:root:Part value in base 10: 420
DEBUG:root:Part value in base 8: 0644
DEBUG:root:New value for tmp: 33188
DEBUG:root:Final value for tmp: 33188
DEBUG:root:st_mode: 33188
DEBUG:root:st_nlink: 1
DEBUG:root:st_uid: 0
DEBUG:root:st_gid: 0
DEBUG:root:st_blksize: 4096
DEBUG:root:st_block: 8
DEBUG:root:st_size: 2845
DEBUG:root:st_atime: 1542644838
DEBUG:root:st_mtime: 1542644838
DEBUG:root:st_ctime: 1542057997
DEBUG:root:pid: 7167
DEBUG:root:addr: bfffee48
C: populate_stat64: child 7167
C: populate_stat64: addr 0xbfffee48
C: populate_stat64: s 0xbfffe6d0
C: populate_stat64: sizeof(s) 88
C: populate_stat64: st_mode 33188
REG: 1
REG2: 1
sizeof(st.dev): 8
s.st_dev: 2049
sizeof(s.st_rdev): 8
s.st_rdev: 0
sizeof(s.st_ino): 4
s.st_ino: 2230664
sizeof(s.st_mode): 4
s.st_mode: 33188
sizeof(s.st_nlink): 4
s.st_nlink: 1
sizeof(s.st_uid): 4
s.st_uid: 0
sizeof(s.st_gid): 4
s.st_gid: 0
sizeof(s.st_size): 8
s.st_size: 2845
sizeof(s.st_blksize): 4
s.st_blksize: 4096
sizeof(s.st_blocks): 8
s.st_blocks: 8
s.st_ctime: 2018/11/-0800u 13:v
s.st_mtime: 2018/11/-0800u 08:v
s.st_atime: 2018/11/-0800u 08:v
C: copy_buffer: number of writes: 85
C: copy_buffer: buffer data: 
01 08 00 00 00 00 00 00 00 00 00 00 88 09 22 00 A4 81 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1D 0B 00 00 00 00 00 00 00 10 00 00 08 00 00 00 00 00 00 00 66 E4 F2 5B 00 00 00 00 66 E4 F2 5B 00 00 00 00 0D F0 E9 5B 00 00 00 00 C: copy_buffer: buffer data(ASCII): 
๏ฟฝ           ๏ฟฝ 	 "  ๏ฟฝ ๏ฟฝ   ๏ฟฝ                        ๏ฟฝ 
 ๏ฟฝ ๏ฟฝ [                                                       ๏ฟฝ          f ๏ฟฝ ๏ฟฝ [     f ๏ฟฝ ๏ฟฝ [     
C: copy_buffer: poking (0xbfffe6d0)00000801 into 0xbfffee48
C: copy_buffer: poking (0xbfffe6d1)00000008 into 0xbfffee49
C: copy_buffer: poking (0xbfffe6d2)00000000 into 0xbfffee4a
C: copy_buffer: poking (0xbfffe6d3)00000000 into 0xbfffee4b
C: copy_buffer: poking (0xbfffe6d4)00000000 into 0xbfffee4c
C: copy_buffer: poking (0xbfffe6d5)00000000 into 0xbfffee4d
C: copy_buffer: poking (0xbfffe6d6)00000000 into 0xbfffee4e
C: copy_buffer: poking (0xbfffe6d7)00000000 into 0xbfffee4f
C: copy_buffer: poking (0xbfffe6d8)00000000 into 0xbfffee50
C: copy_buffer: poking (0xbfffe6d9)88000000 into 0xbfffee51
C: copy_buffer: poking (0xbfffe6da)09880000 into 0xbfffee52
C: copy_buffer: poking (0xbfffe6db)22098800 into 0xbfffee53
C: copy_buffer: poking (0xbfffe6dc)00220988 into 0xbfffee54
C: copy_buffer: poking (0xbfffe6dd)A4002209 into 0xbfffee55
C: copy_buffer: poking (0xbfffe6de)81A40022 into 0xbfffee56
C: copy_buffer: poking (0xbfffe6df)0081A400 into 0xbfffee57
C: copy_buffer: poking (0xbfffe6e0)000081A4 into 0xbfffee58
C: copy_buffer: poking (0xbfffe6e1)01000081 into 0xbfffee59
C: copy_buffer: poking (0xbfffe6e2)00010000 into 0xbfffee5a
C: copy_buffer: poking (0xbfffe6e3)00000100 into 0xbfffee5b
C: copy_buffer: poking (0xbfffe6e4)00000001 into 0xbfffee5c
C: copy_buffer: poking (0xbfffe6e5)00000000 into 0xbfffee5d
C: copy_buffer: poking (0xbfffe6e6)00000000 into 0xbfffee5e
C: copy_buffer: poking (0xbfffe6e7)00000000 into 0xbfffee5f
C: copy_buffer: poking (0xbfffe6e8)00000000 into 0xbfffee60
C: copy_buffer: poking (0xbfffe6e9)00000000 into 0xbfffee61
C: copy_buffer: poking (0xbfffe6ea)00000000 into 0xbfffee62
C: copy_buffer: poking (0xbfffe6eb)00000000 into 0xbfffee63
C: copy_buffer: poking (0xbfffe6ec)00000000 into 0xbfffee64
C: copy_buffer: poking (0xbfffe6ed)00000000 into 0xbfffee65
C: copy_buffer: poking (0xbfffe6ee)00000000 into 0xbfffee66
C: copy_buffer: poking (0xbfffe6ef)00000000 into 0xbfffee67
C: copy_buffer: poking (0xbfffe6f0)00000000 into 0xbfffee68
C: copy_buffer: poking (0xbfffe6f1)00000000 into 0xbfffee69
C: copy_buffer: poking (0xbfffe6f2)00000000 into 0xbfffee6a
C: copy_buffer: poking (0xbfffe6f3)00000000 into 0xbfffee6b
C: copy_buffer: poking (0xbfffe6f4)00000000 into 0xbfffee6c
C: copy_buffer: poking (0xbfffe6f5)00000000 into 0xbfffee6d
C: copy_buffer: poking (0xbfffe6f6)00000000 into 0xbfffee6e
C: copy_buffer: poking (0xbfffe6f7)00000000 into 0xbfffee6f
C: copy_buffer: poking (0xbfffe6f8)00000000 into 0xbfffee70
C: copy_buffer: poking (0xbfffe6f9)1D000000 into 0xbfffee71
C: copy_buffer: poking (0xbfffe6fa)0B1D0000 into 0xbfffee72
C: copy_buffer: poking (0xbfffe6fb)000B1D00 into 0xbfffee73
C: copy_buffer: poking (0xbfffe6fc)00000B1D into 0xbfffee74
C: copy_buffer: poking (0xbfffe6fd)0000000B into 0xbfffee75
C: copy_buffer: poking (0xbfffe6fe)00000000 into 0xbfffee76
C: copy_buffer: poking (0xbfffe6ff)00000000 into 0xbfffee77
C: copy_buffer: poking (0xbfffe700)00000000 into 0xbfffee78
C: copy_buffer: poking (0xbfffe701)00000000 into 0xbfffee79
C: copy_buffer: poking (0xbfffe702)10000000 into 0xbfffee7a
C: copy_buffer: poking (0xbfffe703)00100000 into 0xbfffee7b
C: copy_buffer: poking (0xbfffe704)00001000 into 0xbfffee7c
C: copy_buffer: poking (0xbfffe705)08000010 into 0xbfffee7d
C: copy_buffer: poking (0xbfffe706)00080000 into 0xbfffee7e
C: copy_buffer: poking (0xbfffe707)00000800 into 0xbfffee7f
C: copy_buffer: poking (0xbfffe708)00000008 into 0xbfffee80
C: copy_buffer: poking (0xbfffe709)00000000 into 0xbfffee81
C: copy_buffer: poking (0xbfffe70a)00000000 into 0xbfffee82
C: copy_buffer: poking (0xbfffe70b)00000000 into 0xbfffee83
C: copy_buffer: poking (0xbfffe70c)00000000 into 0xbfffee84
C: copy_buffer: poking (0xbfffe70d)66000000 into 0xbfffee85
C: copy_buffer: poking (0xbfffe70e)E4660000 into 0xbfffee86
C: copy_buffer: poking (0xbfffe70f)F2E46600 into 0xbfffee87
C: copy_buffer: poking (0xbfffe710)5BF2E466 into 0xbfffee88
C: copy_buffer: poking (0xbfffe711)005BF2E4 into 0xbfffee89
C: copy_buffer: poking (0xbfffe712)00005BF2 into 0xbfffee8a
C: copy_buffer: poking (0xbfffe713)0000005B into 0xbfffee8b
C: copy_buffer: poking (0xbfffe714)00000000 into 0xbfffee8c
C: copy_buffer: poking (0xbfffe715)66000000 into 0xbfffee8d
C: copy_buffer: poking (0xbfffe716)E4660000 into 0xbfffee8e
C: copy_buffer: poking (0xbfffe717)F2E46600 into 0xbfffee8f
C: copy_buffer: poking (0xbfffe718)5BF2E466 into 0xbfffee90
C: copy_buffer: poking (0xbfffe719)005BF2E4 into 0xbfffee91
C: copy_buffer: poking (0xbfffe71a)00005BF2 into 0xbfffee92
C: copy_buffer: poking (0xbfffe71b)0000005B into 0xbfffee93
C: copy_buffer: poking (0xbfffe71c)00000000 into 0xbfffee94
C: copy_buffer: poking (0xbfffe71d)0D000000 into 0xbfffee95
C: copy_buffer: poking (0xbfffe71e)F00D0000 into 0xbfffee96
C: copy_buffer: poking (0xbfffe71f)E9F00D00 into 0xbfffee97
C: copy_buffer: poking (0xbfffe720)5BE9F00D into 0xbfffee98
C: copy_buffer: poking (0xbfffe721)005BE9F0 into 0xbfffee99
C: copy_buffer: poking (0xbfffe722)00005BE9 into 0xbfffee9a
C: copy_buffer: poking (0xbfffe723)0000005B into 0xbfffee9b
C: copy_buffer: poking (0xbfffe724)00000000 into 0xbfffee9c
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering fstat64 handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:ECX: bfffecdc
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Got successful stat-like call
DEBUG:root:st_dev1: 8
DEBUG:root:st_dev2: 1
DEBUG:root:st_ino: 2230664
DEBUG:root:Cleaning up st_mode
DEBUG:root:Found st_mode parts: ['S_IFREG', '0644']
DEBUG:root:Got part: S_IFREG
DEBUG:root:Interpreting part as S_<CONST>
DEBUG:root:Part value in base 10: 32768
DEBUG:root:Part value in base 8: 0100000
DEBUG:root:New value for tmp: 32768
DEBUG:root:Got part: 0644
DEBUG:root:Interpreting part as base 8 int
DEBUG:root:Part value in base 10: 420
DEBUG:root:Part value in base 8: 0644
DEBUG:root:New value for tmp: 33188
DEBUG:root:Final value for tmp: 33188
DEBUG:root:st_mode: 33188
DEBUG:root:st_nlink: 1
DEBUG:root:st_uid: 0
DEBUG:root:st_gid: 0
DEBUG:root:st_blksize: 4096
DEBUG:root:st_block: 8
DEBUG:root:st_size: 2845
DEBUG:root:st_atime: 1542644838
DEBUG:root:st_mtime: 1542644838
DEBUG:root:st_ctime: 1542057997
DEBUG:root:pid: 7167
DEBUG:root:addr: bfffecdc
C: populate_stat64: child 7167
C: populate_stat64: addr 0xbfffecdc
C: populate_stat64: s 0xbfffe6d0
C: populate_stat64: sizeof(s) 88
C: populate_stat64: st_mode 33188
REG: 1
REG2: 1
sizeof(st.dev): 8
s.st_dev: 2049
sizeof(s.st_rdev): 8
s.st_rdev: 0
sizeof(s.st_ino): 4
s.st_ino: 2230664
sizeof(s.st_mode): 4
s.st_mode: 33188
sizeof(s.st_nlink): 4
s.st_nlink: 1
sizeof(s.st_uid): 4
s.st_uid: 0
sizeof(s.st_gid): 4
s.st_gid: 0
sizeof(s.st_size): 8
s.st_size: 2845
sizeof(s.st_blksize): 4
s.st_blksize: 4096
sizeof(s.st_blocks): 8
s.st_blocks: 8
s.st_ctime: 2018/11/-0800u 13:v
s.st_mtime: 2018/11/-0800u 08:v
s.st_atime: 2018/11/-0800u 08:v
C: copy_buffer: number of writes: 85
C: copy_buffer: buffer data: 
01 08 00 00 00 00 00 00 00 00 00 00 88 09 22 00 A4 81 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1D 0B 00 00 00 00 00 00 00 10 00 00 08 00 00 00 00 00 00 00 66 E4 F2 5B 00 00 00 00 66 E4 F2 5B 00 00 00 00 0D F0 E9 5B 00 00 00 00 C: copy_buffer: buffer data(ASCII): 
๏ฟฝ           ๏ฟฝ 	 "  ๏ฟฝ ๏ฟฝ   ๏ฟฝ                        ๏ฟฝ 
 ๏ฟฝ ๏ฟฝ [                                                       ๏ฟฝ          f ๏ฟฝ ๏ฟฝ [     f ๏ฟฝ ๏ฟฝ [     
C: copy_buffer: poking (0xbfffe6d0)00000801 into 0xbfffecdc
C: copy_buffer: poking (0xbfffe6d1)00000008 into 0xbfffecdd
C: copy_buffer: poking (0xbfffe6d2)00000000 into 0xbfffecde
C: copy_buffer: poking (0xbfffe6d3)00000000 into 0xbfffecdf
C: copy_buffer: poking (0xbfffe6d4)00000000 into 0xbfffece0
C: copy_buffer: poking (0xbfffe6d5)00000000 into 0xbfffece1
C: copy_buffer: poking (0xbfffe6d6)00000000 into 0xbfffece2
C: copy_buffer: poking (0xbfffe6d7)00000000 into 0xbfffece3
C: copy_buffer: poking (0xbfffe6d8)00000000 into 0xbfffece4
C: copy_buffer: poking (0xbfffe6d9)88000000 into 0xbfffece5
C: copy_buffer: poking (0xbfffe6da)09880000 into 0xbfffece6
C: copy_buffer: poking (0xbfffe6db)22098800 into 0xbfffece7
C: copy_buffer: poking (0xbfffe6dc)00220988 into 0xbfffece8
C: copy_buffer: poking (0xbfffe6dd)A4002209 into 0xbfffece9
C: copy_buffer: poking (0xbfffe6de)81A40022 into 0xbfffecea
C: copy_buffer: poking (0xbfffe6df)0081A400 into 0xbfffeceb
C: copy_buffer: poking (0xbfffe6e0)000081A4 into 0xbfffecec
C: copy_buffer: poking (0xbfffe6e1)01000081 into 0xbfffeced
C: copy_buffer: poking (0xbfffe6e2)00010000 into 0xbfffecee
C: copy_buffer: poking (0xbfffe6e3)00000100 into 0xbfffecef
C: copy_buffer: poking (0xbfffe6e4)00000001 into 0xbfffecf0
C: copy_buffer: poking (0xbfffe6e5)00000000 into 0xbfffecf1
C: copy_buffer: poking (0xbfffe6e6)00000000 into 0xbfffecf2
C: copy_buffer: poking (0xbfffe6e7)00000000 into 0xbfffecf3
C: copy_buffer: poking (0xbfffe6e8)00000000 into 0xbfffecf4
C: copy_buffer: poking (0xbfffe6e9)00000000 into 0xbfffecf5
C: copy_buffer: poking (0xbfffe6ea)00000000 into 0xbfffecf6
C: copy_buffer: poking (0xbfffe6eb)00000000 into 0xbfffecf7
C: copy_buffer: poking (0xbfffe6ec)00000000 into 0xbfffecf8
C: copy_buffer: poking (0xbfffe6ed)00000000 into 0xbfffecf9
C: copy_buffer: poking (0xbfffe6ee)00000000 into 0xbfffecfa
C: copy_buffer: poking (0xbfffe6ef)00000000 into 0xbfffecfb
C: copy_buffer: poking (0xbfffe6f0)00000000 into 0xbfffecfc
C: copy_buffer: poking (0xbfffe6f1)00000000 into 0xbfffecfd
C: copy_buffer: poking (0xbfffe6f2)00000000 into 0xbfffecfe
C: copy_buffer: poking (0xbfffe6f3)00000000 into 0xbfffecff
C: copy_buffer: poking (0xbfffe6f4)00000000 into 0xbfffed00
C: copy_buffer: poking (0xbfffe6f5)00000000 into 0xbfffed01
C: copy_buffer: poking (0xbfffe6f6)00000000 into 0xbfffed02
C: copy_buffer: poking (0xbfffe6f7)00000000 into 0xbfffed03
C: copy_buffer: poking (0xbfffe6f8)00000000 into 0xbfffed04
C: copy_buffer: poking (0xbfffe6f9)1D000000 into 0xbfffed05
C: copy_buffer: poking (0xbfffe6fa)0B1D0000 into 0xbfffed06
C: copy_buffer: poking (0xbfffe6fb)000B1D00 into 0xbfffed07
C: copy_buffer: poking (0xbfffe6fc)00000B1D into 0xbfffed08
C: copy_buffer: poking (0xbfffe6fd)0000000B into 0xbfffed09
C: copy_buffer: poking (0xbfffe6fe)00000000 into 0xbfffed0a
C: copy_buffer: poking (0xbfffe6ff)00000000 into 0xbfffed0b
C: copy_buffer: poking (0xbfffe700)00000000 into 0xbfffed0c
C: copy_buffer: poking (0xbfffe701)00000000 into 0xbfffed0d
C: copy_buffer: poking (0xbfffe702)10000000 into 0xbfffed0e
C: copy_buffer: poking (0xbfffe703)00100000 into 0xbfffed0f
C: copy_buffer: poking (0xbfffe704)00001000 into 0xbfffed10
C: copy_buffer: poking (0xbfffe705)08000010 into 0xbfffed11
C: copy_buffer: poking (0xbfffe706)00080000 into 0xbfffed12
C: copy_buffer: poking (0xbfffe707)00000800 into 0xbfffed13
C: copy_buffer: poking (0xbfffe708)00000008 into 0xbfffed14
C: copy_buffer: poking (0xbfffe709)00000000 into 0xbfffed15
C: copy_buffer: poking (0xbfffe70a)00000000 into 0xbfffed16
C: copy_buffer: poking (0xbfffe70b)00000000 into 0xbfffed17
C: copy_buffer: poking (0xbfffe70c)00000000 into 0xbfffed18
C: copy_buffer: poking (0xbfffe70d)66000000 into 0xbfffed19
C: copy_buffer: poking (0xbfffe70e)E4660000 into 0xbfffed1a
C: copy_buffer: poking (0xbfffe70f)F2E46600 into 0xbfffed1b
C: copy_buffer: poking (0xbfffe710)5BF2E466 into 0xbfffed1c
C: copy_buffer: poking (0xbfffe711)005BF2E4 into 0xbfffed1d
C: copy_buffer: poking (0xbfffe712)00005BF2 into 0xbfffed1e
C: copy_buffer: poking (0xbfffe713)0000005B into 0xbfffed1f
C: copy_buffer: poking (0xbfffe714)00000000 into 0xbfffed20
C: copy_buffer: poking (0xbfffe715)66000000 into 0xbfffed21
C: copy_buffer: poking (0xbfffe716)E4660000 into 0xbfffed22
C: copy_buffer: poking (0xbfffe717)F2E46600 into 0xbfffed23
C: copy_buffer: poking (0xbfffe718)5BF2E466 into 0xbfffed24
C: copy_buffer: poking (0xbfffe719)005BF2E4 into 0xbfffed25
C: copy_buffer: poking (0xbfffe71a)00005BF2 into 0xbfffed26
C: copy_buffer: poking (0xbfffe71b)0000005B into 0xbfffed27
C: copy_buffer: poking (0xbfffe71c)00000000 into 0xbfffed28
C: copy_buffer: poking (0xbfffe71d)0D000000 into 0xbfffed29
C: copy_buffer: poking (0xbfffe71e)F00D0000 into 0xbfffed2a
C: copy_buffer: poking (0xbfffe71f)E9F00D00 into 0xbfffed2b
C: copy_buffer: poking (0xbfffe720)5BE9F00D into 0xbfffed2c
C: copy_buffer: poking (0xbfffe721)005BE9F0 into 0xbfffed2d
C: copy_buffer: poking (0xbfffe722)00005BE9 into 0xbfffed2e
C: copy_buffer: poking (0xbfffe723)0000005B into 0xbfffed2f
C: copy_buffer: poking (0xbfffe724)00000000 into 0xbfffed30
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:read entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 4096
DEBUG:root:Argument from trace: 4096
DEBUG:root:File descriptor from execution: 3
DEBUG:root:File descriptor from trace: 3
DEBUG:root:Cleaned up value 2845
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 4096
DEBUG:root:Argument from trace: 4096
DEBUG:root:Address: 404c80
DEBUG:root:Buffer size from execution: 4096
DEBUG:root:Buffer size from trace: 4096
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 2845
DEBUG:root:Injecting return value 2845
DEBUG:root:Handling syscall
DEBUG:root:Entering llseek entry handler
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:result: 2821
DEBUG:root:result_addr: -1073746736
DEBUG:root:Got successful llseek call
DEBUG:root:Populating result
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:read entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 4096
DEBUG:root:Argument from trace: 4096
DEBUG:root:File descriptor from execution: 3
DEBUG:root:File descriptor from trace: 3
DEBUG:root:Cleaned up value 24
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 4096
DEBUG:root:Argument from trace: 4096
DEBUG:root:Address: 404c80
DEBUG:root:Buffer size from execution: 4096
DEBUG:root:Buffer size from trace: 4096
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 24
DEBUG:root:Injecting return value 24
DEBUG:root:Handling syscall
DEBUG:root:Entering close entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:Entering openat entry handler
DEBUG:root:Filename from trace: /proc/uptime
DEBUG:root:Filename from execution: /proc/uptime
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 3
DEBUG:root:Injecting return value 3
DEBUG:root:Handling syscall
DEBUG:root:Entering llseek entry handler
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:result: 0
DEBUG:root:result_addr: -1073746176
DEBUG:root:Got successful llseek call
DEBUG:root:Populating result
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:read entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 8191
DEBUG:root:Argument from trace: 8191
DEBUG:root:File descriptor from execution: 3
DEBUG:root:File descriptor from trace: 3
DEBUG:root:Cleaned up value 18
DEBUG:root:Nooping the current system call in pid: 7167
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 3
DEBUG:root:Argument from trace: 3
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 8191
DEBUG:root:Argument from trace: 8191
DEBUG:root:Address: b7f8f860
DEBUG:root:Buffer size from execution: 8191
DEBUG:root:Buffer size from trace: 8191
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 18
DEBUG:root:Injecting return value 18
DEBUG:root:Handling syscall
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 385, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 33(access)
Failed to complete trace
Injector for event:rec_pid 315:7001 failed

Munmap not implemented

Hi,
rrapper raises an error when trying to analyze the 'echo' command.
To re-create the error. Follow these steps...

rrtest create --name echotest --command "../../../../../../../bin/echo echo_this_text"
rrtest configure --name echotest --traceline 74
Enter event number: 179
rreplay echotest

DEBUG:root:Injecting 1915
DEBUG:root:Attached 1915
DEBUG:root:Requesting stop at next system call entry using SIGCONT
DEBUG:root:Second sigcont 1915
DEBUG:root:Entering system call handling loop
DEBUG:root:Handling syscall
DEBUG:root:Entering fstat64 handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:ECX: bfffee6c
DEBUG:root:Nooping the current system call in pid: 1915
DEBUG:root:Got successful stat-like call
DEBUG:root:st_dev1: 0
DEBUG:root:st_dev2: 21
DEBUG:root:We have a st_rdev argument
DEBUG:root:st_rdev1: 136
DEBUG:root:st_rdev2: 0
DEBUG:root:st_ino: 3
DEBUG:root:Cleaning up st_mode
DEBUG:root:Found st_mode parts: ['S_IFCHR', '0620']
DEBUG:root:Got part: S_IFCHR
DEBUG:root:Interpreting part as S_<CONST>
DEBUG:root:Part value in base 10: 8192
DEBUG:root:Part value in base 8: 020000
DEBUG:root:New value for tmp: 8192
DEBUG:root:Got part: 0620
DEBUG:root:Interpreting part as base 8 int
DEBUG:root:Part value in base 10: 400
DEBUG:root:Part value in base 8: 0620
DEBUG:root:New value for tmp: 8592
DEBUG:root:Final value for tmp: 8592
DEBUG:root:st_mode: 8592
DEBUG:root:st_nlink: 1
DEBUG:root:st_uid: 1000
DEBUG:root:st_gid: 5
DEBUG:root:st_blksize: 1024
DEBUG:root:st_block: 0
DEBUG:root:optional st_size not present
DEBUG:root:st_atime: 1542329928
DEBUG:root:st_mtime: 1542329928
DEBUG:root:st_ctime: 1542316277
DEBUG:root:pid: 1915
DEBUG:root:addr: bfffee6c
C: populate_stat64: child 1915
C: populate_stat64: addr 0xbfffee6c
C: populate_stat64: s 0xbfffe6c0
C: populate_stat64: sizeof(s) 88
C: populate_stat64: st_mode 8592
REG: 0
REG2: 1
sizeof(st.dev): 8
s.st_dev: 21
sizeof(s.st_rdev): 8
s.st_rdev: 34816
sizeof(s.st_ino): 4
s.st_ino: 3
sizeof(s.st_mode): 4
s.st_mode: 8592
sizeof(s.st_nlink): 4
s.st_nlink: 1
sizeof(s.st_uid): 4
s.st_uid: 1000
sizeof(s.st_gid): 4
s.st_gid: 5
sizeof(s.st_size): 8
s.st_size: 0
sizeof(s.st_blksize): 4
s.st_blksize: 1024
sizeof(s.st_blocks): 8
s.st_blocks: 0
s.st_ctime: 2018/11/-0800u 13:v
s.st_mtime: 2018/11/-0800u 16:v
s.st_atime: 2018/11/-0800u 16:v
C: copy_buffer: number of writes: 85
C: copy_buffer: buffer data: 
15 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 90 21 00 00 01 00 00 00 E8 03 00 00 05 00 00 00 00 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 48 16 EE 5B 00 00 00 00 48 16 EE 5B 00 00 00 00 F5 E0 ED 5B 00 00 00 00 C: copy_buffer: buffer data(ASCII): 
๏ฟฝ            ๏ฟฝ    ๏ฟฝ !   ๏ฟฝ    ๏ฟฝ ๏ฟฝ        ๏ฟฝ                    ๏ฟฝ           H ๏ฟฝ ๏ฟฝ [     H ๏ฟฝ ๏ฟฝ [     ๏ฟฝ ๏ฟฝ ๏ฟฝ [     
C: copy_buffer: poking (0xbfffe6c0)00000015 into 0xbfffee6c
C: copy_buffer: poking (0xbfffe6c1)00000000 into 0xbfffee6d
C: copy_buffer: poking (0xbfffe6c2)00000000 into 0xbfffee6e
C: copy_buffer: poking (0xbfffe6c3)00000000 into 0xbfffee6f
C: copy_buffer: poking (0xbfffe6c4)00000000 into 0xbfffee70
C: copy_buffer: poking (0xbfffe6c5)00000000 into 0xbfffee71
C: copy_buffer: poking (0xbfffe6c6)00000000 into 0xbfffee72
C: copy_buffer: poking (0xbfffe6c7)00000000 into 0xbfffee73
C: copy_buffer: poking (0xbfffe6c8)00000000 into 0xbfffee74
C: copy_buffer: poking (0xbfffe6c9)03000000 into 0xbfffee75
C: copy_buffer: poking (0xbfffe6ca)00030000 into 0xbfffee76
C: copy_buffer: poking (0xbfffe6cb)00000300 into 0xbfffee77
C: copy_buffer: poking (0xbfffe6cc)00000003 into 0xbfffee78
C: copy_buffer: poking (0xbfffe6cd)90000000 into 0xbfffee79
C: copy_buffer: poking (0xbfffe6ce)21900000 into 0xbfffee7a
C: copy_buffer: poking (0xbfffe6cf)00219000 into 0xbfffee7b
C: copy_buffer: poking (0xbfffe6d0)00002190 into 0xbfffee7c
C: copy_buffer: poking (0xbfffe6d1)01000021 into 0xbfffee7d
C: copy_buffer: poking (0xbfffe6d2)00010000 into 0xbfffee7e
C: copy_buffer: poking (0xbfffe6d3)00000100 into 0xbfffee7f
C: copy_buffer: poking (0xbfffe6d4)00000001 into 0xbfffee80
C: copy_buffer: poking (0xbfffe6d5)E8000000 into 0xbfffee81
C: copy_buffer: poking (0xbfffe6d6)03E80000 into 0xbfffee82
C: copy_buffer: poking (0xbfffe6d7)0003E800 into 0xbfffee83
C: copy_buffer: poking (0xbfffe6d8)000003E8 into 0xbfffee84
C: copy_buffer: poking (0xbfffe6d9)05000003 into 0xbfffee85
C: copy_buffer: poking (0xbfffe6da)00050000 into 0xbfffee86
C: copy_buffer: poking (0xbfffe6db)00000500 into 0xbfffee87
C: copy_buffer: poking (0xbfffe6dc)00000005 into 0xbfffee88
C: copy_buffer: poking (0xbfffe6dd)00000000 into 0xbfffee89
C: copy_buffer: poking (0xbfffe6de)88000000 into 0xbfffee8a
C: copy_buffer: poking (0xbfffe6df)00880000 into 0xbfffee8b
C: copy_buffer: poking (0xbfffe6e0)00008800 into 0xbfffee8c
C: copy_buffer: poking (0xbfffe6e1)00000088 into 0xbfffee8d
C: copy_buffer: poking (0xbfffe6e2)00000000 into 0xbfffee8e
C: copy_buffer: poking (0xbfffe6e3)00000000 into 0xbfffee8f
C: copy_buffer: poking (0xbfffe6e4)00000000 into 0xbfffee90
C: copy_buffer: poking (0xbfffe6e5)00000000 into 0xbfffee91
C: copy_buffer: poking (0xbfffe6e6)00000000 into 0xbfffee92
C: copy_buffer: poking (0xbfffe6e7)00000000 into 0xbfffee93
C: copy_buffer: poking (0xbfffe6e8)00000000 into 0xbfffee94
C: copy_buffer: poking (0xbfffe6e9)00000000 into 0xbfffee95
C: copy_buffer: poking (0xbfffe6ea)00000000 into 0xbfffee96
C: copy_buffer: poking (0xbfffe6eb)00000000 into 0xbfffee97
C: copy_buffer: poking (0xbfffe6ec)00000000 into 0xbfffee98
C: copy_buffer: poking (0xbfffe6ed)00000000 into 0xbfffee99
C: copy_buffer: poking (0xbfffe6ee)00000000 into 0xbfffee9a
C: copy_buffer: poking (0xbfffe6ef)00000000 into 0xbfffee9b
C: copy_buffer: poking (0xbfffe6f0)00000000 into 0xbfffee9c
C: copy_buffer: poking (0xbfffe6f1)00000000 into 0xbfffee9d
C: copy_buffer: poking (0xbfffe6f2)04000000 into 0xbfffee9e
C: copy_buffer: poking (0xbfffe6f3)00040000 into 0xbfffee9f
C: copy_buffer: poking (0xbfffe6f4)00000400 into 0xbfffeea0
C: copy_buffer: poking (0xbfffe6f5)00000004 into 0xbfffeea1
C: copy_buffer: poking (0xbfffe6f6)00000000 into 0xbfffeea2
C: copy_buffer: poking (0xbfffe6f7)00000000 into 0xbfffeea3
C: copy_buffer: poking (0xbfffe6f8)00000000 into 0xbfffeea4
C: copy_buffer: poking (0xbfffe6f9)00000000 into 0xbfffeea5
C: copy_buffer: poking (0xbfffe6fa)00000000 into 0xbfffeea6
C: copy_buffer: poking (0xbfffe6fb)00000000 into 0xbfffeea7
C: copy_buffer: poking (0xbfffe6fc)00000000 into 0xbfffeea8
C: copy_buffer: poking (0xbfffe6fd)48000000 into 0xbfffeea9
C: copy_buffer: poking (0xbfffe6fe)16480000 into 0xbfffeeaa
C: copy_buffer: poking (0xbfffe6ff)EE164800 into 0xbfffeeab
C: copy_buffer: poking (0xbfffe700)5BEE1648 into 0xbfffeeac
C: copy_buffer: poking (0xbfffe701)005BEE16 into 0xbfffeead
C: copy_buffer: poking (0xbfffe702)00005BEE into 0xbfffeeae
C: copy_buffer: poking (0xbfffe703)0000005B into 0xbfffeeaf
C: copy_buffer: poking (0xbfffe704)00000000 into 0xbfffeeb0
C: copy_buffer: poking (0xbfffe705)48000000 into 0xbfffeeb1
C: copy_buffer: poking (0xbfffe706)16480000 into 0xbfffeeb2
C: copy_buffer: poking (0xbfffe707)EE164800 into 0xbfffeeb3
C: copy_buffer: poking (0xbfffe708)5BEE1648 into 0xbfffeeb4
C: copy_buffer: poking (0xbfffe709)005BEE16 into 0xbfffeeb5
C: copy_buffer: poking (0xbfffe70a)00005BEE into 0xbfffeeb6
C: copy_buffer: poking (0xbfffe70b)0000005B into 0xbfffeeb7
C: copy_buffer: poking (0xbfffe70c)00000000 into 0xbfffeeb8
C: copy_buffer: poking (0xbfffe70d)F5000000 into 0xbfffeeb9
C: copy_buffer: poking (0xbfffe70e)E0F50000 into 0xbfffeeba
C: copy_buffer: poking (0xbfffe70f)EDE0F500 into 0xbfffeebb
C: copy_buffer: poking (0xbfffe710)5BEDE0F5 into 0xbfffeebc
C: copy_buffer: poking (0xbfffe711)005BEDE0 into 0xbfffeebd
C: copy_buffer: poking (0xbfffe712)00005BED into 0xbfffeebe
C: copy_buffer: poking (0xbfffe713)0000005B into 0xbfffeebf
C: copy_buffer: poking (0xbfffe714)00000000 into 0xbfffeec0
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:write entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:Validating integer argument (trace position: 2 execution position: 2)
DEBUG:root:Argument from execution: 15
DEBUG:root:Argument from trace: 15
####   Output   ####
echo_this_text
#### End Output ####
DEBUG:root:Nooping the current system call in pid: 1915
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 15
DEBUG:root:Injecting return value 15
DEBUG:root:Handling syscall
DEBUG:root:Entering close entry handler
DEBUG:root:Validating integer argument (trace position: 0 execution position: 0)
DEBUG:root:Argument from execution: 1
DEBUG:root:Argument from trace: 1
DEBUG:root:Nooping the current system call in pid: 1915
DEBUG:root:Applying return conditions
DEBUG:root:Cleaned up value 0
DEBUG:root:Injecting return value 0
DEBUG:root:Handling syscall
DEBUG:root:brk entry handler
DEBUG:root:Validating address argument (trace position: 0 execution position: 0)
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 386, in handle_syscall
    handlers[(syscall_id, entering)](syscall_id, syscall_object, pid)
  File "/home/alex/rrapper/crashsim/local/lib/python2.7/site-packages/syscallreplay/kernel_handlers.py", line 65, in brk_entry_handler
    raise NotImplementedError('munmap required here! Not implemented!')
NotImplementedError: munmap required here! Not implemented!
Failed to complete trace
Injector for event:rec_pid 179:1908 failed

implement syscall 202(getegid32)

trace line 189 for sort command

DEBUG:root:Handling syscall
Traceback (most recent call last):
File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
syscallreplay.entering_syscall)
File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
handle_syscall(pid, syscall_id, syscall_object, entering)
File "build/bdist.linux-i686/egg/src/inject.py", line 385, in handle_syscall
syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 202(getegid32)
Failed to complete trace
Injector for event:rec_pid 221:19809 failed

Failed to complete trace with cal

Issue

When testing the application cal, rrapper fails to complete its trace with no mutation (meant to do test for reverse time issue).

Commands used

rrtest create -n cal -c 'cal'
rrtest configure -t 175 -n cal
rreplay cal # where it fails

Log

trace_snip.strace:

17939 read(3, "\nPST8PDT,M3.2.0,M11.1.0\n", 4096) = 24
17939 close(3)                          = 0
17939 time(NULL)                        = 1543345393 (2018-11-27T11:03:13-0800)
17939 stat64("/etc/localtime", {st_dev=makedev(8, 1), st_ino=2230664, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=2845, st_atime=1543341818 /* 2018-11-27T10:03:38.055919346-0800 */, st_atime_nsec=55919346, st_mtime=1540806663 /* 2018-10-29T02:51:03-0700 */, st_mtime_nsec=0, st_ctime=1541792855 /* 2018-11-09T11:47:35.302949364-0800 */, st_ctime_nsec=302949364}) = 0
17939 ioctl(1, TCGETS, {c_iflags=0x4500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0

Exception message:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 574, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 214, in handle_syscall
    util.validate_syscall(syscall_id, syscall_object)
  File "$HOME/virtualenvs/local/lib/python2.7/site-packages/syscallreplay/util.py", line 221, in validate_syscall
    syscall_object.name))
ReplayDeltaError: System call validation failed: from execution: openat(295) is not from trace:ioctl
Failed to complete trace
Injector for event:rec_pid 202:17939 failed

syscall with no handler: sethostname()

When trying to run the crash simulator for hostname as a root user, without making any changes in the snip file, I got the error 'no handler: 74(sethostname)'. Here's the entire output:

DEBUG:root:Handling syscall
Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 388, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 74(sethostname)
Failed to complete trace
Injector for event:rec_pid 179:3259 failed

Here is the unmodified content of my snip file:

3259  sethostname("NewHostname", 11)    = 0

Syscall entry with no handler: clock_gettime

Encountered an unhandled system call: clock_gettime. Checked the latest version of master and I saw this system call is not implemented yet.

The error encountered was:

NotImplementedError: Encountered un-ignored syscall entry with no handler: 265(clock_gettime)

injection fails for gettimeofday

When replaying time I got the following error:

    seconds = int(syscall_object.args[0].value.strip('{}'))
ValueError: invalid literal for int() with base 10: 'tv_sec=1542315437'
Failed to complete trace
Injector for event:rec_pid 156:27064 failed

The call it was injecting is here:

gettimeofday({tv_sec=1542315437, tv_usec=734041}, NULL) = 0

Error response when no fstat call in trace, but FileTypeMutator is configured

If a test is configured with a UnusualFileTypeMutator, but there is no fstat system call in the selected event in the trace_snip.strace file, Crash Simulator returns the below error:

".../src/inject.py", line 540, in main
".../src/mutator/UnusualFileType.py", line 24, in mutate_trace
TypeError: list indices must be integers, not NoneType


".../src/rreplay.py", line 351, in main
".../src/rreplay.py", line 274, in wait_on_handles
TypeError: list indices must be integers, not str

Unknown SysCall [fadvise64_64]

When trying to run rreplay on a CAT command. Syscall not known error occurs. Trace output below:

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/src/inject.py", line 570, in main
    syscallreplay.entering_syscall)
  File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
    handle_syscall(pid, syscall_id, syscall_object, entering)
  File "build/bdist.linux-i686/egg/src/inject.py", line 381, in handle_syscall
    syscall_object.name))
NotImplementedError: Encountered un-ignored syscall entry with no handler: 272(fadvise64_64)
Failed to complete trace
Injector for event:rec_pid 181:3612 failed

Ubuntu Version Running


(crashsim) alex@ubuntu:~/rrapper$ uname -a
Linux ubuntu 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:15:38 UTC 2018 i686 i686 i686 GNU/Linux

strace_out.strace

3612  prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, {len=19, filter=[BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x70000008, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x7000000b, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x7000000e, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x70000011, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x70000014, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_LD|BPF_W|BPF_ABS, 0x8), BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, 0x70000017, 0, 0x1), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_TRACE|0xffff)]}) = 0
3612  write(-1, "\n\0\0\0", 4)          = -1 EBADF (Bad file descriptor)
3612  geteuid32()                       = 1000
3612  geteuid32()                       = 1000
3612  geteuid32()                       = 1000
3612  geteuid32()                       = 1000
3612  execve("../../../../../../../../../../../bin/cat", ["../../../../../../../../../../../bin/cat", "cat_this_text.txt"], ["LESSOPEN=| /usr/bin/lesspipe %s", "USER=alex", "LANGUAGE=en_US", "XDG_SEAT=seat0", "SSH_AGENT_PID=2633", "XDG_SESSION_TYPE=x11", "SHLVL=1", "OLDPWD=/home/alex", "HOME=/home/alex", "DESKTOP_SESSION=xubuntu", "XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0", "PS1=(crashsim) \\[\\e]0;\\u@\\h: \\w\\a\\]${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ ", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus", "COLORTERM=truecolor", "GLADE_MODULE_PATH=:", "QT_QPA_PLATFORMTHEME=gtk2", "LOGNAME=alex", "WINDOWID=60817411", "_=/home/alex/rrapper/crashsim/bin/rrtest", "GTK_OVERLAY_SCROLLING=0", "XDG_SESSION_ID=c2", "CLUTTER_BACKEND=x11", "TERM=xterm-256color", "PATH=/home/alex/rrapper/crashsim/bin:/home/alex/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", "GDM_LANG=en_US", "GLADE_PIXMAP_PATH=:", "SESSION_MANAGER=local/ubuntu:@/tmp/.ICE-unix/2651,unix/ubuntu:/tmp/.ICE-unix/2651", "XDG_MENU_PREFIX=xfce-", "XDG_RUNTIME_DIR=/run/user/1000", "XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0", "DISPLAY=:0.0", "LANG=en_US.UTF-8", "XDG_CURRENT_DESKTOP=XFCE", "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:", "XDG_SESSION_DESKTOP=xubuntu", "XAUTHORITY=/home/alex/.Xauthority", "SSH_AUTH_SOCK=/run/user/1000/keyring/ssh", "GLADE_CATALOG_PATH=:", "XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/alex", "SHELL=/bin/bash", "QT_ACCESSIBILITY=1", "GDMSESSION=xubuntu", "LESSCLOSE=/usr/bin/lesspipe %s %s", "GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1", "XDG_VTNR=7", "VIRTUAL_ENV=/home/alex/rrapper/crashsim", "PWD=/home/alex/rrapper", "XDG_DATA_DIRS=/usr/share/xubuntu:/usr/share/xfce4:/usr/local/share:/usr/share:/var/lib/snapd/desktop:/usr/share", "XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg", "VTE_VERSION=5201", "LD_PRELOAD=/usr/local/bin/../lib/rr/librrpreload.so:::", "RUNNING_UNDER_RR=1", "LIBGL_ALWAYS_SOFTWARE=1", "SSS_NSS_USE_MEMCACHE=NO", "MOZ_GDB_SLEEP=0", "OPENSSL_ia32cap=~4611686018427387904:~0"]) = 1744830464
3612  brk(NULL)                         = 0x40b000
3612  uname({sysname="Linux", nodename="ubuntu", release="4.15.0-20-generic", version="#21-Ubuntu SMP Tue Apr 24 06:15:38 UTC 2018", machine="i686", domainname="(none)"}) = 0
3612  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
3612  mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd4000
3612  openat(AT_FDCWD, "/usr/local/bin/../lib/rr/librrpreload.so", O_RDONLY|O_CLOEXEC) = 3
3612  read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \6\0\0004\0\0\0\230%\7\0\0\0\0\0004\0 \0\7\0(\0\36\0\35\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\204Y\2\0\204Y\2\0\5\0\0\0\0\20\0\0\1\0\0\0$_\2\0$o\2\0$o\2\0\0\1\0\0\20c\0\0\6\0\0\0\0\20\0\0\2\0\0\0(_\2\0(o\2\0(o\2\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\24\1\0\0\24\1\0\0\24\1\0\0$\0\0\0$\0\0\0\4\0\0\0\4\0\0\0P\345tdtF\2\0tF\2\0tF\2\0\224\1\0\0\224\1\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\20\0\0\0R\345td$_\2\0$o\2\0$o\2\0\334\0\0\0\334\0\0\0\4\0\0\0\1\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\376\255\317\254v\7d\2406av\330\277V\341\10m*\316l\3\0\0\0\7\0\0\0\4\0\0\0\7\0\0\0x\0\0\0\220\0\10\f\f\r\224\21 \24\0\25\7\0\0\0\16\0\0\0\21\0\0\0\0042\363zBE\325\354jN\302\272T\4\227\23\2729\2\304Xa_\351\273\343\222|Ry\301\246\330qX\34]\205%\6&\"\25O\302\5!\177\354\222s\360\2061\21\366V\271\272Ny=\215\210\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\203\0\0\0\0\0\0\0\0\0\0\0\22\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\22\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\22\0\0\08\0\0\0\0\0\0\0\0\0\0\0\22\0\0\0\321\0\0\0\0\0\0\0\0\0\0\0", 512) = 512
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=2240925, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=920, st_size=469576, st_atime=1542155966 /* 2018-11-13T16:39:26.679693750-0800 */, st_atime_nsec=679693750, st_mtime=1541554900 /* 2018-11-06T17:41:40-0800 */, st_mtime_nsec=0, st_ctime=1541554904 /* 2018-11-06T17:41:44.886424783-0800 */, st_ctime_nsec=886424783}) = 0
3612  mmap2(NULL, 184884, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7fa6000
3612  mmap2(0xb7fcc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0xb7fcc000
3612  mmap2(0xb7fce000, 21044, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fce000
3612  close(3)                          = 0
3612  access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
3612  openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=1574534, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=160, st_size=81420, st_atime=1542150437 /* 2018-11-13T15:07:17.584621716-0800 */, st_atime_nsec=584621716, st_mtime=1542150437 /* 2018-11-13T15:07:17.568621790-0800 */, st_mtime_nsec=568621790, st_ctime=1542150437 /* 2018-11-13T15:07:17.568621790-0800 */, st_ctime_nsec=568621790}) = 0
3612  mmap2(NULL, 81420, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f92000
3612  close(3)                          = 0
3612  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
3612  openat(AT_FDCWD, "/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
3612  read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\220\1\0004\0\0\0H\232\35\0\0\0\0\0004\0 \0\n\0(\0F\0E\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0@\1\0\0@\1\0\0\4\0\0\0\4\0\0\0\3\0\0\0Lx\30\0Lx\30\0Lx\30\0\23\0\0\0\23\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20D\35\0\20D\35\0\5\0\0\0\0\20\0\0\1\0\0\0\\Q\35\0\\a\35\0\\a\35\0\230-\0\0\300X\0\0\6\0\0\0\0\20\0\0\2\0\0\0lm\35\0l}\35\0l}\35\0\360\0\0\0\360\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0t\1\0\0t\1\0\0t\1\0\0D\0\0\0D\0\0\0\4\0\0\0\4\0\0\0\7\0\0\0\\Q\35\0\\a\35\0\\a\35\0\10\0\0\0T\0\0\0\4\0\0\0\4\0\0\0P\345td`x\30\0`x\30\0`x\30\0\\e\0\0\\e\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\20\0\0\0R\345td\\Q\35\0\\a\35\0\\a\35\0\244\36\0\0\244\36\0\0\4\0\0\0\1\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\16\30\216\305\360\234\30zz\222xMK\227\252%\33\25\251<\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\2\0\0\0\0\0\0\0\363\3\0\0\f\0\0\0\0\2\0\0\16\0\0\0\2400\20D\200 \2\1\214\3\346\220AE\210\0\204\0\10\0G\204Pp\300\200\1\f\212\f@\0010\0\10@2\10\252\0\210H6m\240\368\0&\204\200\216\4\10B$", 512) = 512
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=395100, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=3800, st_size=1942840, st_atime=1542150040 /* 2018-11-13T15:00:40.663915822-0800 */, st_atime_nsec=663915822, st_mtime=1523909660 /* 2018-04-16T13:14:20-0700 */, st_mtime_nsec=0, st_ctime=1541552663 /* 2018-11-06T17:04:23.965659560-0800 */, st_ctime_nsec=965659560}) = 0
3612  mmap2(NULL, 1948188, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7db6000
3612  mprotect(0xb7f8b000, 4096, PROT_NONE) = 0
3612  mmap2(0xb7f8c000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d5000) = 0xb7f8c000
3612  mmap2(0xb7f8f000, 10780, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8f000
3612  close(3)                          = 0
3612  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
3612  openat(AT_FDCWD, "/lib/i386-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
3612  read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\n\0\0004\0\0\0\\1\0\0\0\0\0\0004\0 \0\7\0(\0\35\0\34\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\210%\0\0\210%\0\0\5\0\0\0\0\20\0\0\1\0\0\0\270.\0\0\270>\0\0\270>\0\0\214\1\0\0\274\1\0\0\6\0\0\0\0\20\0\0\2\0\0\0\310.\0\0\310>\0\0\310>\0\0\10\1\0\0\10\1\0\0\6\0\0\0\4\0\0\0\4\0\0\0\24\1\0\0\24\1\0\0\24\1\0\0D\0\0\0D\0\0\0\4\0\0\0\4\0\0\0P\345td<\33\0\0<\33\0\0<\33\0\0\344\0\0\0\344\0\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\20\0\0\0R\345td\270.\0\0\270>\0\0\270>\0\0H\1\0\0H\1\0\0\4\0\0\0\1\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\252\225c\256\240\267\213\376\r\22\305\236\236\256\234I|\36\342|\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\2\0\0\0\0\0\0\0\26\0\0\0\34\0\0\0\4\0\0\0\7\0\0\0\230\0\21\0\0B\0\0\202\0`\10\223(\10\336\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\0\0\0\0\36\0\0\0\37\0\0\0\0\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0$\0\0\0%\0\0\0\0\0\0\0\0\0\0\0&\0\0\0(\0\0\0)\0\0\0\0\0\0\0+\0\0\0\221!\374\370\225\263_\31\5\350\7\371\6\2\4\371\7\2\4\371\301S\200\30`\242\222\6\257\304M\17\325=l\366\327=l\366\352\26\251\30\371\31sB", 512) = 512
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=395123, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=32, st_size=13796, st_atime=1542150040 /* 2018-11-13T15:00:40.663915822-0800 */, st_atime_nsec=663915822, st_mtime=1523909660 /* 2018-04-16T13:14:20-0700 */, st_mtime_nsec=0, st_ctime=1541552663 /* 2018-11-06T17:04:23.985659465-0800 */, st_ctime_nsec=985659465}) = 0
3612  mmap2(NULL, 16500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7db1000
3612  mmap2(0xb7db4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb7db4000
3612  close(3)                          = 0
3612  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
3612  openat(AT_FDCWD, "/lib/i386-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
3612  read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300P\0\0004\0\0\0\244'\2\0\0\0\0\0004\0 \0\t\0(\0(\0'\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0 \1\0\0 \1\0\0\4\0\0\0\4\0\0\0\3\0\0\0<P\1\0<P\1\0<P\1\0\23\0\0\0\23\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\255\1\0\24\255\1\0\5\0\0\0\0\20\0\0\1\0\0\0\260\255\1\0\260\275\1\0\260\275\1\0\324\3\0\0\350$\0\0\6\0\0\0\0\20\0\0\2\0\0\0\224\256\1\0\224\276\1\0\224\276\1\0\30\1\0\0\30\1\0\0\6\0\0\0\4\0\0\0\4\0\0\0T\1\0\0T\1\0\0T\1\0\0D\0\0\0D\0\0\0\4\0\0\0\4\0\0\0P\345tdPP\1\0PP\1\0PP\1\0\254\t\0\0\254\t\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\20\0\0\0R\345td\260\255\1\0\260\275\1\0\260\275\1\0P\2\0\0P\2\0\0\4\0\0\0\1\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\317T\26\21\r\21\312B0\255p\350\3360u\3504V\272\\\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\2\0\0\0\0\0\0\0\4\2\0\0]\0\0\0@\0\0\0\v\0\0\0\31!\2\221\1\n\20\"@H \331\3\0I4\200\0\0@\0 \200\200\221Q`\300@\22\213\0020D\0\0\20\1\0\n\0\1\r\0\204\n\360\1X\260\r\240\200\10 $\204\20B\242)m\10G\234V\20\0\224 \204$H\0X(\1\222\34\301B\240\220\22\10\f \2", 512) = 512
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=395230, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=280, st_size=142820, st_atime=1542150040 /* 2018-11-13T15:00:40.663915822-0800 */, st_atime_nsec=663915822, st_mtime=1523909660 /* 2018-04-16T13:14:20-0700 */, st_mtime_nsec=0, st_ctime=1541552664 /* 2018-11-06T17:04:24.261658244-0800 */, st_ctime_nsec=261658244}) = 0
3612  mmap2(NULL, 123544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d92000
3612  mmap2(0xb7dad000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xb7dad000
3612  mmap2(0xb7daf000, 4760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7daf000
3612  close(3)                          = 0
3612  mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d90000
3612  set_thread_area({entry_number=-1, base_addr=0xb7d90700, limit=0x0fffff, seg_32bit=1, contents=0, read_exec_only=0, limit_in_pages=1, seg_not_present=0, useable=1}) = 0 (entry_number=6)
3612  mprotect(0xb7f8c000, 8192, PROT_READ) = 0
3612  mprotect(0xb7dad000, 4096, PROT_READ) = 0
3612  mprotect(0xb7db4000, 4096, PROT_READ) = 0
3612  mprotect(0xb7fcc000, 4096, PROT_READ) = 0
3612  mprotect(0x409000, 4096, PROT_READ) = 0
3612  mprotect(0xb7ffe000, 4096, PROT_READ) = 0
3612  munmap(0xb7f92000, 81420)         = 0
3612  set_tid_address(0xb7d90768)       = 3612
3612  set_robust_list(0xb7d90770, 12)   = 0
3612  rt_sigaction(SIGRTMIN, {sa_handler=0xb7d96af0, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
3612  rt_sigaction(SIGRT_1, {sa_handler=0xb7d96b80, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
3612  rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
3612  ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
3612  uname({sysname="Linux", nodename="ubuntu", release="4.15.0-20-generic", version="#21-Ubuntu SMP Tue Apr 24 06:15:38 UTC 2018", machine="i686", domainname="(none)"}) = 0
3612  syscall_0x1ba(0xbfffefd0, 0, 0, 0, 0, 0) = -1 (errno 38)
3612  brk(NULL)                         = 0x40b000
3612  brk(0x42c000)                     = 0x42c000
3612  brk(0x42d000)                     = 0x42d000
3612  openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=1974614, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=21016, st_size=10756928, st_atime=1542150040 /* 2018-11-13T15:00:40.683915822-0800 */, st_atime_nsec=683915822, st_mtime=1541552821 /* 2018-11-06T17:07:01.688229335-0800 */, st_mtime_nsec=688229335, st_ctime=1541552821 /* 2018-11-06T17:07:01.688229335-0800 */, st_ctime_nsec=688229335}) = 0
3612  mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7b90000
3612  mmap2(NULL, 1249280, PROT_READ, MAP_PRIVATE, 3, 0x29f000) = 0xb7a5f000
3612  mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE, 3, 0x990000) = 0xb7fa4000
3612  close(3)                          = 0
3612  fstat64(1, {st_dev=makedev(0, 21), st_ino=3, st_mode=S_IFCHR|0620, st_nlink=1, st_uid=1000, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(136, 0), st_atime=1542156589 /* 2018-11-13T16:49:49.755457204-0800 */, st_atime_nsec=755457204, st_mtime=1542156589 /* 2018-11-13T16:49:49.755457204-0800 */, st_mtime_nsec=755457204, st_ctime=1542155590 /* 2018-11-13T16:33:10.755457204-0800 */, st_ctime_nsec=755457204}) = 0
3612  openat(AT_FDCWD, "cat_this_text.txt", O_RDONLY|O_LARGEFILE) = 3
3612  fstat64(3, {st_dev=makedev(8, 1), st_ino=541025, st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8, st_size=155, st_atime=1542082165 /* 2018-11-12T20:09:25.267925386-0800 */, st_atime_nsec=267925386, st_mtime=1542082147 /* 2018-11-12T20:09:07.612080675-0800 */, st_mtime_nsec=612080675, st_ctime=1542082147 /* 2018-11-12T20:09:07.612080675-0800 */, st_ctime_nsec=612080675}) = 0
3612  fadvise64_64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
3612  read(3, "The quick brown fox jumps over the lazy dog.\nJinxed wizards pluck ivy from the big quilt.\nJaded zombies acted quaintly but kept driving their oxen forward.", 131072) = 155
3612  write(1, "The quick brown fox jumps over the lazy dog.\nJinxed wizards pluck ivy from the big quilt.\nJaded zombies acted quaintly but kept driving their oxen forward.", 155) = 155
3612  read(3, "", 131072)               = 0
3612  brk(0x42c000)                     = 0x42c000
3612  close(3)                          = 0
3612  close(1)                          = 0
3612  close(2)                          = 0
3612  exit_group(0

AttributeError: 'module' object has no attribute 'fchmodat_entry_handler' Failed to complete trace

Traceback (most recent call last):
File "build/bdist.linux-i686/egg/src/inject.py", line 577, in main
syscallreplay.entering_syscall)
File "build/bdist.linux-i686/egg/src/inject.py", line 153, in debug_handle_syscall
handle_syscall(pid, syscall_id, syscall_object, entering)
File "build/bdist.linux-i686/egg/src/inject.py", line 362, in handle_syscall
(306, True): file_handlers.fchmodat_entry_handler,
AttributeError: 'module' object has no attribute 'fchmodat_entry_handler'
Failed to complete trace
Injector for event:rec_pid 187:32421 failed

Is it related to this issue?

Originally posted by @aab641 in #68 (comment)

rrtest create runs forever

When making a test for Python's scrapy library, the rrtest create command runs forever. It looks like it's getting stuck in Python's subprocess library.

Here is the command rrtest create --name scrapy --command "scrapy runspider test.py"
And the contents of test.py:

import scrapy

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://blog.scrapinghub.com']

    def parse(self, response):
        for title in response.css('.post-header>h2'):
            yield {'title': title.css('a ::text').extract_first()}

        for next_page in response.css('div.prev-post > a'):
            yield response.follow(next_page, self.parse)

Pickle regeneration fails in rrinit

rrinit fails with the following error:

syscall_definitions.pickle does NOT exist. Regenerating.
Traceback (most recent call last):
File "/home/marinamoore/rrapper/crashsim/bin/rrinit", line 11, in
load_entry_point('rrapper==0.1.0', 'console_scripts', 'rrinit')()
File "build/bdist.linux-i686/egg/src/rrinit.py", line 115, in main
File "build/bdist.linux-i686/egg/src/parse_syscall_definitions.py", line 225, in generate_pickle
File "build/bdist.linux-i686/egg/src/parse_syscall_definitions.py", line 115, in get_syscall_definitions_list
File "/home/marinamoore/rrapper/crashsim/local/lib/python2.7/site-packages/sysDef/SyscallManual.py", line 138, in init
self.type, self.definition = self._parse_definition(self.name)
File "/home/marinamoore/rrapper/crashsim/local/lib/python2.7/site-packages/sysDef/SyscallManual.py", line 403, in _parse_definition
assert len(similar_definitions) <= 1
AssertionError

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.