rd is a record/replay debugger written in rust

Overview

rd The Record & Debug Tool

The Record & Debug Tool (rd) is a Rust language port of the rr-debugger/rr debugger.

With rd you can record Linux program executions. Subsequently you can replay these executions back exactly and debug them in the gdb front-end. If you know how to use rr then you already know how to use rd.

Why is it a good idea to port rr to Rust? See below.

Current Status : The port is substantially complete and is currently of an alpha level quality. You should be able to use rd for the tasks you would ordinarily use rr for. The rr project keeps accumulating features and fixes and many of them have not found their way into rd yet. However, the expectation is that rd should be reasonably robust, complete and usable now. Please report any issues!

Credits

The rd project would not have been possible without the work done in the rr-debugger/rr project. Many human-years of development effort have gone into making rr the truly amazing piece of software that it is.

The rd project is grateful to all the contributors of the rr-debugger/rr project.

For more details see CREDITS.md

Background

rd works on the same principles as rr. Please see rr-debugger/rr where you will find further information. More specifically, an excellent technical overview of rr can be found at arXiv:1705.05937.

Contributions

Contributions to the Record and Debug Tool (rd) are welcome and encouraged!

By contributing to rd you agree to license your contributions under the MIT License without any additional terms or conditions.

For more details see CONTRIBUTING.md

Requirements

As rd is a port of rr, core requirements are essentially the same:

  • Intel processors with Nehalem (2010) or later microarchitecture
  • Linux >= 3.11
  • sysctl kernel.perf_event_paranoid should be <= 1
  • Linux should have access to CPU performance counters:
    • If you are running on bare-metal then you should not have to worry about this
    • If you wish to run rd in KVM/VMWare Workstation/VMWare Fusion etc. consult this rr resource

However, because rd is not as complete and mature as rr there are some additional restrictions:

  • AMD Architectures are currently not supported on rd. Please use rr if you need to use AMD.
  • rr has experimental Aarch64 support. This support has not yet been ported to rd.
  • Only 64-bit Linux distributions are currently supported (Hopefully this should not be a big issue because both 32-bit and 64-bit programs are supported on 64-bit distributions)
    • 32-bit Linux distributions are currently not supported

rd has unfortunatately not received testing in a variety of Linux distributions apart from Ubuntu 20.04. In general if rr works on your current setup, rd should work there too -- except for the additional restrictions outlined above. Please report any problems!

Building

rd requires a nightly version of the rust x86_64-unknown-linux-gnu toolchain to compile.

$ git clone [email protected]:sidkshatriya/rd.git
$ cd rd
$ cargo build --release 

Alternatively, build in debug mode . Things will run much more slowly as the code will be compiled with lower compiler optimizations, extra debug-mode assertions etc.

# Defaults to debug mode by default
$ cargo build 

In general, use release mode as the debug mode can be much slower. Run rd in debug mode if you run into issues or are working on developing rd.

The program has been tested to compile and run properly on a 64-bit Ubuntu 20.04 installation at the moment only.

Please file a ticket if rd does not work properly for your specific Linux distribution. In general, if rr compiles and runs properly in your Linux distro, rd should do the same.

Before trying to install or run rd make sure:

$ sudo apt install cmake make capnproto libcapnp-dev gdb g++-multilib libclang-11-dev

Running rd via cargo

Invoking cargo run without any command line parameters will give you help.

$ cd rd
# This command will provide general help on rd
# To run debug mode simply omit `--release`
$ cargo run --release

To get help on specific rd sub-command e.g. record

$ cargo run --release -- record --help

Here is a simple way to record and replay (the replay is non-interactive) ls -l.

# Note that we add another '--' in case we are passing any command line params to rd 
$ cargo run --release -- record ls -- -l
$ cargo run --release -- replay -a

Installing rd

It can get pretty tiresome to keep running rd via cargo. A simple script install.sh has been provided to install the rd binary and related support files to your directory of choice.

$ cd rd
# builds release mode and installs to ~/myrd
$ PREFIX=~/myrd ./install.sh

This builds rd in release mode and then installs rd at $HOME/myrd. Files will be stored at ~/myrd/bin, ~/myrd/lib and ~/myrd/share. The install script is extremely simple and can be easily understood. The rd executable will be in $HOME/myrd/bin. You may also want to add ~/myrd/bin to your PATH at this point.

Assuming that ~/myrd/binis in your PATH it is very easy to invoke rd now.

# Records ls -l invocation
$ rd record ls -- -l

# Non-interatively replays the ls -l recording
$ rd replay -a

# Interatively replays the ls -l recording
$ rd replay

Please note that the install.sh script is rudimentary. As always, check (and modify as necessary) the unix permissions/ownership of the files and directories created, especially, if you install to a location like ~/.local /usr/local etc. In general it is recommended to install rd to a separate directory in $HOME e.g. ~/myrd, ~/rd etc. as that interferes the least with your existing system.

Installing a debug build

If you want to build and install a debug build (warning: a debug build is going to be much slower than the release build), then:

$ cd rd
# builds debug mode and installs to ~/myrd
$ PREFIX=~/myrd DEBUG=1 ./install.sh

What works

The port is substantially complete and is ready for end-user usage and developer contributions. The project contains 55,000+ lines of ported over Rust code.

The following work:

  • rd rerun
  • rd replay
    • Both interactive replay (which uses the gdb front-end) and non-interative replay (-a flag) are supported
  • rd record
  • rd buildid
  • rd dump
  • rd traceinfo

A 64-bit build of rd supports the record/replay of both 32 & 64-bit Linux programs. However, building and running rd to record/replay 32-bit programs in a 32-bit Linux distribution is currently not supported.

Tips and Suggestions

Recording & Debugging program runs

To record a program

$ rd record <program to be recorded>

If you want to pass arguments to the program:

$ rd record <program to be recorded> -- <arguments>

Example:

$ rd record ls -- -l

To replay and debug the last recorded program in the gdb front-end

$ rd replay

Logging

The various logging levels are debug, info, warn, info and fatal. To log at warn by default and debug for all messages from the auto_remote_syscalls rust module (as an example) do:

$ RD_LOG=all:warn,auto_remote_syscalls:debug rd /* rd params here */

Why implement in Rust?

Here are some (necessarily subjective) reasons why it might be a good idea to have a Rust port of rr.

Reduce complexity, increase reliability

rr is written in C/C++. C/C++ is a complex beast. As the Linux userspace/kernel interface gets more and more complex and gathers even more quirks, the rr codebase gets more and more complex too. With Rust the hope is that we have a clean and modern language that allows us to manage the complexity of record/replay. Of course, we still need to deal with the inherent complexity of record/replay but Rust helps with writing robust and reliable code. Once the code is written it is also easier to do refactorings with more confidence in Rust.

Reduce barriers to understanding and contribution

Once you understand the core principles, Rust can be easier than C/C++ to grok. Hopefully this will allow more people to inspect, improve and offer fixes to the rd codebase.

Provide an alternative, compatible implementation

Just like there can be multiple compilers for the same language, it might be a good idea to have multiple compatible implementations of rr. This might help with debugging weird bugs and optimize various implementations around different parameters.

Be a playground for experimental features

This is something for the future. The hope is rd can become a playground for experimentation and implement some innovative features in record/replay. Also rd has access to the awesome Rust cargo ecosystem which means that functionality already implemented elsewhere can be added to it much more easily.

Comments
  • WSL 2 build issues

    WSL 2 build issues

    Not sure if this is expected to work. I installed rust via rustup-init, and noticed that you're using cargo features that require nightly, so I made the nightly toolchain default in the rr project:

    rustup override set nightly
    

    When I run rustup build it first complained about not having a 32-bit cross compilation:

    CMake Error at CMakeLists.txt:106 (message):
        Your toolchain doesn't support 32-bit cross-compilation.  Install the
        required packages or pass -Ddisable32bit=ON to cmake.
    

    I fixed this by adding:

         Config::new(".")
    +        .define("disable32bit", "ON")
             .define("CMAKE_BUILD_TYPE", "Release")
             .define("CMAKE_INSTALL_PREFIX", target_dir)
             .build();
    

    Finally, the build fails at this point with the error message:

     RUST_BACKTRACE=full cargo build
      /usr/include/x86_64-linux-gnu/bits/statx.h:25:8: error: redefinition of 'statx_timestamp'
      /usr/include/linux/stat.h:56:8: note: previous definition is here
      /usr/include/x86_64-linux-gnu/bits/statx.h:36:8: error: redefinition of 'statx'
      /usr/include/linux/stat.h:99:8: note: previous definition is here
      /usr/include/x86_64-linux-gnu/bits/statx.h:25:8: error: redefinition of 'statx_timestamp', err: true
      /usr/include/x86_64-linux-gnu/bits/statx.h:36:8: error: redefinition of 'statx', err: true
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', build.rs:142:10
      stack backtrace:
         0:     0x55b86f5e35a0 - std::backtrace_rs::backtrace::libunwind::trace::hdcf4f90f85129e83
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
         1:     0x55b86f5e35a0 - std::backtrace_rs::backtrace::trace_unsynchronized::h2669e30cb82f6732
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
         2:     0x55b86f5e35a0 - std::sys_common::backtrace::_print_fmt::hfbda19e17f6db318
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:67:5
         3:     0x55b86f5e35a0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1a8751bf59281272
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:46:22
         4:     0x55b86f60b46f - core::fmt::write::h7aa6cd0067dca82a
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/fmt/mod.rs:1094:17
         5:     0x55b86f5dfa65 - std::io::Write::write_fmt::hd7dd3a1df9b6befb
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/io/mod.rs:1584:15
         6:     0x55b86f5e5f5b - std::sys_common::backtrace::_print::h551e9ec8a9fa8106
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:49:5
         7:     0x55b86f5e5f5b - std::sys_common::backtrace::print::ha4b1c5e95fa040b3
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:36:9
         8:     0x55b86f5e5f5b - std::panicking::default_hook::{{closure}}::h0b34c9ab7fb9f857
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:208:50
         9:     0x55b86f5e5a3d - std::panicking::default_hook::h3067e8318decd17a
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:225:9
        10:     0x55b86f5e6530 - std::panicking::rust_panic_with_hook::h81b8facc50f34daa
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:595:17
        11:     0x55b86f5e6107 - std::panicking::begin_panic_handler::{{closure}}::ha376ab85d95a000e
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:497:13
        12:     0x55b86f5e3a5c - std::sys_common::backtrace::__rust_end_short_backtrace::h6795c8afdd1a77e6
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:141:18
        13:     0x55b86f5e6069 - rust_begin_unwind
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:493:5
        14:     0x55b86ef879b1 - core::panicking::panic_fmt::hbe99dddd3092ba3c
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/panicking.rs:92:14
        15:     0x55b86ef87aa3 - core::result::unwrap_failed::hf79563fef9d11ab8
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/result.rs:1355:5
        16:     0x55b86ef88de2 - core::result::Result<T,E>::unwrap::h3de4c0cfbc3f2eb3
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/result.rs:1037:23
        17:     0x55b86ef8ac2b - build_script_build::main::h524a69ec66303409
                                     at /home/pcbeard/rd/build.rs:136:31
        18:     0x55b86ef8bf2b - core::ops::function::FnOnce::call_once::hfc0c39065fe0f54a
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/ops/function.rs:227:5
        19:     0x55b86ef8828e - std::sys_common::backtrace::__rust_begin_short_backtrace::he78835f3afb121b3
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/sys_common/backtrace.rs:125:18
        20:     0x55b86ef8cac1 - std::rt::lang_start::{{closure}}::hab57f4735b86f87f
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/rt.rs:49:18
        21:     0x55b86f5e6a0a - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h3b8c329143d7638a
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/core/src/ops/function.rs:259:13
        22:     0x55b86f5e6a0a - std::panicking::try::do_call::h4b72c261b4eefc1b
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:379:40
        23:     0x55b86f5e6a0a - std::panicking::try::h703d31b7896cbd49
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panicking.rs:343:19
        24:     0x55b86f5e6a0a - std::panic::catch_unwind::h37cad9b35388a915
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/panic.rs:431:14
        25:     0x55b86f5e6a0a - std::rt::lang_start_internal::hab5a8a909af4f90e
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/rt.rs:34:21
        26:     0x55b86ef8caa0 - std::rt::lang_start::h1edf0894d3efe9f6
                                     at /rustc/5c029265465301fe9cb3960ce2a5da6c99b8dcf2/library/std/src/rt.rs:48:5
        27:     0x55b86ef8bbac - main
        28:     0x7f87c356d09b - __libc_start_main
        29:     0x55b86ef8814a - _start
        30:                0x0 - <unknown>
    
    
    opened by pcbeard 7
  • Fails to compile on linux mint

    Fails to compile on linux mint

    Hi there ! I couldnt compile the project.

    My hardware spec :

    $ screenfetch
                                           astrale@Sharp
     MMMMMMMMMMMMMMMMMMMMMMMMMmds+.        OS: Linuxmint 20.1 ulyssa
     MMm----::-://////////////oymNMd+`     Kernel: x86_64 Linux 5.4.0-65-generic
     MMd      /++                -sNMd:    Uptime: 2h 30m
     MMNso/`  dMM    `.::-. .-::.` .hMN:   Packages: 4185
     ddddMMh  dMM   :hNMNMNhNMNMNh: `NMm   Shell: fish 3.1.0
         NMm  dMM  .NMN/-+MMM+-/NMN` dMM   Resolution: 1920x1080
         NMm  dMM  -MMm  `MMM   dMM. dMM   DE: Cinnamon 4.8.6
         NMm  dMM  -MMm  `MMM   dMM. dMM   WM: Muffin
         NMm  dMM  .mmd  `mmm   yMM. dMM   WM Theme: Mint-Y-Dark-Blue (Mint-Y-Dark)
         NMm  dMM`  ..`   ...   ydm. dMM   GTK Theme: Mint-Y-Dark-Red [GTK2/3]
         hMM- +MMd/-------...-:sdds  dMM   Icon Theme: Mint-Y-Dark-Red
         -NMm- :hNMNNNmdddddddddy/`  dMM   Font: Ubuntu Condensed, 24
          -dMNs-``-::::-------.``    dMM   Disk: 747G / 1,1T (77%)
           `/dMNmy+/:-------------:/yMMM   CPU: Intel Core i3-2330M @ 4x 2.2GHz [64.0°C]
              ./ydNMMMMMMMMMMMMMMMMMMMMM   GPU: GeForce GT 630M
                 \.MMMMMMMMMMMMMMMMMMM     RAM: 2452MiB / 3844MiB
                                          
    $ rustup --version
    rustup 1.23.1 (3df2264a9 2020-11-30)
    info: This is the version for the rustup toolchain manager, not the rustc compiler.
    info: The currently active `rustc` version is `rustc 1.52.0-nightly (e9920ef77 2021-02-11)
    
    $ rustup override set nightly
    $ cargo b --release
    
    [...]
    
       Compiling rd v0.0.0 (/home/astrale/playground/rd)
    error: failed to run custom build command for `rd v0.0.0 (/home/astrale/playground/rd)`
    
    Caused by:
      process didn't exit successfully: `/home/astrale/playground/rd/target/release/build/rd-6941a3a904c4182e/build-script-build` (exit code: 101)
      --- stdout
      running: "cmake" "/home/astrale/playground/rd/." "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/home/astrale/playground/rd/target" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc"
      -- The C compiler identification is GNU 9.3.0
      -- The CXX compiler identification is GNU 9.3.0
      -- The ASM compiler identification is GNU
      -- Found assembler: /usr/bin/cc
      -- Check for working C compiler: /usr/bin/cc
      -- Check for working C compiler: /usr/bin/cc -- works
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Check for working CXX compiler: /usr/bin/c++
      -- Check for working CXX compiler: /usr/bin/c++ -- works
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Performing Test SUPPORTS_CXX14
      -- Performing Test SUPPORTS_CXX14 - Success
      -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.5", minimum required is "3") 
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/build
      running: "cmake" "--build" "." "--target" "install" "--config" "Release" "--"
      Scanning dependencies of target rd_exec_stub
      Scanning dependencies of target rdpreload_32
      [  5%] Building C object CMakeFiles/rd_exec_stub.dir/src/exec_stub.c.o
      [ 10%] Building ASM object CMakeFiles/rdpreload_32.dir/32/preload/syscall_hook.S.o
      [ 15%] Building C object CMakeFiles/rdpreload_32.dir/32/preload/syscallbuf.c.o
      [ 20%] Linking C executable bin/rd_exec_stub
      [ 20%] Built target rd_exec_stub
      [ 25%] Building ASM object CMakeFiles/rdpreload_32.dir/32/preload/raw_syscall.S.o
      [ 30%] Building ASM object CMakeFiles/rdpreload_32.dir/32/preload/breakpoint_table.S.o
      [ 35%] Building C object CMakeFiles/rdpreload_32.dir/32/preload/overrides.c.o
      Scanning dependencies of target Pages
      [ 40%] Generating share/rd/rd_page_32
      [ 45%] Generating share/rd/rd_page_64
      [ 50%] Generating share/rd/rd_page_32_replay
      [ 55%] Generating share/rd/rd_page_64_replay
      [ 55%] Built target Pages
      Scanning dependencies of target rd_exec_stub_32
      [ 60%] Building C object CMakeFiles/rd_exec_stub_32.dir/32/exec_stub.c.o
      [ 65%] Linking C executable bin/rd_exec_stub_32
      [ 65%] Built target rd_exec_stub_32
      Scanning dependencies of target rdpreload
      [ 70%] Building ASM object CMakeFiles/rdpreload.dir/src/preload/syscall_hook.S.o
      [ 75%] Building C object CMakeFiles/rdpreload.dir/src/preload/syscallbuf.c.o
      [ 80%] Building ASM object CMakeFiles/rdpreload.dir/src/preload/raw_syscall.S.o
      [ 85%] Building ASM object CMakeFiles/rdpreload.dir/src/preload/breakpoint_table.S.o
      [ 90%] Building C object CMakeFiles/rdpreload.dir/src/preload/overrides.c.o
      [ 95%] Linking C shared library lib/rd/librdpreload_32.so
      [ 95%] Built target rdpreload_32
      [100%] Linking C shared library lib/rd/librdpreload.so
      [100%] Built target rdpreload
      Install the project...
      -- Install configuration: "Release"
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/syscall_hook.S
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/syscallbuf.c
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/raw_syscall.S
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/breakpoint_table.S
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/overrides.c
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/preload_interface.h
      -- Installing: /home/astrale/playground/rd/target/share/rd/src/preload/syscallbuf.h
      -- Installing: /home/astrale/playground/rd/target/share/rd/rd_page_64
      -- Installing: /home/astrale/playground/rd/target/share/rd/rd_page_64_replay
      -- Installing: /home/astrale/playground/rd/target/share/rd/rd_page_32
      -- Installing: /home/astrale/playground/rd/target/share/rd/rd_page_32_replay
      -- Installing: /home/astrale/playground/rd/target/lib/rd/librdpreload.so
      -- Installing: /home/astrale/playground/rd/target/bin/rd_exec_stub
      -- Installing: /home/astrale/playground/rd/target/lib/rd/librdpreload_32.so
      -- Installing: /home/astrale/playground/rd/target/bin/rd_exec_stub_32
      cargo:root=/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out
      TARGET = Some("x86_64-unknown-linux-gnu")
      OPT_LEVEL = Some("3")
      HOST = Some("x86_64-unknown-linux-gnu")
      CC_x86_64-unknown-linux-gnu = None
      CC_x86_64_unknown_linux_gnu = None
      HOST_CC = None
      CC = None
      CFLAGS_x86_64-unknown-linux-gnu = None
      CFLAGS_x86_64_unknown_linux_gnu = None
      HOST_CFLAGS = None
      CFLAGS = None
      CRATE_CC_NO_DEFAULTS = None
      DEBUG = Some("false")
      CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
      running: "sccache" "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-o" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/cpuid_loop.o" "-c" "src/cpuid_loop.S"
      exit code: 0
      AR_x86_64-unknown-linux-gnu = None
      AR_x86_64_unknown_linux_gnu = None
      HOST_AR = None
      AR = None
      running: "ar" "cq" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/libcpuid_loop.a" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/cpuid_loop.o"
      exit code: 0
      running: "ar" "s" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/libcpuid_loop.a"
      exit code: 0
      cargo:rustc-link-lib=static=cpuid_loop
      cargo:rustc-link-search=native=/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out
      cargo:rerun-if-changed=src/cpuid_loop.S
      TARGET = Some("x86_64-unknown-linux-gnu")
      OPT_LEVEL = Some("3")
      HOST = Some("x86_64-unknown-linux-gnu")
      CC_x86_64-unknown-linux-gnu = None
      CC_x86_64_unknown_linux_gnu = None
      HOST_CC = None
      CC = None
      CFLAGS_x86_64-unknown-linux-gnu = None
      CFLAGS_x86_64_unknown_linux_gnu = None
      HOST_CFLAGS = None
      CFLAGS = None
      CRATE_CC_NO_DEFAULTS = None
      DEBUG = Some("false")
      CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
      running: "sccache" "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-o" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/rdtsc.o" "-c" "src/rdtsc.c"
      exit code: 0
      AR_x86_64-unknown-linux-gnu = None
      AR_x86_64_unknown_linux_gnu = None
      HOST_AR = None
      AR = None
      running: "ar" "cq" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/librdtsc.a" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/rdtsc.o"
      exit code: 0
      running: "ar" "s" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/librdtsc.a"
      exit code: 0
      cargo:rustc-link-lib=static=rdtsc
      cargo:rustc-link-search=native=/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out
      cargo:rerun-if-changed=src/rdtsc.c
      TARGET = Some("x86_64-unknown-linux-gnu")
      OPT_LEVEL = Some("3")
      HOST = Some("x86_64-unknown-linux-gnu")
      CC_x86_64-unknown-linux-gnu = None
      CC_x86_64_unknown_linux_gnu = None
      HOST_CC = None
      CC = None
      CFLAGS_x86_64-unknown-linux-gnu = None
      CFLAGS_x86_64_unknown_linux_gnu = None
      HOST_CFLAGS = None
      CFLAGS = None
      CRATE_CC_NO_DEFAULTS = None
      DEBUG = Some("false")
      CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
      running: "sccache" "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-o" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/ioctl.o" "-c" "src/ioctl.c"
      exit code: 0
      AR_x86_64-unknown-linux-gnu = None
      AR_x86_64_unknown_linux_gnu = None
      HOST_AR = None
      AR = None
      running: "ar" "cq" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/libioctl.a" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/src/ioctl.o"
      exit code: 0
      running: "ar" "s" "/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out/libioctl.a"
      exit code: 0
      cargo:rustc-link-lib=static=ioctl
      cargo:rustc-link-search=native=/home/astrale/playground/rd/target/release/build/rd-f1d548f9cfdb193e/out
      cargo:rerun-if-changed=src/ioctl.c
      cargo:rerun-if-changed=scripts/generate_syscalls.py
      cargo:rerun-if-changed=scripts/assembly_templates.py
      cargo:rerun-if-changed=scripts/syscalls.py
      cargo:rerun-if-changed=/usr/include/linux/perf_event.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctl.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/byteorder.h
      cargo:rerun-if-changed=/usr/include/linux/byteorder/little_endian.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/swab.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/swab.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=bindgen/perf_event_wrapper.h
      cargo:rerun-if-changed=/usr/include/arpa/inet.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/netinet/in.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/socket.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/socket.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/endian.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/byteswap.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/select.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/socket_type.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sockaddr.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/socket.h
      cargo:rerun-if-changed=/usr/include/asm-generic/socket.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/sockios.h
      cargo:rerun-if-changed=/usr/include/asm-generic/sockios.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/in.h
      cargo:rerun-if-changed=/usr/include/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/byteswap.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ldt.h
      cargo:rerun-if-changed=/usr/include/dirent.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/dirent.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/posix1_lim.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/local_lim.h
      cargo:rerun-if-changed=/usr/include/linux/limits.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/dirent_ext.h
      cargo:rerun-if-changed=/usr/include/elf.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stdint.h
      cargo:rerun-if-changed=/usr/include/stdint.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wchar.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/auxv.h
      cargo:rerun-if-changed=/usr/include/fcntl.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/fcntl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h
      cargo:rerun-if-changed=/usr/include/linux/falloc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stat.h
      cargo:rerun-if-changed=/usr/include/linux/capability.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/ethtool.h
      cargo:rerun-if-changed=/usr/include/linux/kernel.h
      cargo:rerun-if-changed=/usr/include/linux/sysinfo.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/if_ether.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/limits.h
      cargo:rerun-if-changed=/usr/include/limits.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/posix1_lim.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/posix2_lim.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/xopen_lim.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uio_lim.h
      cargo:rerun-if-changed=/usr/include/linux/filter.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/bpf_common.h
      cargo:rerun-if-changed=/usr/include/linux/futex.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/if_bonding.h
      cargo:rerun-if-changed=/usr/include/linux/if.h
      cargo:rerun-if-changed=/usr/include/linux/libc-compat.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/socket.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/socket.h
      cargo:rerun-if-changed=/usr/include/linux/hdlc/ioctl.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/if_ether.h
      cargo:rerun-if-changed=/usr/include/linux/ipc.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ipcbuf.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ipcbuf.h
      cargo:rerun-if-changed=/usr/include/linux/mqueue.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/msg.h
      cargo:rerun-if-changed=/usr/include/linux/ipc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/msgbuf.h
      cargo:rerun-if-changed=/usr/include/asm-generic/msgbuf.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/net.h
      cargo:rerun-if-changed=/usr/include/linux/socket.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/socket.h
      cargo:rerun-if-changed=/usr/include/asm-generic/socket.h
      cargo:rerun-if-changed=/usr/include/linux/netfilter/x_tables.h
      cargo:rerun-if-changed=/usr/include/linux/kernel.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/sem.h
      cargo:rerun-if-changed=/usr/include/linux/ipc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/sembuf.h
      cargo:rerun-if-changed=/usr/include/linux/shm.h
      cargo:rerun-if-changed=/usr/include/linux/ipc.h
      cargo:rerun-if-changed=/usr/include/linux/errno.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/errno.h
      cargo:rerun-if-changed=/usr/include/asm-generic/errno.h
      cargo:rerun-if-changed=/usr/include/asm-generic/errno-base.h
      cargo:rerun-if-changed=/usr/include/asm-generic/hugetlb_encode.h
      cargo:rerun-if-changed=/usr/include/unistd.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/posix_opt.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/environments.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/confname.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/getopt_posix.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/getopt_core.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/unistd_ext.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/shmbuf.h
      cargo:rerun-if-changed=/usr/include/asm-generic/shmbuf.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/sockios.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/sockios.h
      cargo:rerun-if-changed=/usr/include/asm-generic/sockios.h
      cargo:rerun-if-changed=/usr/include/linux/stat.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/sysctl.h
      cargo:rerun-if-changed=/usr/include/linux/kernel.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/usbdevice_fs.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/magic.h
      cargo:rerun-if-changed=/usr/include/linux/videodev2.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/time.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctl.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctl.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/v4l2-common.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/v4l2-controls.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/wireless.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/socket.h
      cargo:rerun-if-changed=/usr/include/linux/if.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/__stddef_max_align_t.h
      cargo:rerun-if-changed=/usr/include/poll.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/poll.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/poll.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/scsi/sg.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/signal.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum-generic.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigaction.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigcontext.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ucontext.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ss_flags.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigthread.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signal_ext.h
      cargo:rerun-if-changed=/usr/include/sound/asound.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/stdlib.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitflags.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitstatus.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn-common.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
      cargo:rerun-if-changed=/usr/include/alloca.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
      cargo:rerun-if-changed=/usr/include/time.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stdint.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/epoll.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stdint.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/epoll.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ioctl.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctl-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/quota.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
      cargo:rerun-if-changed=/usr/include/linux/quota.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/resource.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/resource.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/socket.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/stat.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stat.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/statx.h
      cargo:rerun-if-changed=/usr/include/linux/stat.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/statx-generic.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/sysinfo.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/linux/kernel.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/time.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/timerfd.h
      cargo:rerun-if-changed=/usr/include/time.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timerfd.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/times.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/timex.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/time.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/un.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sockaddr.h
      cargo:rerun-if-changed=/usr/include/string.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
      cargo:rerun-if-changed=/usr/include/strings.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/user.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/utsname.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/utsname.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/vfs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/statfs.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/statfs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/termios.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-struct.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-baud.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/termios-misc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
      cargo:rerun-if-changed=/usr/include/sched.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sched.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/cpu-set.h
      cargo:rerun-if-changed=bindgen/kernel_wrapper.h
      cargo:rerun-if-changed=bindgen/gdb_register_wrapper.h
      cargo:rerun-if-changed=/usr/include/signal.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum-generic.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigaction.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigcontext.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ucontext.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ss_flags.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigthread.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signal_ext.h
      cargo:rerun-if-changed=bindgen/signal_wrapper.h
      cargo:rerun-if-changed=/usr/include/linux/audit.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/elf-em.h
      cargo:rerun-if-changed=bindgen/audit_wrapper.h
      cargo:rerun-if-changed=/usr/include/fcntl.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/fcntl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/linux/falloc.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stat.h
      cargo:rerun-if-changed=bindgen/fcntl_wrapper.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ptrace.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h
      cargo:rerun-if-changed=bindgen/ptrace_wrapper.h
      cargo:rerun-if-changed=/usr/include/sysexits.h
      cargo:rerun-if-changed=bindgen/sysexits_wrapper.h
      cargo:rerun-if-changed=/usr/include/linux/prctl.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/prctl.h
      cargo:rerun-if-changed=bindgen/prctl_wrapper.h
      cargo:rerun-if-changed=bindgen/gdb_request_wrapper.h
      cargo:rerun-if-changed=/usr/include/linux/if_tun.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/if_ether.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/filter.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/bpf_common.h
      cargo:rerun-if-changed=/usr/include/linux/mman.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/mman.h
      cargo:rerun-if-changed=/usr/include/asm-generic/mman.h
      cargo:rerun-if-changed=/usr/include/asm-generic/mman-common.h
      cargo:rerun-if-changed=/usr/include/asm-generic/hugetlb_encode.h
      cargo:rerun-if-changed=/usr/include/linux/seccomp.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/usbdevice_fs.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/magic.h
      cargo:rerun-if-changed=/usr/include/signal.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signum-generic.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigaction.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigcontext.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ucontext.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ss_flags.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sigthread.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/signal_ext.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stdint.h
      cargo:rerun-if-changed=/usr/include/stdint.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wchar.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ioctl.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctl.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctl-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ptrace.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h
      cargo:rerun-if-changed=bindgen/kernel_supplement_wrapper.h
      cargo:rerun-if-changed=/usr/include/linux/if_packet.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=bindgen/packet_wrapper.h
      cargo:rerun-if-changed=/usr/include/linux/personality.h
      cargo:rerun-if-changed=bindgen/personality_wrapper.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ioctl.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/stdc-predef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctl.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/ioctl-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/ioctls.h
      cargo:rerun-if-changed=/usr/include/asm-generic/ioctls.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
      cargo:rerun-if-changed=/usr/include/linux/input.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/time.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/select.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/ioctl.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/endian.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/byteswap.h
      cargo:rerun-if-changed=/usr/include/features.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/types.h
      cargo:rerun-if-changed=/usr/include/asm-generic/int-ll64.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/asm-generic/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/posix_types.h
      cargo:rerun-if-changed=/usr/include/linux/stddef.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/posix_types_64.h
      cargo:rerun-if-changed=/usr/include/asm-generic/posix_types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/linux/input-event-codes.h
      cargo:rerun-if-changed=/usr/include/linux/fs.h
      cargo:rerun-if-changed=/usr/include/linux/limits.h
      cargo:rerun-if-changed=/usr/include/linux/ioctl.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/fscrypt.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/mount.h
      cargo:rerun-if-changed=/usr/include/linux/joystick.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/input.h
      cargo:rerun-if-changed=/usr/include/linux/msdos_fs.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/magic.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/byteorder.h
      cargo:rerun-if-changed=/usr/include/linux/byteorder/little_endian.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/linux/swab.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/bitsperlong.h
      cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/swab.h
      cargo:rerun-if-changed=/usr/include/linux/types.h
      cargo:rerun-if-changed=bindgen/misc_for_ioctl_wrapper.h
    
      --- stderr
      /home/astrale/playground/rd/scripts/syscalls.py:14: SyntaxWarning: "is" with a literal. Did you mean "=="?
        assert len(kwargs) is 0
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      Warning: the `merge_imports` option is deprecated. Use `imports_granularity=Crate` instead
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Failed, description: "Error while trying to execute `capnp compile`: Failed: No such file or directory (os error 2).  Please verify that version 0.5.2 or higher of the capnp executable is installed on your system. See https://capnproto.org/install.html" }', build.rs:197:10
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    
    opened by astrale-sharp 6
  • How do I profile a program being replayed?

    How do I profile a program being replayed?

    Naive perf record --call-graph=dwarf rd rerun, followed by perf script | ./stackcollapse-perf.pl | ./flamegraph.pl does not seem to produce useful results, showing mostly rd's internals, not target program's.

    Maybe I need to specify some symbols directories explicitly? Or maybe rd (or rr) can just output perf-compatible data on its own?

    question 
    opened by vi 5
  • Use 1 codegen unit in release builds to further optimize the build

    Use 1 codegen unit in release builds to further optimize the build

    This makes the final binary slightly smaller and faster.

    Note that I couldn't build locally (I ran into the same issue as https://github.com/sidkshatriya/rd/issues/4, despite installing capnproto-dev on Fedora 33).

    opened by Calinou 3
  • Fails to compile on ubuntu 18.04

    Fails to compile on ubuntu 18.04

    rd is not building on my system (Ubuntu 18.04). Steps to reproduce:

    git clone [email protected]:sidkshatriya/rd.git
    cd rd/
    cargo build
    

    Truncated error:

    error[E0412]: cannot find type `itimerspec` in module `kernel`                                                                                                                                                                         [68/712]
        --> src/kernel_abi.rs:709:33
         |
    709  |         assert_eq_size!(kernel::itimerspec, itimerspec);
         |                                 ^^^^^^^^^^
         |
        ::: /home/josh/Projects/rd/target/debug/build/rd-593c103ccfe8f56f/out/kernel_bindings_generated.rs:6389:1
         |
    6389 | pub struct timespec {
         | ------------------- similarly named struct `timespec` defined here
         |
    help: a struct with a similar name exists
         |
    709  |         assert_eq_size!(kernel::timespec, itimerspec);
         |                                 ^^^^^^^^
    help: consider importing one of these items
         |
    539  |         use crate::session::task::task_inner::x86::itimerspec;
         |
    539  |         use crate::util::native_arch::itimerspec;
         |
    539  |         use libc::itimerspec;
         |
    
    error[E0412]: cannot find type `itimerspec` in module `kernel`
        --> src/kernel_abi.rs:710:34
         |
    710  |         assert_eq_align!(kernel::itimerspec, itimerspec);
         |                                  ^^^^^^^^^^
         |
        ::: /home/josh/Projects/rd/target/debug/build/rd-593c103ccfe8f56f/out/kernel_bindings_generated.rs:6389:1
         |
    6389 | pub struct timespec {
         | ------------------- similarly named struct `timespec` defined here
         |
    help: a struct with a similar name exists
         |
    710  |         assert_eq_align!(kernel::timespec, itimerspec);
         |                                  ^^^^^^^^
    help: consider importing one of these items
         |
    539  |         use crate::session::task::task_inner::x86::itimerspec;
         |
    539  |         use crate::util::native_arch::itimerspec;
         |
    539  |         use libc::itimerspec;
         |
    
    error[E0412]: cannot find type `statx_timestamp` in module `kernel`
       --> src/kernel_abi.rs:780:33
        |
    780 |         assert_eq_size!(kernel::statx_timestamp, statx_timestamp);
        |                                 ^^^^^^^^^^^^^^^ not found in `kernel`
        |
    help: consider importing one of these items
        |
    539 |         use crate::session::task::task_inner::x86::statx_timestamp;
        |
    539 |         use crate::util::native_arch::statx_timestamp;
        |
    539 |         use libc::statx_timestamp;
        |
    
    error[E0412]: cannot find type `statx_timestamp` in module `kernel`
       --> src/kernel_abi.rs:781:34
    ...
    

    rust version:

    active toolchain
    ----------------
    
    nightly-x86_64-unknown-linux-gnu (default)
    rustc 1.48.0-nightly (bbc677480 2020-09-18)
    
    opened by jabedude 3
  • Fails to compile on Rust nightly

    Fails to compile on Rust nightly

    The process_exitcode_placeholder feature has been removed from a recent nightly version, as the feature has been stabilized. Additionally, the termination_trait_lib feature has been stabilized.

    warning: the feature `termination_trait_lib` has been stable since 1.61.0 and no longer requires an attribute to enable
     --> src/main.rs:4:12
      |
    4 | #![feature(termination_trait_lib)]
      |            ^^^^^^^^^^^^^^^^^^^^^
      |
      = note: `#[warn(stable_features)]` on by default
    
    error[E0635]: unknown feature `process_exitcode_placeholder`
     --> src/main.rs:8:12
      |
    8 | #![feature(process_exitcode_placeholder)]
      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    opened by rdrpenguin04 1
  • Project does not build with recent Rust nightly

    Project does not build with recent Rust nightly

    Beta

    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:1:1
      |
    1 | #![feature(get_mut_unchecked)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:2:1
      |
    2 | #![feature(map_first_last)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:3:1
      |
    3 | #![feature(llvm_asm)]
      | ^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:4:1
      |
    4 | #![feature(raw_ref_op)]
      | ^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:5:1
      |
    5 | #![feature(termination_trait_lib)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:6:1
      |
    6 | #![feature(associated_type_defaults)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:7:1
      |
    7 | #![feature(slice_ptr_get)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:8:1
      |
    8 | #![feature(array_methods)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
     --> src/main.rs:9:1
      |
    9 | #![feature(arc_new_cyclic)]
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
      --> src/main.rs:10:1
       |
    10 | #![feature(format_args_capture)]
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    error[E0554]: `#![feature]` may not be used on the stable release channel
      --> src/main.rs:11:1
       |
    11 | #![feature(const_fn_trait_bound)]
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
        --> src/session/address_space.rs:3225:9
         |
    3225 |         llvm_asm!("syscall" :::: "volatile");
         |         ^^^^^^^^
         |
         = note: `#[warn(deprecated)]` on by default
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
        --> src/session/address_space.rs:3226:9
         |
    3226 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
        --> src/session/address_space.rs:3227:9
         |
    3227 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
        --> src/session/address_space.rs:3228:9
         |
    3228 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
       --> src/session/task/task_common.rs:800:14
        |
    800 |     unsafe { llvm_asm!("lar $1, $0" : "=r"(ar) : "r"(segment)) };
        |              ^^^^^^^^
    
    warning: use of deprecated macro `llvm_asm`: will be removed from the compiler, use asm! instead
       --> src/util.rs:879:9
        |
    879 |         llvm_asm!("xgetbv"
        |         ^^^^^^^^
    
    For more information about this error, try `rustc --explain E0554`.
    warning: `rd` (bin "rd") generated 6 warnings
    error: could not compile `rd` due to 11 previous errors; 6 warnings emitted
    

    Nightly

    llvm_asm! was removed from nightly https://github.com/rust-lang/rust/issues/70173

    [jdanek@fedora rd]$ cargo build --release
    warning: the cargo feature `named-profiles` has been stabilized in the 1.57 release and is no longer necessary to be listed in the manifest
      See https://doc.rust-lang.org/nightly/cargo/reference/profiles.html#custom-profiles for more information about using this feature.
       Compiling rd v0.0.0 (/home/jdanek/repos/rd)
    error: cannot find macro `llvm_asm` in this scope
       --> src/session/task/task_common.rs:800:14
        |
    800 |     unsafe { llvm_asm!("lar $1, $0" : "=r"(ar) : "r"(segment)) };
        |              ^^^^^^^^
    
    error: cannot find macro `llvm_asm` in this scope
       --> src/util.rs:879:9
        |
    879 |         llvm_asm!("xgetbv"
        |         ^^^^^^^^
    
    error: cannot find macro `llvm_asm` in this scope
        --> src/session/address_space.rs:3228:9
         |
    3228 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    error: cannot find macro `llvm_asm` in this scope
        --> src/session/address_space.rs:3227:9
         |
    3227 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    error: cannot find macro `llvm_asm` in this scope
        --> src/session/address_space.rs:3226:9
         |
    3226 |         llvm_asm!("nop" :::: "volatile");
         |         ^^^^^^^^
    
    error: cannot find macro `llvm_asm` in this scope
        --> src/session/address_space.rs:3225:9
         |
    3225 |         llvm_asm!("syscall" :::: "volatile");
         |         ^^^^^^^^
    
    error[E0053]: method `report` has an incompatible type for trait
      --> src/commands/exit_result.rs:17:24
       |
    17 |     fn report(self) -> i32 {
       |                        ^^^
       |                        |
       |                        expected struct `ExitCode`, found `i32`
       |                        help: change the output type to match the trait: `ExitCode`
       |
       = note: expected fn pointer `fn(ExitResult<_>) -> ExitCode`
                  found fn pointer `fn(ExitResult<_>) -> i32`
    
    error[E0308]: mismatched types
      --> src/commands/exit_result.rs:19:34
       |
    17 |     fn report(self) -> i32 {
       |                        --- expected `i32` because of return type
    18 |         match self {
    19 |             ExitResult::Ok(t) => t.report(),
       |                                  ^^^^^^^^^^ expected `i32`, found struct `ExitCode`
    
    Some errors have detailed explanations: E0053, E0308.
    For more information about an error, try `rustc --explain E0053`.
    error: could not compile `rd` due to 8 previous errors
    
    opened by jiridanek 1
  • allow perf_event_paranoid=-1

    allow perf_event_paranoid=-1

    This previously failed with Error while parsing file '/proc/sys/kernel/perf_event_paranoid': ParseIntError { kind: InvalidDigit }


    Note: perf_event_paranoid=-1 is probably a bad idea. :slightly_smiling_face:

    opened by Mrmaxmeier 1
  • Error message when using rd executable copied elsewhere is somewhat unhelpful

    Error message when using rd executable copied elsewhere is somewhat unhelpful

    If I, thinking that rd executable is self-contained and does not require any accessories, copy target/release/rd to some ~/bin/ and try recording something, I get rather long error output:

    rd: Saving execution to trace directory "/mnt/bkel/vi/.local/share/rd/ls-0".
    [FATAL src/session/address_space.rs:2341]
     (task 9345 (rec: 9345) at time 14)
     -> Assertion `child_fd != -ENOENT' failed to hold. rd_page file not found: "/mnt/bkel/vi/bin2/../share/rd/rd_page_64"
    Tail of trace dump: 0-14
    {
      real_time:197574.205267 global_time:1, event:`SYSCALL: prctl' (state:ENTERING_SYSCALL) tid:9345, ticks:2
    rax:0xffffffffffffffda rbx:0x9 rcx:0xffffffffffffffff rdx:0x7ffe041d4dd0 rsi:0x2 rdi:0x16 rbp:0x55d0403ac650 rsp:0x7ffe041d4b70 r8:0x0 r9:0x0 r10:0x0 r11:0x246 r12:0x2481 r13:0x3e9 r14:0x2 r15:0x55d0404d82f0 rip:0x7f3c3a23d5cd eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9d fs_base:0x7f3c3a13e500 gs_base:0x0
    }
    {
      real_time:197574.206015 global_time:2, event:`SYSCALL: prctl' (state:EXITING_SYSCALL) tid:9345, ticks:2
    rax:0x0 rbx:0x9 rcx:0xffffffffffffffff rdx:0x7ffe041d4dd0 rsi:0x2 rdi:0x16 rbp:0x55d0403ac650 rsp:0x7ffe041d4b70 r8:0x0 r9:0x0 r10:0x0 r11:0x246 r12:0x2481 r13:0x3e9 r14:0x2 r15:0x55d0404d82f0 rip:0x7f3c3a23d5cd eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9d fs_base:0x7f3c3a13e500 gs_base:0x0
    }
    ... (skipped more of them)
    === Start rd backtrace:
       0: rd::log::emergency_debug
       1: rd::session::task::task_common::post_exec_syscall_common
       2: rd::record_syscall::process_execve
       3: rd::record_syscall::rec_process_syscall_arch
       4: rd::session::record_session::RecordSession::syscall_state_changed
       5: rd::session::record_session::RecordSession::record_step
       6: rd::commands::record_command::RecordCommand::record
       7: rd::main
       8: std::sys_common::backtrace::__rust_begin_short_backtrace
       9: std::rt::lang_start::{{closure}}
      10: main
      11: __libc_start_main
      12: _start
    
    === End rd backtrace
    Launch gdb with
      gdb '-l' '10000' '-ex' 'set sysroot /' '-ex' 'target extended-remote 127.0.0.1:9345' /usr/bin/ls
    

    and if locks up until I ^C.

    I think rd should detect absence of required files earlier and provide nicer error message about installation method being wrong.

    installation paper-cut 
    opened by vi 3
  • AMD support

    AMD support

    Hi,

    I know that it's stated in the readme:

    AMD Architectures are currently not supported on rd. Please use rr if you need to use AMD.

    I still wonder if you have any plans on supporting AMD at some point?

    opened by emoon 1
  • Using `gdbstub` for the GDB Remote Serial Protocol

    Using `gdbstub` for the GDB Remote Serial Protocol

    Hey there!

    This is a totally shameless plug on my part, but I was wondering if you were aware of the gdbstub crate? gdbstub provides a generic, typesafe, and ergonomic Rust API for implementing GDB remote targets. It already implements quite a substantial chunk of the GDB RSP (including reverse execution!), and is being used by quite a few projects, both big and small.

    I wanted to open this issue for a couple reasons:

    • To solicit your thoughts on gdbstub (after all, not that many folks implement the GDB RSP from scratch. There are dozens of us!)
    • Ask whether you'd be open in pooling our efforts
    • Ask if there are any glaring feature omissions from the current gdbstub implementation that would make integrating it into rd an absolute non-starter*

    *I can already tell that gdbstub is missing a couple protocol extensions (e.g: reading the target's auxv, some filesystem packets, fetching data from thread local storage), though these are all quite straightforward to implement.

    enhancement 
    opened by daniel5151 5
Owner
Sidharth Kshatriya
Passionate about understanding things from the ground up.
Sidharth Kshatriya
A Simple debugger for embedded rust.

This is a debugger for embedded rust code. It is in an early state so it doesn't work for a lot of different microcontrollers.

Niklas 4 Oct 16, 2022
Debugger and interpreter for the M8 pseudo-assembly language

m8db Debugger and interpreter for the M8 pseudo-assembly language. Inspired by gdb or lldb More infos: https://github.com/ah1m1/M8NI Usage: $ ./m8db (

nils 2 Sep 19, 2021
AFLTriage is a tool to triage crashing input files using a debugger.

AFLTriage AFLTriage is a tool to triage crashing input files using a debugger. It is designed to be portable and not require any run-time dependencies

Qualcomm Innovation Center 84 Jan 2, 2023
An experimental GUI for rust-minidump

minidump-debugger An experimental GUI for rust-minidump based on egui. NOTE: if building from source on linux, you may need to install the packages eg

null 27 Jan 2, 2023
An experimental GUI for rust-minidump

minidump-debugger An experimental GUI for rust-minidump based on egui. NOTE: if building from source on linux, you may need to install the packages eg

null 43 Apr 6, 2023
rd is a record/replay debugger written in rust

rd The Record & Debug Tool The Record & Debug Tool (rd) is a Rust language port of the rr-debugger/rr debugger. With rd you can record Linux program e

Sidharth Kshatriya 948 Dec 27, 2022
rd is a record/replay debugger written in rust

rd The Record & Debug Tool The Record & Debug Tool (rd) is a Rust language port of the rr-debugger/rr debugger. With rd you can record Linux program e

Sidharth Kshatriya 947 Dec 8, 2022
Record and Replay Framework

Overview rr is a lightweight tool for recording, replaying and debugging execution of applications (trees of processes and threads). Debugging extends

null 7.6k Jan 1, 2023
Fill Apache Arrow record batches from an ODBC data source in Rust.

arrow-odbc Fill Apache Arrow arrays from ODBC data sources. This crate is build on top of the arrow and odbc-api crate and enables you to read the dat

Markus Klein 21 Dec 27, 2022
below is an interactive tool to view and record historical system data.

A time traveling resource monitor for modern Linux systems

Facebook Incubator 824 Dec 31, 2022
Kooha - Elegantly record your screen

Kooha Elegantly record your screen Capture your screen in a intuitive and straightforward way without distractions. Kooha is a simple screen recorder

Dave Patrick 1.2k Jan 4, 2023
A simple GunZ: The Duel replay examiner

gunz-replay A simple GunZ: The Duel replay examiner - as it is right now, it scans a directory for GunZ replays containing the specified character. Wa

null 5 Apr 20, 2022
Replay git history with some tweaks

Git-replay Overview Git-replay is a simple tool that replays the history of a Git repository but with some tweaks (i.e., it can change the author name

Tak-gun Na 3 Mar 22, 2022
Log agent to replay time-stamped log stream

replayman Log agent to replay time-stamped log stream. Getting started Installation cargo install replayman Prepare for your data TSV with a header li

SpringQL 3 Dec 23, 2022
An event replay tool for the Trento storage backend.

photofinish - a little, handy tool to replay events This tiny CLI tool aims to fulfill the need to replay some events and get fixtures. Photofinish re

null 5 Nov 10, 2022
Replay packets from pcap -file to network interface

pktreplay can be used to read packets from pcap file or interface and write them into interface. By default packets are written with the same rate they have been saved into the pcap file, or, when reading from interface, as fast as they are received.

Jukka Taimisto 3 Nov 23, 2022
RustBoyAdvance-NG is a Nintendo™ Game Boy Advance emulator and debugger, written in the rust programming language.

RustBoyAdvance-NG Nintendo GameBoy Advance ™ emulator and debugger, written in rust. WebAssembly Demo: https://michelhe.github.io/rustboyadvance-ng/ P

MishMish 510 Dec 30, 2022
rsdb, linux debugger written in Rust

rsdb Linux debugger written in Rust Road to version 1.0.0 Basic memory reading / writing ELF binary parsing Entry point Section Symbol Disassembler x8

Younghoo Kim 4 May 2, 2022
A Simple debugger for embedded rust.

This is a debugger for embedded rust code. It is in an early state so it doesn't work for a lot of different microcontrollers.

Niklas 4 Oct 16, 2022
"A light wrapper around rr, the time-travelling debugger

cargo-rr A light wrapper around rr, the time-travelling debugger. Do you find yourself running the same test over and over in the debugger, trying to

Daniel Franklin 123 Dec 7, 2022