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.

Please see LICENSE

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 unfortunately 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
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 esoteric language/compiler written with Rust and Rust LLVM bindings

MeidoLang (メイドラング) A not so useful and esoteric language. The goal of this project was to contain some quirky or novel syntax in a stack-style program

null 0 Dec 24, 2021
A simple password manager written in Rust

ripasso A simple password manager written in Rust. The root crate ripasso is a library for accessing and decrypting passwords stored in pass format (G

Joakim Lundborg 548 Dec 26, 2022
A fast, simple, recursive content discovery tool written in Rust.

A simple, fast, recursive content discovery tool written in Rust ?? Releases ✨ Example Usage ✨ Contributing ✨ Documentation ?? ?? What the heck is a f

epi 3.6k Dec 30, 2022
link is a command and control framework written in rust

link link is a command and control framework written in rust. Currently in alpha. Table of Contents Introduction Features Feedback Build Process Ackno

null 427 Dec 24, 2022
simple multi-threaded port scanner written in rust

knockson simple multi-threaded port scanner written in rust Install Using AUR https://aur.archlinux.org/packages/knockson-bin/ yay -Syu knockson-bin M

Josh Münte 4 Oct 5, 2022
Multi-threaded Padding Oracle attacks against any service. Written in Rust.

rustpad is a multi-threaded successor to the classic padbuster, written in Rust. It abuses a Padding Oracle vulnerability to decrypt any cypher text or encrypt arbitrary plain text without knowing the encryption key!

Kibouo 76 Dec 16, 2022
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.

OpenSK This repository contains a Rust implementation of a FIDO2 authenticator. We developed OpenSK as a Tock OS application. We intend to bring a ful

Google 2.4k Jan 7, 2023
Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients*, perfect for self-hosted deploy

Daniel García 21.5k Jan 8, 2023
An impish, cross-platform binary parsing crate, written in Rust

libgoblin Documentation https://docs.rs/goblin/ changelog Usage Goblin requires rustc 1.40.0. Add to your Cargo.toml [dependencies] goblin = "0.4" Fea

null 891 Dec 29, 2022
Symbolic execution of LLVM IR with an engine written in Rust

haybale: Symbolic execution of LLVM IR, written in Rust haybale is a general-purpose symbolic execution engine written in Rust. It operates on LLVM IR

UCSD PLSysSec 404 Jan 1, 2023
Simple prepender virus written in Rust

Linux.Fe2O3 This is a POC ELF prepender written in Rust. I like writting prependers on languages that I'm learning and find interesting. As for the na

Guilherme Thomazi Bonicontro 91 Dec 9, 2022
(Toy) Compiler Infrastructure influenced by LLVM written in Rust

Sericum Compiler Infrastructure influenced by LLVM written in Rust Do not expect too much stuff! To Do Implement basic block parameters Make it possib

uint256_t 384 Dec 19, 2022
Linux LPE using polkit-1 written in Rust.

CVE-2021-4024-Rust Linux LPE using polkit-1 written in Rust. Build instructions Install rust if you haven't already git clone https://github.com/deoxy

Kevin Pham 1 Feb 3, 2022
A simple allocator written in Rust that manages memory in fixed-size chunks.

Simple Chunk Allocator A simple no_std allocator written in Rust that manages memory in fixed-size chunks/blocks. Useful for basic no_std binaries whe

Philipp Schuster 7 Aug 8, 2022
subscout is a simple, nimble subdomain enumeration tool written in Rust language

subscout is a simple, nimble subdomain enumeration tool written in Rust language. It is designed to help bug bounty hunters, security professionals and penetration testers discover subdomains of a given target domain.

Dom Sec 5 Apr 5, 2023
Attempts to suspend all known AV/EDRs processes on Windows using syscalls and the undocumented NtSuspendProcess API. Made with <3 for pentesters. Written in Rust.

Ronflex Attempts to suspend all known AV/EDRs processes on Windows using syscalls and the undocumented NtSuspendProcess API. Made with <3 for penteste

null 5 Apr 17, 2023
💔 Heartbleed vulnerability exploit written in Rust

Heartbleed ?? Heartbleed vulnerability exploit written in Rust What is it Heartbleed is a buffer over-read vulnerability in outdated versions of OpenS

Gianmatteo Palmieri 4 May 23, 2023
Detects usage of unsafe Rust in a Rust crate and its dependencies.

cargo-geiger ☢️ Looking for maintainer: https://github.com/rust-secure-code/cargo-geiger/issues/210 A program that lists statistics related to the usa

Rust Secure Code Working Group 1.1k Jan 4, 2023