diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 00000000..37db9567 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,18 @@ +freebsd_instance: + image: freebsd-12-0-release-amd64 + +freebsd_task: + name: $TOOLCHAIN x86_64-unknown-freebsd + env: + matrix: + - TOOLCHAIN: stable + - TOOLCHAIN: beta + - TOOLCHAIN: nightly + setup_script: + - pkg install -y curl + - curl https://sh.rustup.rs -sSf --output rustup.sh + - sh rustup.sh -y --default-toolchain $TOOLCHAIN + build_script: + - $HOME/.cargo/bin/rustup run $TOOLCHAIN cargo build --verbose + test_script: + - $HOME/.cargo/bin/rustup run $TOOLCHAIN cargo test --verbose diff --git a/Cargo.lock b/Cargo.lock index 67808d60..abd03554 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22,10 +22,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -38,7 +38,7 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.4.11" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -46,10 +46,11 @@ dependencies = [ [[package]] name = "atty" -version = "0.2.12" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -60,72 +61,109 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "backtrace" -version = "0.3.32" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.30" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "benfred-read-process-memory" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "bindgen" +version = "0.49.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bitflags" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "byteorder" -version = "1.3.2" +name = "build_const" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "c2-chacha" -version = "0.2.2" +name = "byteorder" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "cc" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "cexpr" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cfg-if" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "clang-sys" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "clap" version = "2.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -138,9 +176,9 @@ name = "clicolors-control" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -154,16 +192,16 @@ dependencies = [ [[package]] name = "console" -version = "0.7.7" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -178,6 +216,14 @@ dependencies = [ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crc" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crc32fast" version = "1.2.0" @@ -201,9 +247,9 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -221,13 +267,13 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -237,7 +283,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -246,7 +292,7 @@ name = "failure" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -256,8 +302,8 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -268,13 +314,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "flate2" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide_c_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -288,12 +334,11 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "getrandom" -version = "0.1.6" +name = "fxhash" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -301,7 +346,7 @@ name = "gimli" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -318,7 +363,7 @@ name = "goblin" version = "0.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -358,11 +403,11 @@ name = "indicatif" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -370,18 +415,18 @@ name = "inferno" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-format 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "quick-xml 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", "str_stack 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -410,9 +455,6 @@ dependencies = [ name = "lazy_static" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "lazycell" @@ -421,8 +463,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.59" +version = "0.2.58" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "libloading" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "libproc" @@ -430,7 +481,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -439,7 +490,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -452,15 +503,7 @@ dependencies = [ [[package]] name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "log" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -479,7 +522,7 @@ name = "mach" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -487,7 +530,7 @@ name = "mach" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -497,7 +540,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.2.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -505,7 +548,7 @@ name = "memmap" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -515,12 +558,12 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz_oxide" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -528,13 +571,13 @@ dependencies = [ [[package]] name = "miniz_oxide_c_api" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -545,7 +588,7 @@ dependencies = [ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -554,12 +597,21 @@ name = "nodrop" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "nom" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "num-format" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -579,12 +631,17 @@ dependencies = [ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "numtoa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "object" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -613,22 +670,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "plain" -version = "0.2.3" +name = "peeking_take_while" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "ppv-lite86" -version = "0.2.5" +name = "plain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -641,11 +698,11 @@ dependencies = [ [[package]] name = "proc-maps" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libproc 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -656,24 +713,24 @@ name = "py-spy" version = "0.2.0" dependencies = [ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "cpp_demangle 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "inferno 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "lru 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-maps 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-maps 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "remoteprocess 0.1.0", - "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -690,13 +747,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "derive_more 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quote" -version = "0.6.13" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", @@ -708,7 +765,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -720,18 +777,6 @@ dependencies = [ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "rand_chacha" version = "0.1.1" @@ -741,16 +786,6 @@ dependencies = [ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rand_chacha" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "rand_core" version = "0.3.1" @@ -764,14 +799,6 @@ name = "rand_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "rand_core" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "rand_hc" version = "0.1.0" @@ -780,14 +807,6 @@ dependencies = [ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "rand_isaac" version = "0.1.1" @@ -801,7 +820,7 @@ name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -813,7 +832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -846,24 +865,32 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.56" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "redox_termios" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "regex" -version = "1.1.9" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.8" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -874,18 +901,19 @@ name = "remoteprocess" version = "0.1.0" dependencies = [ "addr2line 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "benfred-read-process-memory 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "benfred-read-process-memory 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)", "gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libproc 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "mach_o_sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "object 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-maps 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-maps 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -940,8 +968,8 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -958,13 +986,13 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "smallvec" -version = "0.6.10" +name = "shlex" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "spin" -version = "0.5.0" +name = "smallvec" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -984,31 +1012,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.18" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.18" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.39" +version = "0.15.36" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1018,20 +1046,20 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tempfile" -version = "3.1.0" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1044,12 +1072,23 @@ dependencies = [ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termion" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1103,11 +1142,25 @@ name = "vec_map" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "version_check" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "which" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi" version = "0.2.8" @@ -1157,38 +1210,42 @@ dependencies = [ [metadata] "checksum addr2line 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "95b06ae5a8a3bae54910c9029a52f83203ce2001c71b10b1faae3a337fee4ab5" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282" +"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" -"checksum atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ecaaea69f52b3b18633611ec0007d188517d0366f47ff703d400fa6879d6f8d5" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" +"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" -"checksum backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)" = "18b50f5258d1a9ad8396d2d345827875de4261b158124d4c819d9b351454fae5" -"checksum backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)" = "5b3a000b9c543553af61bc01cbfc403b04b5caa9e421033866f2e98061eb3e61" -"checksum benfred-read-process-memory 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ed2344e1b25f37dd170ba0d45b58bb8f194207c491bc073370fd6fd3aa158f67" +"checksum backtrace 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)" = "ada4c783bb7e7443c14e0480f429ae2cc99da95065aeab7ee1b81ada0419404f" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum benfred-read-process-memory 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "80b5cbda43632590950a526c7862472d510b30ea38dbacabaaf51259958851bc" +"checksum bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)" = "846a1fba6535362a01487ef6b10f0275faa12e5c5d835c5c1c627aabc46ccbd6" "checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" +"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" "checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101" "checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" +"checksum cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7fa24eb00d5ffab90eaeaf1092ac85c04c64aaf358ea6f84505b8116d24c6af" "checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" +"checksum clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4227269cec09f5f83ff160be12a1e9b0262dd1aa305302d5ba296c2ebd291055" "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8ca57c2c14b8a2bf3105bc9d15574aad80babf6a9c44b1058034cdf8bd169628" +"checksum console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2bf3720d3f3fc30b721ef1ae54e13af3264af4af39dc476a8de56a6ee1e2184b" "checksum cpp_demangle 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d30c0c4ba59fc4951d15cce1b9ba3b448a2b5d601964768fe7cd69c09cc69028" +"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c7dfd2d8b4c82121dfdff120f818e09fc4380b0b7e17a742081a89b94853e87f" "checksum derive_more 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6d944ac6003ed268757ef1ee686753b57efc5fcf0ebe7b64c9fc81e7e32ff839" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" "checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" -"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" "checksum errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1e2b2decb0484e15560df3210cf0d78654bb0864b2c138977c07e377a1bae0e2" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -"checksum flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "550934ad4808d5d39365e5d61727309bf18b3b02c6c56b729cb92e7dd84bc3d8" +"checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -"checksum getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e65cce4e5084b14874c4e7097f38cab54f47ee554f9194673456ea379dcc4c55" +"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "162d18ae5f2e3b90a993d202f1ba17a5633c2484426f8bcae201f86194bacd00" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "7f55d53401eb2fd30afd025c570b1946b6966344acf21b42e31286f3bf89e6a8" @@ -1203,55 +1260,54 @@ dependencies = [ "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff" +"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" +"checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219" "checksum libproc 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "58d23e79d5a9fc3f86a75bcd31a5418f27104518aca33615802b0373380beab4" "checksum libproc 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfacafc8e193a2090dd8716eca0fd2b8116801b692648441c321a88600c96f2" "checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff" -"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c275b6ad54070ac2d665eef9197db647b32239c9d244bfb6f041a766d00da5b3" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum lru 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "276235bb6b60773280b44b65e93815de82da5b6279ef175004fca03f4d06770a" "checksum mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2fd13ee2dd61cc82833ba05ade5a30bb3d63f7ced605ef827063c63078302de9" "checksum mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1" "checksum mach_o_sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3e854583a83f20cf329bb9283366335387f7db59d640d1412167e05fedb98826" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" +"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" "checksum miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9e3ae51cea1576ceba0dde3d484d30e6e5b86dee0b2d412fe3a16a15c98202" -"checksum miniz_oxide 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b6c3756d66cf286314d5f7ebe74886188a9a92f5eee68b06f31ac2b4f314c99d" -"checksum miniz_oxide_c_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5b78ca5446dd9fe0dab00e058731b6b08a8c1d2b9cdb8efb10876e24e9ae2494" +"checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" +"checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" "checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" +"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" "checksum num-format 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465" "checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" "checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" +"checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" "checksum object 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df4af347f5ac3d0e83e78c26be33cd10e8e874dcb68517a909ad802ba50a90b5" "checksum parity-wasm 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "20d7e522a7f994cc4ae32970b1ce0d99ecf91b8e1df080517a26faa6d2e2ee62" "checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7" "checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c" +"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b" "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-maps 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01021db70d4957b30ab3c677260d76d69cf3e19dd4467cd5356179070cdbd36a" +"checksum proc-maps 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f83fdad949003618365cc72532931c709cf68d98cd4310c1286566718abde698" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quick-xml 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a8b2062cd4735d683121dbd525f5961226936229b0ac6bbbc40b34155744a41" -"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e193067942ef6f485a349a113329140d0ab9e2168ce92274499bb0e9a4190d9d" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" -"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad" -"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21" +"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" +"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0b2f0808e7d7e4fb1cb07feb6ff2f4bc827938f24f8c2e6a3beb7370af544bdd" +"checksum regex-syntax 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d76410686f9e3a17f06128962e0ecc5755870bb890c34820c7af7f1db2e1d48" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" "checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92" "checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" @@ -1262,17 +1318,18 @@ dependencies = [ "checksum scroll_derive 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8f1aa96c45e7f5a91cb7fabe7b279f02fea7126239fc40b732316e8b6a2d0fcb" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" "checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" -"checksum spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum str_stack 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" -"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" -"checksum syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c" +"checksum structopt 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fa19a5a708e22bb5be31c1b6108a2a902f909c4b9ba85cba44c06632386bc0ff" +"checksum structopt-derive 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)" = "c6d59d0ae8ef8de16e49e3ca7afa16024a3e0dfd974a75ef93fdc5464e34523f" +"checksum syn 0.15.36 (registry+https://github.com/rust-lang/crates.io-index)" = "8b4f551a91e2e3848aeef8751d0d4eec9489b6474c720fd4c55958d8d31a430c" "checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" -"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +"checksum tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7dc4738f2e68ed2855de5ac9cdbe05c9216773ecde4739b2f095002ab03a13ef" "checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" +"checksum termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" @@ -1283,7 +1340,9 @@ dependencies = [ "checksum utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9d50aa7650df78abf942826607c62468ce18d9019673d4a2ebe1865dbb96ffde" "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/Cargo.toml b/Cargo.toml index c4632ffe..94b8083b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ log = "0.4" lru = "0.1.15" regex = "1" tempfile = "3.0.3" -proc-maps = "0.1" +proc-maps = "0.1.6" memmap = "0.7.0" cpp_demangle = "0.2.12" rand = "0.6" diff --git a/remoteprocess/Cargo.lock b/remoteprocess/Cargo.lock index 92d4eb01..38c16114 100644 --- a/remoteprocess/Cargo.lock +++ b/remoteprocess/Cargo.lock @@ -11,8 +11,8 @@ dependencies = [ "intervaltree 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "object 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -22,15 +22,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" -version = "0.7.4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "ansi_term" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "arrayvec" -version = "0.4.11" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -38,92 +46,167 @@ dependencies = [ [[package]] name = "atty" -version = "0.2.12" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "autocfg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.32" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.30" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "benfred-read-process-memory" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "bindgen" +version = "0.49.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bitflags" -version = "1.1.0" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "build_const" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.3.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.37" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "cexpr" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cfg-if" -version = "0.1.9" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "clang-sys" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "clap" +version = "2.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "cpp_demangle" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crc" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crc32fast" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "env_logger" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -132,7 +215,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -141,7 +224,7 @@ name = "failure" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -150,10 +233,10 @@ name = "failure_derive" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -163,13 +246,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "flate2" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide_c_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -177,8 +268,8 @@ name = "gimli" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -194,7 +285,7 @@ name = "goblin" version = "0.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -217,7 +308,7 @@ name = "intervaltree" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -241,41 +332,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.59" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "libproc" -version = "0.3.2" +name = "libloading" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libproc" -version = "0.4.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "log" -version = "0.3.9" +name = "libproc" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -283,7 +375,7 @@ name = "mach" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -291,7 +383,7 @@ name = "mach" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -301,7 +393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.2.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -309,22 +401,22 @@ name = "memmap" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz-sys" -version = "0.1.12" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz_oxide" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -332,13 +424,13 @@ dependencies = [ [[package]] name = "miniz_oxide_c_api" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -346,10 +438,10 @@ name = "nix" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -358,12 +450,21 @@ name = "nodrop" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "nom" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "object" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -375,6 +476,11 @@ name = "parity-wasm" version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "plain" version = "0.2.3" @@ -382,7 +488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.30" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -390,11 +496,11 @@ dependencies = [ [[package]] name = "proc-maps" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libproc 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -407,27 +513,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.13" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "redox_syscall" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "redox_termios" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "1.1.9" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.8" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -438,25 +557,26 @@ name = "remoteprocess" version = "0.1.0" dependencies = [ "addr2line 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "benfred-read-process-memory 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "benfred-read-process-memory 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libproc 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "mach_o_sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "object 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-maps 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-maps 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-demangle" -version = "0.1.15" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -481,9 +601,9 @@ name = "scroll_derive" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -499,9 +619,14 @@ name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "smallvec" -version = "0.6.10" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -509,35 +634,58 @@ name = "stable_deref_trait" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "syn" -version = "0.15.39" +version = "0.15.30" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "synstructure" -version = "0.10.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "termcolor" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termion" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "thread_local" version = "0.3.6" @@ -551,6 +699,11 @@ name = "ucd-util" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unicode-width" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "unicode-xid" version = "0.1.0" @@ -558,7 +711,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "utf8-ranges" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -566,11 +719,30 @@ name = "uuid" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "vec_map" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "version_check" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "which" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi" version = "0.2.8" @@ -620,24 +792,33 @@ dependencies = [ [metadata] "checksum addr2line 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "95b06ae5a8a3bae54910c9029a52f83203ce2001c71b10b1faae3a337fee4ab5" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282" -"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" -"checksum atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ecaaea69f52b3b18633611ec0007d188517d0366f47ff703d400fa6879d6f8d5" -"checksum backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)" = "18b50f5258d1a9ad8396d2d345827875de4261b158124d4c819d9b351454fae5" -"checksum backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)" = "5b3a000b9c543553af61bc01cbfc403b04b5caa9e421033866f2e98061eb3e61" -"checksum benfred-read-process-memory 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ed2344e1b25f37dd170ba0d45b58bb8f194207c491bc073370fd6fd3aa158f67" -"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" -"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" -"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" +"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" +"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" +"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" +"checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum benfred-read-process-memory 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "80b5cbda43632590950a526c7862472d510b30ea38dbacabaaf51259958851bc" +"checksum bindgen 0.49.2 (registry+https://github.com/rust-lang/crates.io-index)" = "846a1fba6535362a01487ef6b10f0275faa12e5c5d835c5c1c627aabc46ccbd6" +"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" +"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" +"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" +"checksum cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "30f813bf45048a18eda9190fd3c6b78644146056740c43172a5a3699118588fd" +"checksum cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7fa24eb00d5ffab90eaeaf1092ac85c04c64aaf358ea6f84505b8116d24c6af" +"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" +"checksum clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4227269cec09f5f83ff160be12a1e9b0262dd1aa305302d5ba296c2ebd291055" +"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum cpp_demangle 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d30c0c4ba59fc4951d15cce1b9ba3b448a2b5d601964768fe7cd69c09cc69028" +"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" -"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" "checksum errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1e2b2decb0484e15560df3210cf0d78654bb0864b2c138977c07e377a1bae0e2" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fallible-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -"checksum flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "550934ad4808d5d39365e5d61727309bf18b3b02c6c56b729cb92e7dd84bc3d8" +"checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" +"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum gimli 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "162d18ae5f2e3b90a993d202f1ba17a5633c2484426f8bcae201f86194bacd00" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum goblin 0.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "7f55d53401eb2fd30afd025c570b1946b6966344acf21b42e31286f3bf89e6a8" @@ -647,47 +828,59 @@ dependencies = [ "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff" +"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" +"checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219" "checksum libproc 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "58d23e79d5a9fc3f86a75bcd31a5418f27104518aca33615802b0373380beab4" "checksum libproc 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfacafc8e193a2090dd8716eca0fd2b8116801b692648441c321a88600c96f2" -"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c275b6ad54070ac2d665eef9197db647b32239c9d244bfb6f041a766d00da5b3" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2fd13ee2dd61cc82833ba05ade5a30bb3d63f7ced605ef827063c63078302de9" "checksum mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1" "checksum mach_o_sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3e854583a83f20cf329bb9283366335387f7db59d640d1412167e05fedb98826" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" +"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -"checksum miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9e3ae51cea1576ceba0dde3d484d30e6e5b86dee0b2d412fe3a16a15c98202" -"checksum miniz_oxide 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b6c3756d66cf286314d5f7ebe74886188a9a92f5eee68b06f31ac2b4f314c99d" -"checksum miniz_oxide_c_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5b78ca5446dd9fe0dab00e058731b6b08a8c1d2b9cdb8efb10876e24e9ae2494" +"checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" +"checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" +"checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" "checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" +"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" "checksum object 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df4af347f5ac3d0e83e78c26be33cd10e8e874dcb68517a909ad802ba50a90b5" "checksum parity-wasm 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "20d7e522a7f994cc4ae32970b1ce0d99ecf91b8e1df080517a26faa6d2e2ee62" +"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-maps 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01021db70d4957b30ab3c677260d76d69cf3e19dd4467cd5356179070cdbd36a" +"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" +"checksum proc-maps 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f83fdad949003618365cc72532931c709cf68d98cd4310c1286566718abde698" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad" -"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21" -"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" +"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" +"checksum redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)" = "d32b3053e5ced86e4bc0411fec997389532bf56b000e66cb4884eeeb41413d69" +"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "559008764a17de49a3146b234641644ed37d118d1ef641a0bb573d146edc6ce0" +"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2f84d114ef17fd144153d608fba7c446b0145d038985e7a8cc5d08bb0ce20383" "checksum scroll_derive 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8f1aa96c45e7f5a91cb7fabe7b279f02fea7126239fc40b732316e8b6a2d0fcb" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" +"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c" -"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" -"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" +"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +"checksum syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)" = "66c8865bf5a7cbb662d8b011950060b3c8743dca141b054bf7195b20d314d8e2" +"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" +"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" +"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" +"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" +"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9d50aa7650df78abf942826607c62468ce18d9019673d4a2ebe1865dbb96ffde" +"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/remoteprocess/Cargo.toml b/remoteprocess/Cargo.toml index 3004611e..bafe87c5 100644 --- a/remoteprocess/Cargo.toml +++ b/remoteprocess/Cargo.toml @@ -13,8 +13,8 @@ build="build.rs" gimli = "0.19.0" libc = "0.2" log = "0.4" -proc-maps = "0.1.5" -benfred-read-process-memory = "0.1.3" +proc-maps = "0.1.6" +benfred-read-process-memory = "0.1.4" goblin = "0.0.22" memmap = "0.7.0" @@ -32,4 +32,7 @@ addr2line = "0.10" winapi = {version = "0.3", features = ["winbase", "consoleapi", "wincon", "handleapi", "timeapi", "processenv" ]} [dev-dependencies] -env_logger = "0.6" +env_logger = "0.6.1" + +[build-dependencies] +bindgen = "0.49.0" diff --git a/remoteprocess/src/freebsd/kinfo_proc.rs b/remoteprocess/src/freebsd/kinfo_proc.rs new file mode 100644 index 00000000..d483b1f5 --- /dev/null +++ b/remoteprocess/src/freebsd/kinfo_proc.rs @@ -0,0 +1,1750 @@ +/* automatically generated by rust-bindgen */ +#![allow(dead_code)] +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] +#![allow(improper_ctypes)] +#![allow(clippy::useless_transmute)] +#![allow(clippy::default_trait_access)] +#![allow(clippy::cast_lossless)] +#![allow(clippy::trivially_copy_pass_by_ref)] + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + storage: Storage, + align: [Align; 0], +} +impl __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + #[inline] + pub fn new(storage: Storage) -> Self { + Self { storage, align: [] } + } + #[inline] + pub fn get_bit(&self, index: usize) -> bool { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = self.storage.as_ref()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + byte & mask == mask + } + #[inline] + pub fn set_bit(&mut self, index: usize, val: bool) { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = &mut self.storage.as_mut()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + if val { + *byte |= mask; + } else { + *byte &= !mask; + } + } + #[inline] + pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if self.get_bit(i + bit_offset) { + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + val |= 1 << index; + } + } + val + } + #[inline] + pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + for i in 0..(bit_width as usize) { + let mask = 1 << i; + let val_bit_is_set = val & mask == mask; + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + self.set_bit(index + bit_offset, val_bit_is_set); + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { + #[inline] + pub fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) + } + #[inline] + pub unsafe fn as_ptr(&self) -> *const T { + ::std::mem::transmute(self) + } + #[inline] + pub unsafe fn as_mut_ptr(&mut self) -> *mut T { + ::std::mem::transmute(self) + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::std::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl ::std::fmt::Debug for __IncompleteArrayField { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +impl ::std::clone::Clone for __IncompleteArrayField { + #[inline] + fn clone(&self) -> Self { + Self::new() + } +} +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_long; +pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __register_t = __int64_t; +pub type __segsz_t = __int64_t; +pub type __size_t = __uint64_t; +pub type __time_t = __int64_t; +pub type __uintptr_t = __uint64_t; +pub type __vm_offset_t = __uint64_t; +pub type __vm_size_t = __uint64_t; +pub type __gid_t = __uint32_t; +pub type __lwpid_t = __int32_t; +pub type __off_t = __int64_t; +pub type __pid_t = __int32_t; +pub type __rlim_t = __int64_t; +pub type __suseconds_t = ::std::os::raw::c_long; +pub type __uid_t = __uint32_t; +pub type __fixpt_t = __uint32_t; +pub type u_char = ::std::os::raw::c_uchar; +pub type u_short = ::std::os::raw::c_ushort; +pub type u_int = ::std::os::raw::c_uint; +pub type u_long = ::std::os::raw::c_ulong; +pub type u_int64_t = __uint64_t; +pub type caddr_t = *mut ::std::os::raw::c_char; +pub type fixpt_t = __fixpt_t; +pub type gid_t = __gid_t; +pub type lwpid_t = __lwpid_t; +pub type off_t = __off_t; +pub type pid_t = __pid_t; +pub type register_t = __register_t; +pub type rlim_t = __rlim_t; +pub type sbintime_t = __int64_t; +pub type segsz_t = __segsz_t; +pub type suseconds_t = __suseconds_t; +pub type time_t = __time_t; +pub type uid_t = __uid_t; +pub type cap_rights_t = cap_rights; +pub type vm_offset_t = __vm_offset_t; +pub type vm_ooffset_t = __int64_t; +pub type vm_size_t = __vm_size_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sigset { + pub __bits: [__uint32_t; 4usize], +} +pub type __sigset_t = __sigset; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, +} +pub type sigset_t = __sigset_t; +pub type __sighandler_t = ::std::option::Option; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { + pub sival_int: ::std::os::raw::c_int, + pub sival_ptr: *mut ::std::os::raw::c_void, + pub sigval_int: ::std::os::raw::c_int, + pub sigval_ptr: *mut ::std::os::raw::c_void, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __siginfo { + pub si_signo: ::std::os::raw::c_int, + pub si_errno: ::std::os::raw::c_int, + pub si_code: ::std::os::raw::c_int, + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_status: ::std::os::raw::c_int, + pub si_addr: *mut ::std::os::raw::c_void, + pub si_value: sigval, + pub _reason: __siginfo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __siginfo__bindgen_ty_1 { + pub _fault: __siginfo__bindgen_ty_1__bindgen_ty_1, + pub _timer: __siginfo__bindgen_ty_1__bindgen_ty_2, + pub _mesgq: __siginfo__bindgen_ty_1__bindgen_ty_3, + pub _poll: __siginfo__bindgen_ty_1__bindgen_ty_4, + pub __spare__: __siginfo__bindgen_ty_1__bindgen_ty_5, + _bindgen_union_align: [u64; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __siginfo__bindgen_ty_1__bindgen_ty_1 { + pub _trapno: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __siginfo__bindgen_ty_1__bindgen_ty_2 { + pub _timerid: ::std::os::raw::c_int, + pub _overrun: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __siginfo__bindgen_ty_1__bindgen_ty_3 { + pub _mqd: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __siginfo__bindgen_ty_1__bindgen_ty_4 { + pub _band: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __siginfo__bindgen_ty_1__bindgen_ty_5 { + pub __spare1__: ::std::os::raw::c_long, + pub __spare2__: [::std::os::raw::c_int; 7usize], +} +pub type siginfo_t = __siginfo; +pub type sig_t = __sighandler_t; +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigaltstack { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_size: __size_t, + pub ss_flags: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fpacc87 { + pub fp_bytes: [u8; 10usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xmmacc { + pub xmm_bytes: [u8; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct envxmm { + pub en_cw: u16, + pub en_sw: u16, + pub en_tw: u8, + pub en_zero: u8, + pub en_opcode: u16, + pub en_rip: u64, + pub en_rdp: u64, + pub en_mxcsr: u32, + pub en_mxcsr_mask: u32, +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct savefpu { + pub sv_env: envxmm, + pub sv_fp: [savefpu__bindgen_ty_1; 8usize], + pub sv_xmm: [xmmacc; 16usize], + pub sv_pad: [u8; 96usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct savefpu__bindgen_ty_1 { + pub fp_acc: fpacc87, + pub fp_pad: [u8; 6usize], +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct system_segment_descriptor { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize], u64>, +} +impl system_segment_descriptor { + #[inline] + pub fn sd_lolimit(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) } + } + #[inline] + pub fn set_sd_lolimit(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn sd_lobase(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 24u8) as u64) } + } + #[inline] + pub fn set_sd_lobase(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 24u8, val as u64) + } + } + #[inline] + pub fn sd_type(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 5u8) as u64) } + } + #[inline] + pub fn set_sd_type(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(40usize, 5u8, val as u64) + } + } + #[inline] + pub fn sd_dpl(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(45usize, 2u8) as u64) } + } + #[inline] + pub fn set_sd_dpl(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(45usize, 2u8, val as u64) + } + } + #[inline] + pub fn sd_p(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u64) } + } + #[inline] + pub fn set_sd_p(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(47usize, 1u8, val as u64) + } + } + #[inline] + pub fn sd_hilimit(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(48usize, 4u8) as u64) } + } + #[inline] + pub fn set_sd_hilimit(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(48usize, 4u8, val as u64) + } + } + #[inline] + pub fn sd_xx0(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 3u8) as u64) } + } + #[inline] + pub fn set_sd_xx0(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(52usize, 3u8, val as u64) + } + } + #[inline] + pub fn sd_gran(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(55usize, 1u8) as u64) } + } + #[inline] + pub fn set_sd_gran(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(55usize, 1u8, val as u64) + } + } + #[inline] + pub fn sd_hibase(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 40u8) as u64) } + } + #[inline] + pub fn set_sd_hibase(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(64usize, 40u8, val as u64) + } + } + #[inline] + pub fn sd_xx1(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(104usize, 8u8) as u64) } + } + #[inline] + pub fn set_sd_xx1(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(104usize, 8u8, val as u64) + } + } + #[inline] + pub fn sd_mbz(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(112usize, 5u8) as u64) } + } + #[inline] + pub fn set_sd_mbz(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(112usize, 5u8, val as u64) + } + } + #[inline] + pub fn sd_xx2(&self) -> u_int64_t { + unsafe { ::std::mem::transmute(self._bitfield_1.get(128usize, 19u8) as u64) } + } + #[inline] + pub fn set_sd_xx2(&mut self, val: u_int64_t) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(128usize, 19u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + sd_lolimit: u_int64_t, + sd_lobase: u_int64_t, + sd_type: u_int64_t, + sd_dpl: u_int64_t, + sd_p: u_int64_t, + sd_hilimit: u_int64_t, + sd_xx0: u_int64_t, + sd_gran: u_int64_t, + sd_hibase: u_int64_t, + sd_xx1: u_int64_t, + sd_mbz: u_int64_t, + sd_xx2: u_int64_t, + ) -> __BindgenBitfieldUnit<[u8; 24usize], u64> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize], u64> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let sd_lolimit: u64 = unsafe { ::std::mem::transmute(sd_lolimit) }; + sd_lolimit as u64 + }); + __bindgen_bitfield_unit.set(16usize, 24u8, { + let sd_lobase: u64 = unsafe { ::std::mem::transmute(sd_lobase) }; + sd_lobase as u64 + }); + __bindgen_bitfield_unit.set(40usize, 5u8, { + let sd_type: u64 = unsafe { ::std::mem::transmute(sd_type) }; + sd_type as u64 + }); + __bindgen_bitfield_unit.set(45usize, 2u8, { + let sd_dpl: u64 = unsafe { ::std::mem::transmute(sd_dpl) }; + sd_dpl as u64 + }); + __bindgen_bitfield_unit.set(47usize, 1u8, { + let sd_p: u64 = unsafe { ::std::mem::transmute(sd_p) }; + sd_p as u64 + }); + __bindgen_bitfield_unit.set(48usize, 4u8, { + let sd_hilimit: u64 = unsafe { ::std::mem::transmute(sd_hilimit) }; + sd_hilimit as u64 + }); + __bindgen_bitfield_unit.set(52usize, 3u8, { + let sd_xx0: u64 = unsafe { ::std::mem::transmute(sd_xx0) }; + sd_xx0 as u64 + }); + __bindgen_bitfield_unit.set(55usize, 1u8, { + let sd_gran: u64 = unsafe { ::std::mem::transmute(sd_gran) }; + sd_gran as u64 + }); + __bindgen_bitfield_unit.set(64usize, 40u8, { + let sd_hibase: u64 = unsafe { ::std::mem::transmute(sd_hibase) }; + sd_hibase as u64 + }); + __bindgen_bitfield_unit.set(104usize, 8u8, { + let sd_xx1: u64 = unsafe { ::std::mem::transmute(sd_xx1) }; + sd_xx1 as u64 + }); + __bindgen_bitfield_unit.set(112usize, 5u8, { + let sd_mbz: u64 = unsafe { ::std::mem::transmute(sd_mbz) }; + sd_mbz as u64 + }); + __bindgen_bitfield_unit.set(128usize, 19u8, { + let sd_xx2: u64 = unsafe { ::std::mem::transmute(sd_xx2) }; + sd_xx2 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct region_descriptor { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize], u64>, +} +impl region_descriptor { + #[inline] + pub fn rd_limit(&self) -> u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) } + } + #[inline] + pub fn set_rd_limit(&mut self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn rd_base(&self) -> u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 64u8) as u64) } + } + #[inline] + pub fn set_rd_base(&mut self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(64usize, 64u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + rd_limit: u64, + rd_base: u64, + ) -> __BindgenBitfieldUnit<[u8; 16usize], u64> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize], u64> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let rd_limit: u64 = unsafe { ::std::mem::transmute(rd_limit) }; + rd_limit as u64 + }); + __bindgen_bitfield_unit.set(64usize, 64u8, { + let rd_base: u64 = unsafe { ::std::mem::transmute(rd_base) }; + rd_base as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcb { + pub pcb_r15: register_t, + pub pcb_r14: register_t, + pub pcb_r13: register_t, + pub pcb_r12: register_t, + pub pcb_rbp: register_t, + pub pcb_rsp: register_t, + pub pcb_rbx: register_t, + pub pcb_rip: register_t, + pub pcb_fsbase: register_t, + pub pcb_gsbase: register_t, + pub pcb_kgsbase: register_t, + pub pcb_cr0: register_t, + pub pcb_cr2: register_t, + pub pcb_cr3: register_t, + pub pcb_cr4: register_t, + pub pcb_dr0: register_t, + pub pcb_dr1: register_t, + pub pcb_dr2: register_t, + pub pcb_dr3: register_t, + pub pcb_dr6: register_t, + pub pcb_dr7: register_t, + pub pcb_gdt: region_descriptor, + pub pcb_idt: region_descriptor, + pub pcb_ldt: region_descriptor, + pub pcb_tr: u16, + pub pcb_flags: u_int, + pub pcb_initial_fpucw: u16, + pub pcb_onfault: caddr_t, + pub pcb_saved_ucr3: u64, + pub pcb_tssp: *mut amd64tss, + pub pcb_efer: register_t, + pub pcb_star: register_t, + pub pcb_lstar: register_t, + pub pcb_cstar: register_t, + pub pcb_sfmask: register_t, + pub pcb_save: *mut savefpu, + pub pcb_pad: [u64; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { + pub it_interval: timeval, + pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: ::std::os::raw::c_long, + pub ru_ixrss: ::std::os::raw::c_long, + pub ru_idrss: ::std::os::raw::c_long, + pub ru_isrss: ::std::os::raw::c_long, + pub ru_minflt: ::std::os::raw::c_long, + pub ru_majflt: ::std::os::raw::c_long, + pub ru_nswap: ::std::os::raw::c_long, + pub ru_inblock: ::std::os::raw::c_long, + pub ru_oublock: ::std::os::raw::c_long, + pub ru_msgsnd: ::std::os::raw::c_long, + pub ru_msgrcv: ::std::os::raw::c_long, + pub ru_nsignals: ::std::os::raw::c_long, + pub ru_nvcsw: ::std::os::raw::c_long, + pub ru_nivcsw: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lock_object { + pub lo_name: *const ::std::os::raw::c_char, + pub lo_flags: u_int, + pub lo_data: u_int, + pub lo_witness: *mut witness, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mtx { + pub lock_object: lock_object, + pub mtx_lock: usize, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct callout { + pub c_links: callout__bindgen_ty_1, + pub c_time: sbintime_t, + pub c_precision: sbintime_t, + pub c_arg: *mut ::std::os::raw::c_void, + pub c_func: ::std::option::Option, + pub c_lock: *mut lock_object, + pub c_flags: ::std::os::raw::c_short, + pub c_iflags: ::std::os::raw::c_short, + pub c_cpu: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union callout__bindgen_ty_1 { + pub le: callout__bindgen_ty_1__bindgen_ty_1, + pub sle: callout__bindgen_ty_1__bindgen_ty_2, + pub tqe: callout__bindgen_ty_1__bindgen_ty_3, + _bindgen_union_align: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct callout__bindgen_ty_1__bindgen_ty_1 { + pub le_next: *mut callout, + pub le_prev: *mut *mut callout, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct callout__bindgen_ty_1__bindgen_ty_2 { + pub sle_next: *mut callout, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct callout__bindgen_ty_1__bindgen_ty_3 { + pub tqe_next: *mut callout, + pub tqe_prev: *mut *mut callout, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct knote { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct klist { + pub slh_first: *mut knote, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kqueue { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kqlist { + pub tqh_first: *mut kqueue, + pub tqh_last: *mut *mut kqueue, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct knlist { + pub kl_list: klist, + pub kl_lock: ::std::option::Option, + pub kl_unlock: ::std::option::Option, + pub kl_assert_locked: + ::std::option::Option, + pub kl_assert_unlocked: + ::std::option::Option, + pub kl_lockarg: *mut ::std::os::raw::c_void, + pub kl_autodestroy: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cv { + pub cv_description: *const ::std::os::raw::c_char, + pub cv_waiters: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cap_rights { + pub cr_rights: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lock_list_entry { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct priority { + pub pri_class: u_char, + pub pri_level: u_char, + pub pri_native: u_char, + pub pri_user: u_char, +} +pub type seq_t = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sx { + pub lock_object: lock_object, + pub sx_lock: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filecaps { + pub fc_rights: cap_rights_t, + pub fc_ioctls: *mut u_long, + pub fc_nioctls: i16, + pub fc_fcntls: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filedescent { + pub fde_file: *mut file, + pub fde_caps: filecaps, + pub fde_flags: u8, + pub fde_seq: seq_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct fdescenttbl { + pub fdt_nfiles: ::std::os::raw::c_int, + pub fdt_ofiles: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filedesc { + pub fd_files: *mut fdescenttbl, + pub fd_cdir: *mut vnode, + pub fd_rdir: *mut vnode, + pub fd_jdir: *mut vnode, + pub fd_map: *mut u_long, + pub fd_lastfile: ::std::os::raw::c_int, + pub fd_freefile: ::std::os::raw::c_int, + pub fd_cmask: u_short, + pub fd_refcnt: ::std::os::raw::c_int, + pub fd_holdcnt: ::std::os::raw::c_int, + pub fd_sx: sx, + pub fd_kqlist: kqlist, + pub fd_holdleaderscount: ::std::os::raw::c_int, + pub fd_holdleaderswakeup: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filedesc_to_leader { + pub fdl_refcount: ::std::os::raw::c_int, + pub fdl_holdcount: ::std::os::raw::c_int, + pub fdl_wakeup: ::std::os::raw::c_int, + pub fdl_leader: *mut proc_, + pub fdl_prev: *mut filedesc_to_leader, + pub fdl_next: *mut filedesc_to_leader, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lock_profile_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lpohead { + pub lh_first: *mut lock_profile_object, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct osd { + pub osd_nslots: u_int, + pub osd_slots: *mut *mut ::std::os::raw::c_void, + pub osd_next: osd__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct osd__bindgen_ty_1 { + pub le_next: *mut osd, + pub le_prev: *mut *mut osd, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigio { + pub sio_u: sigio__bindgen_ty_1, + pub sio_pgsigio: sigio__bindgen_ty_2, + pub sio_myref: *mut *mut sigio, + pub sio_ucred: *mut ucred, + pub sio_pgid: pid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigio__bindgen_ty_1 { + pub siu_proc: *mut proc_, + pub siu_pgrp: *mut pgrp, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigio__bindgen_ty_2 { + pub sle_next: *mut sigio, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigiolst { + pub slh_first: *mut sigio, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigacts { + pub ps_sigact: [sig_t; 128usize], + pub ps_catchmask: [sigset_t; 128usize], + pub ps_sigonstack: sigset_t, + pub ps_sigintr: sigset_t, + pub ps_sigreset: sigset_t, + pub ps_signodefer: sigset_t, + pub ps_siginfo: sigset_t, + pub ps_sigignore: sigset_t, + pub ps_sigcatch: sigset_t, + pub ps_freebsd4: sigset_t, + pub ps_osigset: sigset_t, + pub ps_usertramp: sigset_t, + pub ps_flag: ::std::os::raw::c_int, + pub ps_refcnt: u_int, + pub ps_mtx: mtx, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ksiginfo { + pub ksi_link: ksiginfo__bindgen_ty_1, + pub ksi_info: siginfo_t, + pub ksi_flags: ::std::os::raw::c_int, + pub ksi_sigq: *mut sigqueue, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ksiginfo__bindgen_ty_1 { + pub tqe_next: *mut ksiginfo, + pub tqe_prev: *mut *mut ksiginfo, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigqueue { + pub sq_signals: sigset_t, + pub sq_kill: sigset_t, + pub sq_ptrace: sigset_t, + pub sq_list: sigqueue__bindgen_ty_1, + pub sq_proc: *mut proc_, + pub sq_flags: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigqueue__bindgen_ty_1 { + pub tqh_first: *mut ksiginfo, + pub tqh_last: *mut *mut ksiginfo, +} +pub type sigqueue_t = sigqueue; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct domainset { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct domainset_ref { + pub dr_policy: *mut domainset, + pub dr_iter: ::std::os::raw::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc_ldt { + pub ldt_base: caddr_t, + pub ldt_refcnt: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap_invl_gen { + pub gen: u_long, + pub link: pmap_invl_gen__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap_invl_gen__bindgen_ty_1 { + pub le_next: *mut pmap_invl_gen, + pub le_prev: *mut *mut pmap_invl_gen, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mdthread { + pub md_spinlock_count: ::std::os::raw::c_int, + pub md_saved_flags: register_t, + pub md_spurflt_addr: register_t, + pub md_invl_gen: pmap_invl_gen, + pub md_efirt_tmp: register_t, + pub md_efirt_dis_pf: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mdproc { + pub md_ldt: *mut proc_ldt, + pub md_ldt_sd: system_segment_descriptor, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct syscall_args { + pub code: u_int, + pub callp: *mut sysent, + pub args: [register_t; 8usize], + pub narg: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct session { + pub s_count: u_int, + pub s_leader: *mut proc_, + pub s_ttyvp: *mut vnode, + pub s_ttydp: *mut cdev_priv, + pub s_ttyp: *mut tty, + pub s_sid: pid_t, + pub s_login: [::std::os::raw::c_char; 40usize], + pub s_mtx: mtx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pgrp { + pub pg_hash: pgrp__bindgen_ty_1, + pub pg_members: pgrp__bindgen_ty_2, + pub pg_session: *mut session, + pub pg_sigiolst: sigiolst, + pub pg_id: pid_t, + pub pg_jobc: ::std::os::raw::c_int, + pub pg_mtx: mtx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pgrp__bindgen_ty_1 { + pub le_next: *mut pgrp, + pub le_prev: *mut *mut pgrp, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pgrp__bindgen_ty_2 { + pub lh_first: *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pargs { + pub ar_ref: u_int, + pub ar_length: u_int, + pub ar_args: [u_char; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuset { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filemon { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kaioinfo { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kaudit_record { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kdtrace_proc { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kdtrace_thread { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mqueue_notifier { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlminfo { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct procdesc { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct racct { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sleepqueue { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trapframe { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct turnstile { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_ext { + pub rux_runtime: u64, + pub rux_uticks: u64, + pub rux_sticks: u64, + pub rux_iticks: u64, + pub rux_uu: u64, + pub rux_su: u64, + pub rux_tu: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct thread { + pub td_lock: *mut mtx, + pub td_proc: *mut proc_, + pub td_plist: thread__bindgen_ty_1, + pub td_runq: thread__bindgen_ty_2, + pub td_slpq: thread__bindgen_ty_3, + pub td_lockq: thread__bindgen_ty_4, + pub td_hash: thread__bindgen_ty_5, + pub td_cpuset: *mut cpuset, + pub td_domain: domainset_ref, + pub td_sel: *mut seltd, + pub td_sleepqueue: *mut sleepqueue, + pub td_turnstile: *mut turnstile, + pub td_rlqe: *mut rl_q_entry, + pub td_umtxq: *mut umtx_q, + pub td_tid: lwpid_t, + pub td_sigqueue: sigqueue_t, + pub td_lend_user_pri: u_char, + pub td_epochnest: u_char, + pub td_flags: ::std::os::raw::c_int, + pub td_inhibitors: ::std::os::raw::c_int, + pub td_pflags: ::std::os::raw::c_int, + pub td_dupfd: ::std::os::raw::c_int, + pub td_sqqueue: ::std::os::raw::c_int, + pub td_wchan: *mut ::std::os::raw::c_void, + pub td_wmesg: *const ::std::os::raw::c_char, + pub td_owepreempt: u_char, + pub td_tsqueue: u_char, + pub td_locks: ::std::os::raw::c_short, + pub td_rw_rlocks: ::std::os::raw::c_short, + pub td_sx_slocks: ::std::os::raw::c_short, + pub td_lk_slocks: ::std::os::raw::c_short, + pub td_stopsched: ::std::os::raw::c_short, + pub td_blocked: *mut turnstile, + pub td_lockname: *const ::std::os::raw::c_char, + pub td_contested: thread__bindgen_ty_6, + pub td_sleeplocks: *mut lock_list_entry, + pub td_intr_nesting_level: ::std::os::raw::c_int, + pub td_pinned: ::std::os::raw::c_int, + pub td_ucred: *mut ucred, + pub td_limit: *mut plimit, + pub td_slptick: ::std::os::raw::c_int, + pub td_blktick: ::std::os::raw::c_int, + pub td_swvoltick: ::std::os::raw::c_int, + pub td_swinvoltick: ::std::os::raw::c_int, + pub td_cow: u_int, + pub td_ru: rusage, + pub td_rux: rusage_ext, + pub td_incruntime: u64, + pub td_runtime: u64, + pub td_pticks: u_int, + pub td_sticks: u_int, + pub td_iticks: u_int, + pub td_uticks: u_int, + pub td_intrval: ::std::os::raw::c_int, + pub td_oldsigmask: sigset_t, + pub td_generation: u_int, + pub td_sigstk: stack_t, + pub td_xsig: ::std::os::raw::c_int, + pub td_profil_addr: u_long, + pub td_profil_ticks: u_int, + pub td_name: [::std::os::raw::c_char; 20usize], + pub td_fpop: *mut file, + pub td_dbgflags: ::std::os::raw::c_int, + pub td_si: siginfo_t, + pub td_ng_outbound: ::std::os::raw::c_int, + pub td_osd: osd, + pub td_map_def_user: *mut vm_map_entry, + pub td_dbg_forked: pid_t, + pub td_vp_reserv: u_int, + pub td_no_sleeping: ::std::os::raw::c_int, + pub td_su: *mut ::std::os::raw::c_void, + pub td_sleeptimo: sbintime_t, + pub td_rtcgen: ::std::os::raw::c_int, + pub td_vslock_sz: usize, + pub td_sigmask: sigset_t, + pub td_rqindex: u_char, + pub td_base_pri: u_char, + pub td_priority: u_char, + pub td_pri_class: u_char, + pub td_user_pri: u_char, + pub td_base_user_pri: u_char, + pub td_pre_epoch_prio: u_char, + pub td_rb_list: usize, + pub td_rbp_list: usize, + pub td_rb_inact: usize, + pub td_sa: syscall_args, + pub td_pcb: *mut pcb, + pub td_state: thread__bindgen_ty_7, + pub td_uretoff: thread__bindgen_ty_8, + pub td_cowgen: u_int, + pub td_slpcallout: callout, + pub td_frame: *mut trapframe, + pub td_kstack_obj: *mut vm_object, + pub td_kstack: vm_offset_t, + pub td_kstack_pages: ::std::os::raw::c_int, + pub td_critnest: u_int, + pub td_md: mdthread, + pub td_ar: *mut kaudit_record, + pub td_lprof: [lpohead; 2usize], + pub td_dtrace: *mut kdtrace_thread, + pub td_errno: ::std::os::raw::c_int, + pub td_vnet: *mut vnet, + pub td_vnet_lpush: *const ::std::os::raw::c_char, + pub td_intr_frame: *mut trapframe, + pub td_rfppwait_p: *mut proc_, + pub td_ma: *mut *mut vm_page, + pub td_ma_cnt: ::std::os::raw::c_int, + pub td_emuldata: *mut ::std::os::raw::c_void, + pub td_lastcpu: ::std::os::raw::c_int, + pub td_oncpu: ::std::os::raw::c_int, + pub td_lkpi_task: *mut ::std::os::raw::c_void, + pub td_pmcpend: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_1 { + pub tqe_next: *mut thread, + pub tqe_prev: *mut *mut thread, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_2 { + pub tqe_next: *mut thread, + pub tqe_prev: *mut *mut thread, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_3 { + pub tqe_next: *mut thread, + pub tqe_prev: *mut *mut thread, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_4 { + pub tqe_next: *mut thread, + pub tqe_prev: *mut *mut thread, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_5 { + pub le_next: *mut thread, + pub le_prev: *mut *mut thread, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread__bindgen_ty_6 { + pub lh_first: *mut turnstile, +} +pub const thread_TDS_INACTIVE: thread__bindgen_ty_7 = 0; +pub const thread_TDS_INHIBITED: thread__bindgen_ty_7 = 1; +pub const thread_TDS_CAN_RUN: thread__bindgen_ty_7 = 2; +pub const thread_TDS_RUNQ: thread__bindgen_ty_7 = 3; +pub const thread_TDS_RUNNING: thread__bindgen_ty_7 = 4; +pub type thread__bindgen_ty_7 = u32; +#[repr(C)] +#[derive(Copy, Clone)] +pub union thread__bindgen_ty_8 { + pub tdu_retval: [register_t; 2usize], + pub tdu_off: off_t, + _bindgen_union_align: [u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct proc_ { + pub p_list: proc__bindgen_ty_1, + pub p_threads: proc__bindgen_ty_2, + pub p_slock: mtx, + pub p_ucred: *mut ucred, + pub p_fd: *mut filedesc, + pub p_fdtol: *mut filedesc_to_leader, + pub p_stats: *mut pstats, + pub p_limit: *mut plimit, + pub p_limco: callout, + pub p_sigacts: *mut sigacts, + pub p_flag: ::std::os::raw::c_int, + pub p_flag2: ::std::os::raw::c_int, + pub p_state: proc__bindgen_ty_3, + pub p_pid: pid_t, + pub p_hash: proc__bindgen_ty_4, + pub p_pglist: proc__bindgen_ty_5, + pub p_pptr: *mut proc_, + pub p_sibling: proc__bindgen_ty_6, + pub p_children: proc__bindgen_ty_7, + pub p_reaper: *mut proc_, + pub p_reaplist: proc__bindgen_ty_8, + pub p_reapsibling: proc__bindgen_ty_9, + pub p_mtx: mtx, + pub p_statmtx: mtx, + pub p_itimmtx: mtx, + pub p_profmtx: mtx, + pub p_ksi: *mut ksiginfo, + pub p_sigqueue: sigqueue_t, + pub p_oppid: pid_t, + pub p_vmspace: *mut vmspace, + pub p_swtick: u_int, + pub p_cowgen: u_int, + pub p_realtimer: itimerval, + pub p_ru: rusage, + pub p_rux: rusage_ext, + pub p_crux: rusage_ext, + pub p_profthreads: ::std::os::raw::c_int, + pub p_exitthreads: ::std::os::raw::c_int, + pub p_traceflag: ::std::os::raw::c_int, + pub p_tracevp: *mut vnode, + pub p_tracecred: *mut ucred, + pub p_textvp: *mut vnode, + pub p_lock: u_int, + pub p_sigiolst: sigiolst, + pub p_sigparent: ::std::os::raw::c_int, + pub p_sig: ::std::os::raw::c_int, + pub p_code: u_long, + pub p_stops: u_int, + pub p_stype: u_int, + pub p_step: ::std::os::raw::c_char, + pub p_pfsflags: u_char, + pub p_ptevents: u_int, + pub p_nlminfo: *mut nlminfo, + pub p_aioinfo: *mut kaioinfo, + pub p_singlethread: *mut thread, + pub p_suspcount: ::std::os::raw::c_int, + pub p_xthread: *mut thread, + pub p_boundary_count: ::std::os::raw::c_int, + pub p_pendingcnt: ::std::os::raw::c_int, + pub p_itimers: *mut itimers, + pub p_procdesc: *mut procdesc, + pub p_treeflag: u_int, + pub p_pendingexits: ::std::os::raw::c_int, + pub p_filemon: *mut filemon, + pub p_pdeathsig: ::std::os::raw::c_int, + pub p_magic: u_int, + pub p_osrel: ::std::os::raw::c_int, + pub p_comm: [::std::os::raw::c_char; 20usize], + pub p_sysent: *mut sysentvec, + pub p_args: *mut pargs, + pub p_cpulimit: rlim_t, + pub p_nice: ::std::os::raw::c_schar, + pub p_fibnum: ::std::os::raw::c_int, + pub p_reapsubtree: pid_t, + pub p_elf_machine: u16, + pub p_elf_flags: u64, + pub p_xexit: u_int, + pub p_xsig: u_int, + pub p_pgrp: *mut pgrp, + pub p_klist: *mut knlist, + pub p_numthreads: ::std::os::raw::c_int, + pub p_md: mdproc, + pub p_itcallout: callout, + pub p_acflag: u_short, + pub p_peers: *mut proc_, + pub p_leader: *mut proc_, + pub p_emuldata: *mut ::std::os::raw::c_void, + pub p_label: *mut label, + pub p_ktr: proc__bindgen_ty_10, + pub p_mqnotifier: proc__bindgen_ty_11, + pub p_dtrace: *mut kdtrace_proc, + pub p_pwait: cv, + pub p_prev_runtime: u64, + pub p_racct: *mut racct, + pub p_throttled: ::std::os::raw::c_int, + pub p_orphan: proc__bindgen_ty_12, + pub p_orphans: proc__bindgen_ty_13, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_1 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_2 { + pub tqh_first: *mut thread, + pub tqh_last: *mut *mut thread, +} +pub const proc__PRS_NEW: proc__bindgen_ty_3 = 0; +pub const proc__PRS_NORMAL: proc__bindgen_ty_3 = 1; +pub const proc__PRS_ZOMBIE: proc__bindgen_ty_3 = 2; +pub type proc__bindgen_ty_3 = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_4 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_5 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_6 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_7 { + pub lh_first: *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_8 { + pub lh_first: *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_9 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_10 { + pub stqh_first: *mut ktr_request, + pub stqh_last: *mut *mut ktr_request, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_11 { + pub lh_first: *mut mqueue_notifier, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_12 { + pub le_next: *mut proc_, + pub le_prev: *mut *mut proc_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc__bindgen_ty_13 { + pub lh_first: *mut proc_, +} +pub type vm_inherit_t = ::std::os::raw::c_char; +pub type vm_prot_t = u_char; +pub type vm_map_entry_t = *mut vm_map_entry; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_page { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ucred { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap_statistics { + pub resident_count: ::std::os::raw::c_long, + pub wired_count: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _cpuset { + pub __bits: [::std::os::raw::c_long; 4usize], +} +pub type cpuset_t = _cpuset; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_radix { + pub rt_root: usize, +} +pub type pml4_entry_t = u_int64_t; +pub const pmap_type_PT_X86: pmap_type = 0; +pub const pmap_type_PT_EPT: pmap_type = 1; +pub const pmap_type_PT_RVI: pmap_type = 2; +pub type pmap_type = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap_pcids { + pub pm_pcid: u32, + pub pm_gen: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap { + pub pm_mtx: mtx, + pub pm_pml4: *mut pml4_entry_t, + pub pm_pml4u: *mut pml4_entry_t, + pub pm_cr3: u64, + pub pm_ucr3: u64, + pub pm_pvchunk: pmap__bindgen_ty_1, + pub pm_active: cpuset_t, + pub pm_type: pmap_type, + pub pm_stats: pmap_statistics, + pub pm_root: vm_radix, + pub pm_eptgen: ::std::os::raw::c_long, + pub pm_flags: ::std::os::raw::c_int, + pub pm_pcids: [pmap_pcids; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmap__bindgen_ty_1 { + pub tqh_first: *mut pv_chunk, + pub tqh_last: *mut *mut pv_chunk, +} +pub type pmap_t = *mut pmap; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pv_entry { + pub pv_va: vm_offset_t, + pub pv_next: pv_entry__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pv_entry__bindgen_ty_1 { + pub tqe_next: *mut pv_entry, + pub tqe_prev: *mut *mut pv_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pv_chunk { + pub pc_pmap: pmap_t, + pub pc_list: pv_chunk__bindgen_ty_1, + pub pc_map: [u64; 3usize], + pub pc_lru: pv_chunk__bindgen_ty_2, + pub pc_pventry: [pv_entry; 168usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pv_chunk__bindgen_ty_1 { + pub tqe_next: *mut pv_chunk, + pub tqe_prev: *mut *mut pv_chunk, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pv_chunk__bindgen_ty_2 { + pub tqe_next: *mut pv_chunk, + pub tqe_prev: *mut *mut pv_chunk, +} +pub type vm_flags_t = u_char; +pub type vm_eflags_t = u_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union vm_map_object { + pub vm_object: *mut vm_object, + pub sub_map: *mut vm_map, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_map_entry { + pub prev: *mut vm_map_entry, + pub next: *mut vm_map_entry, + pub left: *mut vm_map_entry, + pub right: *mut vm_map_entry, + pub start: vm_offset_t, + pub end: vm_offset_t, + pub next_read: vm_offset_t, + pub adj_free: vm_size_t, + pub max_free: vm_size_t, + pub object: vm_map_object, + pub offset: vm_ooffset_t, + pub eflags: vm_eflags_t, + pub protection: vm_prot_t, + pub max_protection: vm_prot_t, + pub inheritance: vm_inherit_t, + pub read_ahead: u8, + pub wired_count: ::std::os::raw::c_int, + pub cred: *mut ucred, + pub wiring_thread: *mut thread, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_map { + pub header: vm_map_entry, + pub lock: sx, + pub system_mtx: mtx, + pub nentries: ::std::os::raw::c_int, + pub size: vm_size_t, + pub timestamp: u_int, + pub needs_wakeup: u_char, + pub system_map: u_char, + pub flags: vm_flags_t, + pub root: vm_map_entry_t, + pub pmap: pmap_t, + pub busy: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vmspace { + pub vm_map: vm_map, + pub vm_shm: *mut shmmap_state, + pub vm_swrss: segsz_t, + pub vm_tsize: segsz_t, + pub vm_dsize: segsz_t, + pub vm_ssize: segsz_t, + pub vm_taddr: caddr_t, + pub vm_daddr: caddr_t, + pub vm_maxsaddr: caddr_t, + pub vm_refcnt: ::std::os::raw::c_int, + pub vm_pmap: pmap, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pstats { + pub p_cru: rusage, + pub p_timer: [itimerval; 3usize], + pub p_prof: pstats_uprof, + pub p_start: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pstats_uprof { + pub pr_base: caddr_t, + pub pr_size: u_long, + pub pr_off: u_long, + pub pr_scale: u_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kinfo_proc { + pub ki_structsize: ::std::os::raw::c_int, + pub ki_layout: ::std::os::raw::c_int, + pub ki_args: *mut pargs, + pub ki_paddr: *mut proc_, + pub ki_addr: *mut user, + pub ki_tracep: *mut vnode, + pub ki_textvp: *mut vnode, + pub ki_fd: *mut filedesc, + pub ki_vmspace: *mut vmspace, + pub ki_wchan: *mut ::std::os::raw::c_void, + pub ki_pid: pid_t, + pub ki_ppid: pid_t, + pub ki_pgid: pid_t, + pub ki_tpgid: pid_t, + pub ki_sid: pid_t, + pub ki_tsid: pid_t, + pub ki_jobc: ::std::os::raw::c_short, + pub ki_spare_short1: ::std::os::raw::c_short, + pub ki_tdev_freebsd11: u32, + pub ki_siglist: sigset_t, + pub ki_sigmask: sigset_t, + pub ki_sigignore: sigset_t, + pub ki_sigcatch: sigset_t, + pub ki_uid: uid_t, + pub ki_ruid: uid_t, + pub ki_svuid: uid_t, + pub ki_rgid: gid_t, + pub ki_svgid: gid_t, + pub ki_ngroups: ::std::os::raw::c_short, + pub ki_spare_short2: ::std::os::raw::c_short, + pub ki_groups: [gid_t; 16usize], + pub ki_size: vm_size_t, + pub ki_rssize: segsz_t, + pub ki_swrss: segsz_t, + pub ki_tsize: segsz_t, + pub ki_dsize: segsz_t, + pub ki_ssize: segsz_t, + pub ki_xstat: u_short, + pub ki_acflag: u_short, + pub ki_pctcpu: fixpt_t, + pub ki_estcpu: u_int, + pub ki_slptime: u_int, + pub ki_swtime: u_int, + pub ki_cow: u_int, + pub ki_runtime: u_int64_t, + pub ki_start: timeval, + pub ki_childtime: timeval, + pub ki_flag: ::std::os::raw::c_long, + pub ki_kiflag: ::std::os::raw::c_long, + pub ki_traceflag: ::std::os::raw::c_int, + pub ki_stat: ::std::os::raw::c_char, + pub ki_nice: ::std::os::raw::c_schar, + pub ki_lock: ::std::os::raw::c_char, + pub ki_rqindex: ::std::os::raw::c_char, + pub ki_oncpu_old: u_char, + pub ki_lastcpu_old: u_char, + pub ki_tdname: [::std::os::raw::c_char; 17usize], + pub ki_wmesg: [::std::os::raw::c_char; 9usize], + pub ki_login: [::std::os::raw::c_char; 18usize], + pub ki_lockname: [::std::os::raw::c_char; 9usize], + pub ki_comm: [::std::os::raw::c_char; 20usize], + pub ki_emul: [::std::os::raw::c_char; 17usize], + pub ki_loginclass: [::std::os::raw::c_char; 18usize], + pub ki_moretdname: [::std::os::raw::c_char; 4usize], + pub ki_sparestrings: [::std::os::raw::c_char; 46usize], + pub ki_spareints: [::std::os::raw::c_int; 2usize], + pub ki_tdev: u64, + pub ki_oncpu: ::std::os::raw::c_int, + pub ki_lastcpu: ::std::os::raw::c_int, + pub ki_tracer: ::std::os::raw::c_int, + pub ki_flag2: ::std::os::raw::c_int, + pub ki_fibnum: ::std::os::raw::c_int, + pub ki_cr_flags: u_int, + pub ki_jid: ::std::os::raw::c_int, + pub ki_numthreads: ::std::os::raw::c_int, + pub ki_tid: lwpid_t, + pub ki_pri: priority, + pub ki_rusage: rusage, + pub ki_rusage_ch: rusage, + pub ki_pcb: *mut pcb, + pub ki_kstack: *mut ::std::os::raw::c_void, + pub ki_udata: *mut ::std::os::raw::c_void, + pub ki_tdaddr: *mut thread, + pub ki_spareptrs: [*mut ::std::os::raw::c_void; 6usize], + pub ki_sparelongs: [::std::os::raw::c_long; 12usize], + pub ki_sflag: ::std::os::raw::c_long, + pub ki_tdflags: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct user { + pub u_stats: pstats, + pub u_kproc: kinfo_proc, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct amd64tss { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct witness { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vnode { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysent { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdev_priv { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seltd { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rl_q_entry { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct umtx_q { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct plimit { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vnet { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimers { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysentvec { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct label { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ktr_request { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shmmap_state { + pub _address: u8, +} diff --git a/remoteprocess/src/freebsd/lock.rs b/remoteprocess/src/freebsd/lock.rs new file mode 100644 index 00000000..5339b2c7 --- /dev/null +++ b/remoteprocess/src/freebsd/lock.rs @@ -0,0 +1,35 @@ +use libc::{pid_t, waitpid, WIFSTOPPED}; + +use std::io::Error as IoError; + +use super::Error; +use super::ptrace; + +#[derive(Debug)] +pub struct ProcessLock { + pid: pid_t, +} + +impl ProcessLock { + pub fn new(pid: pid_t) -> Result { + ptrace::attach(pid)?; + let mut wait_status = 0; + + let stopped = unsafe { + waitpid(pid, &mut wait_status as *mut _, 0); + WIFSTOPPED(wait_status) + }; + + if !stopped { + return Err(Error::IOError(IoError::last_os_error())); + } + + Ok(ProcessLock { pid }) + } +} + +impl Drop for ProcessLock { + fn drop(&mut self) { + ptrace::detach(self.pid); + } +} diff --git a/remoteprocess/src/freebsd/mod.rs b/remoteprocess/src/freebsd/mod.rs new file mode 100644 index 00000000..10956fbc --- /dev/null +++ b/remoteprocess/src/freebsd/mod.rs @@ -0,0 +1,307 @@ +mod kinfo_proc; +mod procstat; +mod ptrace; +mod lock; + +mod registers; + +use libc::{pid_t, lwpid_t}; +use read_process_memory::{CopyAddress, ProcessHandle}; + +use std::cell::RefCell; +use std::convert::TryInto; +use std::rc::{Rc, Weak}; + +use super::{ProcessMemory, Error}; +use freebsd::lock::ProcessLock; +use freebsd::registers::Registers; + +pub type Pid = pid_t; +pub type Tid = lwpid_t; + +pub struct Process { + pub pid: Pid, + lock: Rc>>, +} + +pub struct Thread { + pub tid: lwpid_t, + pid: pid_t, + active: bool, + lock: Rc>>, +} + +fn process_lock(pid: Pid, container: &RefCell>) + -> Result, Error> { + if let Some(ref lock) = Weak::upgrade(&container.borrow_mut()) { + return Ok(Rc::clone(lock)) + } + + let lock = Rc::new(ProcessLock::new(pid)?); + + container.replace(Rc::downgrade(&lock)); + + Ok(lock) +} + +impl Process { + pub fn new(pid: Pid) -> Result { + Ok(Process { pid, lock: Rc::new(RefCell::new(Weak::new())) }) + } + + pub fn exe(&self) -> Result { + Ok(procstat::exe(self.pid)?) + } + + pub fn cwd(&self) -> Result { + Ok(procstat::cwd(self.pid)?) + } + + pub fn threads(&self) -> Result, Error> { + let threads = procstat::threads_info(self.pid)?; + let result = threads.iter().map(|th| { + Thread { + tid: th.ki_tid, + active: th.ki_stat == 2, + pid: self.pid, + lock: Rc::clone(&self.lock), + } + }); + + Ok(result.collect()) + } + + pub fn lock(&self) -> Result, Error> { + process_lock(self.pid, &self.lock) + } + + pub fn unwinder(&self) -> Result<(), Error> { + unimplemented!("No unwinding yet!") + } +} + +impl Thread { + pub fn id(&self) -> Result { + Ok(self.tid) + } + + pub fn active(&self) -> Result { + Ok(self.active) + } + + pub fn lock(&self) -> Result, Error> { + process_lock(self.pid, &self.lock) + } + + pub fn registers(&self) -> Result { + let data: Registers = Registers::default(); + + let _lock = self.lock()?; + + ptrace::getregs(self.tid, &data as *const _ as _)?; + + Ok(data) + } +} + +impl ProcessMemory for Process { + fn read(&self, addr: usize, buf: &mut [u8]) -> Result<(), Error> { + let handle: ProcessHandle = self.pid.try_into()?; + Ok(handle.copy_address(addr, buf)?) + } +} + + +#[cfg(test)] +mod tests { + use libc::pid_t; + + use std::process::{Child, Command}; + use std::{thread, time}; + use super::Error; + + use super::Process; + + struct DroppableProcess { + inner: Child, + } + + impl Drop for DroppableProcess { + fn drop(&mut self) { + self.inner.kill(); + } + } + + /// We'll be tracing Perl programs, since Perl is + /// installed by default. + /// This program spawns 2 threads, 1 active + const PERL_PROGRAM: &str =r#" + use threads; + my $sleeping = async { sleep; }; + my $running = async { while(true) {} }; + + map { $_->join } ($sleeping, $running); + "#; + + const EXECUTABLE: &str = "/usr/local/bin/perl"; + const CWD: &str = "/usr/local/share"; + + fn trace_perl_program( + program: &str + ) -> Result<(Process, DroppableProcess), Error> { + // Let's give perl some time. + let wait_time = time::Duration::from_millis(50); + + Command::new(EXECUTABLE) + .current_dir(CWD) + .args(&["-e", program]) + .spawn() + .and_then(|child| { + let pid = child.id() as pid_t; + + let result = (Process::new(pid).unwrap(), + DroppableProcess { inner: child }); + + thread::sleep(wait_time); + + Ok(result) + }) + .map_err(|err| err.into()) + } + + #[test] + fn test_threads() { + let threads = trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| process.threads()) + .expect("test failed!"); + + let active_count = threads.iter().filter(|x| { + x.active().unwrap() + }).count(); + + assert_eq!(threads.len(), 3); // 1 main thread, 2 spawned. + assert_eq!(active_count, 1); + + } + + #[test] + fn test_thread_lock_unlock() { + trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| { + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_some()); + + if let Some(thread) = active_thread { + let _lock = thread.lock(); + + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_none()); + } + + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_some()); + + Ok(()) + }) + .expect("test failed!"); + } + + #[test] + fn test_exe() { + trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| { + assert_eq!(process.exe()?, EXECUTABLE); + + Ok(()) + }); + } + + #[test] + fn test_cwd() { + trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| { + assert_eq!(process.cwd()?, CWD); + + Ok(()) + }); + } + + + #[test] + fn test_process_lock() { + trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| { + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_some()); + + if let Some(thread) = active_thread { + let _lock = process.lock(); + + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_none()); + } + + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_some()); + + Ok(()) + }) + .expect("test failed!"); + } + + + /// Since threads and their process use the same locking mechanics, it's + /// crucial to ensure that double-locking doesn't occur. In case of + /// double-lock program would panic, since ptrace(2) returns EBUSY. + #[test] + fn test_process_and_thread_lock() { + trace_perl_program(PERL_PROGRAM) + .and_then(|(process, _p)| { + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_some()); + + if let Some(thread) = active_thread { + let _lock = process.lock()?; + let _thread_lock = active_thread.unwrap().lock()?; + + let threads = process.threads()?; + + let active_thread = + threads.iter().find(|x| x.active().unwrap()); + + assert!(active_thread.is_none()); + } + + Ok(()) + }) + .expect("test failed!"); + } +} diff --git a/remoteprocess/src/freebsd/procstat.rs b/remoteprocess/src/freebsd/procstat.rs new file mode 100644 index 00000000..3c65fc90 --- /dev/null +++ b/remoteprocess/src/freebsd/procstat.rs @@ -0,0 +1,138 @@ +use libc::{c_char, c_int, c_void, pid_t}; + +use super::kinfo_proc::kinfo_proc; +use std::io::Error; +use std::ffi::CStr; + +// Executable path buffer size +const BUF_SIZE: usize = 4096; +// File info flag. Designates that file is CWD. +const PS_FST_UFLAG_CDIR: c_int = 0x0002; +// procs request type +// (KERN_PROC_PID | KERN_PROC_INC_THREAD) /sys/sys/sysctl.h +const REQUEST: c_int = 1 | 0x10; + +#[link(name="procstat")] +extern "C" { + fn procstat_open_sysctl() -> *const c_void; + fn procstat_getprocs(prstat: *const c_void, + request: c_int, + pid: pid_t, + count: *const c_int) -> *const kinfo_proc; + fn procstat_getpathname(prstat: *const c_void, + kinfo_proc: *const kinfo_proc, + pathname: *const c_char, + size: c_int); + fn procstat_getfiles(prstat: *const c_void, + kinfo_proc: *const kinfo_proc, + mmap: c_int) -> *const stailq_entry; + fn procstat_freeprocs(prstat: *const c_void, + kinfo_proc: *const kinfo_proc); + fn procstat_close(prstat: *const c_void); +} + +#[derive(Debug)] +#[repr(C)] +struct Filestat { + fs_type: c_int, + fs_flags: c_int, + fs_fflags: c_int, + fs_uflags: c_int, + fs_fd: c_int, + fs_ref_count: c_int, + fs_offset: c_int, + fs_typedep: *const c_void, + fs_path: *const c_char, + next: stailq_entry, +} + +#[derive(Debug)] +#[repr(C)] +struct stailq_entry { + next: *const Filestat, +} + +fn procstat_call( + pid: pid_t, + count: c_int, + call: &dyn Fn(*const c_void, *const kinfo_proc, c_int) -> T +) -> Result { + unsafe { + let prstat = procstat_open_sysctl(); + + if prstat.is_null() { + return Err(Error::last_os_error()); + } + + let kinfo_procs = + procstat_getprocs(prstat, REQUEST, pid, &count as *const _); + + if kinfo_procs.is_null() { + return Err(Error::last_os_error()); + } + + let ret = call(prstat, kinfo_procs, count); + + procstat_freeprocs(prstat, kinfo_procs); + procstat_close(prstat); + + Ok(ret) + } +} + +/// Retrieves process information via libprocstat +pub fn threads_info(pid: pid_t) -> Result, Error> { + let count: c_int = 0; + + procstat_call(pid, count, &|_, kinfo, count| { + unsafe { + Ok(std::slice::from_raw_parts(kinfo, count as usize).into()) + } + })? +} + +pub fn exe(pid: pid_t) -> Result { + let result: [c_char; BUF_SIZE] = [0; BUF_SIZE]; + + procstat_call(pid, BUF_SIZE as c_int, &|prstat, kinfo, _| { + unsafe { + procstat_getpathname(prstat, kinfo, &result as _, BUF_SIZE as c_int); + let bytes = CStr::from_ptr(&result as _).to_bytes(); + + Ok(String::from_utf8_unchecked(bytes.to_vec())) + } + })? +} + +fn get_file_with_uflag(pid: pid_t, uflag: c_int) + -> Result, Error> { + procstat_call(pid, 0 as c_int, &|prstat, kinfo, _| { + let mut filestat = unsafe { + (*procstat_getfiles(prstat, kinfo, 0)).next + }; + + loop { + if filestat.is_null() { + return None; + }; + + unsafe { + let ref derefered = *filestat; + + if derefered.fs_uflags & uflag != 0 { + let bytes = CStr::from_ptr(derefered.fs_path).to_bytes(); + return Some(String::from_utf8_unchecked(bytes.to_vec())); + } + + filestat = (derefered.next).next; + }; + } + }) +} + +pub fn cwd(pid: pid_t) -> Result { + match get_file_with_uflag(pid, PS_FST_UFLAG_CDIR)? { + Some(string) => Ok(string), + None => Ok("".to_owned()), + } +} diff --git a/remoteprocess/src/freebsd/ptrace.rs b/remoteprocess/src/freebsd/ptrace.rs new file mode 100644 index 00000000..522eef8d --- /dev/null +++ b/remoteprocess/src/freebsd/ptrace.rs @@ -0,0 +1,44 @@ +use libc::{c_int, pid_t, c_void, lwpid_t}; +use libc::{PT_ATTACH, PT_DETACH, PT_GETREGS}; + +use std::{ptr}; +use std::io::Error; + +macro_rules! ptrace { + ($request:ident, $pid:expr, $addr:expr, $data:expr) => { + unsafe { + let ret = ptrace($request, $pid, $addr, $data); + + if ret < 0 { + return Err(Error::last_os_error()); + } + + ret + } + } +} + +extern "C" { + fn ptrace(request: c_int, pid: pid_t, + data: *const c_void, + count: c_int) -> c_int; +} + + +pub fn attach(tid: lwpid_t) -> Result<(), Error> { + ptrace!(PT_ATTACH, tid, ptr::null(), 0); + + Ok(()) +} + +pub fn getregs(tid: lwpid_t, addr: *const c_void) -> Result<(), Error> { + ptrace!(PT_GETREGS, tid, addr, 0); + + Ok(()) +} + +pub fn detach(tid: lwpid_t) -> Result<(), Error> { + ptrace!(PT_DETACH, tid, ptr::null(), 0); + + Ok(()) +} diff --git a/remoteprocess/src/freebsd/registers.rs b/remoteprocess/src/freebsd/registers.rs new file mode 100644 index 00000000..12034c83 --- /dev/null +++ b/remoteprocess/src/freebsd/registers.rs @@ -0,0 +1,82 @@ +/// Extract to dwarf_unwinder eventually + +// sys/x86/include/reg.h +#[cfg(target_os="freebsd")] +#[derive(Debug, Default, Eq, PartialEq, Copy, Clone)] +pub struct Registers { + pub r15: u64, + pub r14: u64, + pub r13: u64, + pub r12: u64, + pub r11: u64, + pub r10: u64, + pub r9: u64, + pub r8: u64, + pub rdi: u64, + pub rsi: u64, + pub rbp: u64, + pub rbx: u64, + pub rdx: u64, + pub rcx: u64, + pub rax: u64, + pub trapno: u32, + pub fs: u16, + pub gs: u16, + pub err: u32, + pub es: u16, + pub ds: u16, + pub rip: u64, + pub cs: u64, + pub rflags: u64, + pub rsp: u64, + pub ss: u64, +} + + +#[cfg(target_os="freebsd")] +fn get_register(regs: &Registers, register: gimli::Register) -> u64 { + match register.0 { + 0 => regs.rax, + 1 => regs.rdx, + 2 => regs.rcx, + 3 => regs.rbx, + 4 => regs.rsi, + 5 => regs.rdi, + 6 => regs.rbp, + 7 => regs.rsp, + 8 => regs.r8, + 9 => regs.r9, + 10 => regs.r10, + 11 => regs.r11, + 12 => regs.r12, + 13 => regs.r13, + 14 => regs.r14, + 15 => regs.r15, + 16 => regs.rip, + _ => panic!("unknown reg") + } +} + +#[cfg(target_os="freebsd")] +fn set_register(regs: &mut Registers, register: gimli::Register, value: u64) { + match register.0 { + 0 => regs.rax = value, + 1 => regs.rdx = value, + 2 => regs.rcx = value, + 3 => regs.rbx = value, + 4 => regs.rsi = value, + 5 => regs.rdi = value, + 6 => regs.rbp = value , + 7 => regs.rsp = value, + 8 => regs.r8 = value, + 9 => regs.r9 = value, + 10 => regs.r10 = value, + 11 => regs.r11 = value, + 12 => regs.r12 = value, + 13 => regs.r13 = value, + 14 => regs.r14 = value, + 15 => regs.r15 = value, + 16 => regs.rip = value, + _ => panic!("unknown reg") + } +} diff --git a/remoteprocess/src/lib.rs b/remoteprocess/src/lib.rs index 599078a6..4c75a838 100644 --- a/remoteprocess/src/lib.rs +++ b/remoteprocess/src/lib.rs @@ -21,6 +21,7 @@ //! # Example //! //! ```rust,no_run +//! #[cfg(unwind)] //! fn get_backtrace(pid: remoteprocess::Pid) -> Result<(), remoteprocess::Error> { //! // Create a new handle to the process //! let process = remoteprocess::Process::new(pid)?; @@ -89,12 +90,16 @@ mod linux; #[cfg(target_os="linux")] pub use linux::*; +#[cfg(target_os="freebsd")] +mod freebsd; +#[cfg(target_os="freebsd")] +pub use freebsd::*; + #[cfg(target_os="windows")] mod windows; #[cfg(target_os="windows")] pub use windows::*; - #[cfg(all(unix, unwind))] mod dwarf_unwind; diff --git a/remoteprocess/src/linux/mod.rs b/remoteprocess/src/linux/mod.rs index e9a19969..b904f118 100644 --- a/remoteprocess/src/linux/mod.rs +++ b/remoteprocess/src/linux/mod.rs @@ -9,6 +9,7 @@ use libc::pid_t; use libc::c_void; use nix::{self, sys::wait, sys::ptrace, {sched::{setns, CloneFlags}}}; +use std::convert::TryInto; use std::io::Read; use std::os::unix::io::AsRawFd; use std::fs::File; @@ -24,7 +25,7 @@ pub use self::symbolication::*; #[cfg(unwind)] pub use self::libunwind::{LibUnwind}; -use read_process_memory::{CopyAddress}; +use read_process_memory::{CopyAddress, ProcessHandle}; pub type Pid = pid_t; pub type Tid = pid_t; @@ -104,7 +105,8 @@ impl Process { impl super::ProcessMemory for Process { fn read(&self, addr: usize, buf: &mut [u8]) -> Result<(), Error> { - Ok(self.pid.copy_address(addr, buf)?) + let handle: ProcessHandle = self.pid.try_into()?; + Ok(handle.copy_address(addr, buf)?) } } diff --git a/remoteprocess/src/osx/mod.rs b/remoteprocess/src/osx/mod.rs index 69928d90..49c09535 100644 --- a/remoteprocess/src/osx/mod.rs +++ b/remoteprocess/src/osx/mod.rs @@ -6,13 +6,14 @@ mod mach_thread_bindings; mod unwinder; use std; +use std::convert::TryInto; use mach; use super::{ProcessMemory, Error}; use mach::kern_return::{KERN_SUCCESS}; use mach::port::{mach_port_name_t, MACH_PORT_NULL}; use mach::traps::{task_for_pid, mach_task_self}; -use read_process_memory::{CopyAddress}; +use read_process_memory::{CopyAddress, ProcessHandle}; use libc::{c_int, pid_t}; @@ -87,7 +88,8 @@ impl Process { impl super::ProcessMemory for Process { fn read(&self, addr: usize, buf: &mut [u8]) -> Result<(), Error> { - Ok(self.task.copy_address(addr, buf)?) + let handle: ProcessHandle = self.task.try_into()?; + Ok(handle.copy_address(addr, buf)?) } } @@ -185,5 +187,3 @@ impl Default for proc_vnodepathinfo { impl PIDInfo for proc_vnodepathinfo { fn flavor() -> PidInfoFlavor { PidInfoFlavor::VNodePathInfo } } - - diff --git a/remoteprocess/src/windows/mod.rs b/remoteprocess/src/windows/mod.rs index a0823c77..d2f6286a 100644 --- a/remoteprocess/src/windows/mod.rs +++ b/remoteprocess/src/windows/mod.rs @@ -58,7 +58,7 @@ impl Process { if handle == (0 as std::os::windows::io::RawHandle) { return Err(Error::from(std::io::Error::last_os_error())); } - Ok(Process{pid, handle}) + Ok(Process{pid, handle: ProcessHandle(handle)}) } } @@ -68,7 +68,7 @@ impl Process { unsafe { let mut size = MAX_PATH as DWORD; let mut filename: [WCHAR; MAX_PATH] = std::mem::zeroed(); - let ret = QueryFullProcessImageNameW(self.handle, 0, filename.as_mut_ptr(), &mut size); + let ret = QueryFullProcessImageNameW(self.handle.0, 0, filename.as_mut_ptr(), &mut size); if ret == 0 { return Err(std::io::Error::last_os_error().into()); } @@ -100,22 +100,22 @@ impl Process { let mut ret = Vec::new(); unsafe { let mut thread: HANDLE = std::mem::zeroed(); - while NtGetNextThread(self.handle, thread, MAXIMUM_ALLOWED, 0, 0, + while NtGetNextThread(self.handle.0, thread, MAXIMUM_ALLOWED, 0, 0, &mut thread as *mut HANDLE) == 0 { - ret.push(Thread{thread}); + ret.push(Thread{ thread: ProcessHandle(thread) }); } } Ok(ret) } pub fn unwinder(&self) -> Result { - unwinder::Unwinder::new(self.handle) + unwinder::Unwinder::new(self.handle.0) } } impl Drop for Process { fn drop(&mut self) { - unsafe { CloseHandle(self.handle); } + unsafe { CloseHandle(self.handle.0); } } } @@ -127,7 +127,7 @@ impl super::ProcessMemory for Process { #[derive(Eq, PartialEq, Hash, Clone)] pub struct Thread { - thread: ProcessHandle + thread: ProcessHandle, } impl Thread { @@ -138,7 +138,8 @@ impl Thread { if thread == (0 as std::os::windows::io::RawHandle) { return Err(Error::from(std::io::Error::last_os_error())); } - Ok(Thread{thread}) + + Ok(Thread { thread: ProcessHandle(thread) }) } } pub fn lock(&self) -> Result { @@ -146,7 +147,7 @@ impl Thread { } pub fn id(&self) -> Result { - unsafe { Ok(GetThreadId(self.thread)) } + unsafe { Ok(GetThreadId(self.thread.0)) } } pub fn active(&self) -> Result { @@ -155,7 +156,7 @@ impl Thread { // of known waiting syscalls to get this unsafe { let mut data = std::mem::zeroed::(); - let ret = NtQueryInformationThread(self.thread, 21, + let ret = NtQueryInformationThread(self.thread.0, 21, &mut data as *mut _ as *mut VOID, std::mem::size_of::() as u32, NULL as *mut u32); @@ -196,7 +197,7 @@ impl Thread { impl Drop for Thread { fn drop(&mut self) { - unsafe { CloseHandle(self.thread); } + unsafe { CloseHandle(self.thread.0); } } } @@ -207,7 +208,7 @@ pub struct Lock { impl Lock { pub fn new(process: ProcessHandle) -> Result { unsafe { - let ret = NtSuspendProcess(process); + let ret = NtSuspendProcess(process.0); if ret != 0 { return Err(Error::from(std::io::Error::from_raw_os_error(RtlNtStatusToDosError(ret) as i32))); } @@ -219,7 +220,7 @@ impl Lock { impl Drop for Lock { fn drop(&mut self) { unsafe { - let ret = NtResumeProcess(self.process); + let ret = NtResumeProcess(self.process.0); if ret != 0 { panic!("Failed to resume process: {}", std::io::Error::from_raw_os_error(RtlNtStatusToDosError(ret) as i32)); @@ -235,7 +236,7 @@ pub struct ThreadLock { impl ThreadLock { pub fn new(thread: ProcessHandle) -> Result { unsafe { - let ret = SuspendThread(thread); + let ret = SuspendThread(thread.0); if ret.wrapping_add(1) == 0 { return Err(std::io::Error::last_os_error().into()); } @@ -248,7 +249,7 @@ impl ThreadLock { impl Drop for ThreadLock { fn drop(&mut self) { unsafe { - if ResumeThread(self.thread).wrapping_add(1) == 0 { + if ResumeThread(self.thread.0).wrapping_add(1) == 0 { panic!("Failed to resume thread {}", std::io::Error::last_os_error()); } } diff --git a/remoteprocess/src/windows/unwinder.rs b/remoteprocess/src/windows/unwinder.rs index 03168d9a..b656d5e7 100755 --- a/remoteprocess/src/windows/unwinder.rs +++ b/remoteprocess/src/windows/unwinder.rs @@ -42,7 +42,7 @@ impl Unwinder { } pub fn cursor(&self, thread: &Thread) -> Result { - Cursor::new(thread.thread, self.handle) + Cursor::new(thread.thread.0, self.handle) } pub fn symbolicate(&self, addr: u64, line_info: bool, callback: &mut FnMut(&StackFrame)) -> Result<(), Error> { @@ -240,4 +240,4 @@ pub struct IMAGEHLP_MODULEW64 { extern "system" { fn SymGetModuleInfoW64(process: HANDLE, addr: u64, info: *mut IMAGEHLP_MODULEW64) -> BOOL; fn SymRefreshModuleList(process: HANDLE) -> BOOL; -} \ No newline at end of file +} diff --git a/src/python_bindings/mod.rs b/src/python_bindings/mod.rs index cc7f573f..d2c296f9 100644 --- a/src/python_bindings/mod.rs +++ b/src/python_bindings/mod.rs @@ -114,4 +114,20 @@ pub mod pyruntime { _ => None } } + + #[cfg(target_os="freebsd")] + pub fn get_tstate_current_offset(version: &Version) -> Option { + match version { + Version{major: 3, minor: 7, ..} => Some(1248), + Version{major: 3, minor: 8, patch: 0, ..} => { + match version.release_flags.as_ref() { + "a1" => Some(1240), + "a2" => Some(696), + "a3" | "a4" => Some(1256), + _ => None + } + }, + _ => None + } + } } diff --git a/src/python_spy.rs b/src/python_spy.rs index adc839ce..5a605718 100644 --- a/src/python_spy.rs +++ b/src/python_spy.rs @@ -335,6 +335,11 @@ impl PythonSpy { Ok(None) } + #[cfg(target_os="freebsd")] + fn _get_os_thread_id(&mut self, _python_thread_id: u64, _interp: &I) -> Result, Error> { + Ok(None) + } + fn _get_gil_threadid(&self) -> Result { // figure out what thread has the GIL by inspecting _PyThreadState_Current if self.threadstate_address > 0 { @@ -741,7 +746,7 @@ pub fn get_windows_python_symbols(pid: Pid, filename: &str, offset: u64) -> std: Ok(ret) } -#[cfg(target_os="linux")] +#[cfg(any(target_os="linux", target_os="freebsd"))] pub fn is_python_lib(pathname: &str) -> bool { lazy_static! { static ref RE: Regex = Regex::new(r"/libpython\d.\d(m|d|u)?.so").unwrap();