[INFO] cloning repository https://github.com/Hagi013/toy-gdb [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Hagi013/toy-gdb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHagi013%2Ftoy-gdb", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHagi013%2Ftoy-gdb'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 23dd4e4899150b9ff59b66c83e374001e273a4a4 [INFO] building Hagi013/toy-gdb against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHagi013%2Ftoy-gdb" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Hagi013/toy-gdb on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Hagi013/toy-gdb [INFO] finished tweaking git repo https://github.com/Hagi013/toy-gdb [INFO] tweaked toml for git repo https://github.com/Hagi013/toy-gdb written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Hagi013/toy-gdb already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded anyhow v1.0.37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b1a505dbe9be7ead9222db9f722314c07c7abd14ada0e867e1c1f0978d5ea886 [INFO] running `Command { std: "docker" "start" "-a" "b1a505dbe9be7ead9222db9f722314c07c7abd14ada0e867e1c1f0978d5ea886", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b1a505dbe9be7ead9222db9f722314c07c7abd14ada0e867e1c1f0978d5ea886", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b1a505dbe9be7ead9222db9f722314c07c7abd14ada0e867e1c1f0978d5ea886", kill_on_drop: false }` [INFO] [stdout] b1a505dbe9be7ead9222db9f722314c07c7abd14ada0e867e1c1f0978d5ea886 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8712dc3092984f9ae79b321b971a11fad3fb0fbd8edc8dfb68669e61aa4bd9cb [INFO] running `Command { std: "docker" "start" "-a" "8712dc3092984f9ae79b321b971a11fad3fb0fbd8edc8dfb68669e61aa4bd9cb", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.81 [INFO] [stderr] Compiling anyhow v1.0.37 [INFO] [stderr] Compiling rustc-demangle v0.1.18 [INFO] [stderr] Compiling nix v0.19.1 [INFO] [stderr] Compiling toy-gdb v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Pid`, `chdir`, `chroot`, `mkdir`, `pivot_root`, and `sethostname` [INFO] [stdout] --> src/main.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use nix::unistd::{Pid, getpid, sethostname, chroot, chdir, mkdir, pivot_root}; [INFO] [stdout] | ^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/toy_gdb.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{Result, Error, Context}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `stdout` [INFO] [stdout] --> src/toy_gdb.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Write, stdout}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/toy_gdb.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `getpid` [INFO] [stdout] --> src/toy_gdb.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use nix::unistd::{Pid, getpid}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nix::sys::signal` [INFO] [stdout] --> src/toy_gdb.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use nix::sys::signal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/toy_gdb.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/toy_gdb.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::args` [INFO] [stdout] --> src/check_fn_viradd.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::env::args; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Demangle` and `TryDemangleError` [INFO] [stdout] --> src/check_fn_viradd.rs:7:36 [INFO] [stdout] | [INFO] [stdout] 7 | use rustc_demangle::{try_demangle, Demangle, TryDemangleError}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NULL` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtNull` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_PROGBITS` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:19 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtProgbits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SYMTAB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:37 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSymtab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_STRTAB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:53 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtStrtab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_RELA` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:69 [INFO] [stdout] | [INFO] [stdout] 192 | ... SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtRela` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HASH` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:83 [INFO] [stdout] | [INFO] [stdout] 192 | ...2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtHash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_DYNAMIC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:97 [INFO] [stdout] | [INFO] [stdout] 192 | ..., SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtDynamic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NOTE` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:114 [INFO] [stdout] | [INFO] [stdout] 192 | ..., SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtNote` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NOBITS` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:128 [INFO] [stdout] | [INFO] [stdout] 192 | ...SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtNobits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_REL` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:144 [INFO] [stdout] | [INFO] [stdout] 192 | ... 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `ShtRel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SHLIB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:157 [INFO] [stdout] | [INFO] [stdout] 192 | ...7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `ShtShlib` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_DYNSYM` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtDynsym` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_move` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:22 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwMove` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_COMDAT` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:50 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwComdat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_syminfo` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:80 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwSyminfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_verdef` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:111 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVerdef` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_verneed` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:141 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVerneed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_versym` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVersym` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_LOPROC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:35 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtLoproc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HIPROC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:60 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtHiproc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_LOUSER` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:85 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtLouser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HIUSER` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:110 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtHiuser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/toy_gdb.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 38 | / loop { [INFO] [stdout] 39 | | let status: WaitStatus = ptrace::wait_pid(pid).unwrap(); [INFO] [stdout] 40 | | let pid = status.pid().unwrap(); [INFO] [stdout] 41 | | println!("status: {:?}", status); [INFO] [stdout] ... | [INFO] [stdout] 64 | | ptrace::syscall_step(pid); [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 66 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elf_ephdr` [INFO] [stdout] --> src/check_fn_viradd.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let elf_ephdr: ElfEPhdr = ElfEPhdr::parse_unit(&file, &elf_ehdr, idx as usize); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elf_ephdr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elf_ephdr` [INFO] [stdout] --> src/check_fn_viradd.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let elf_ephdr: ElfEPhdr = ElfEPhdr::parse_unit(&file, &elf_ehdr, idx as usize); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elf_ephdr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/toy_gdb.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | let mut regs: user_regs_struct = ptrace::getregs(pid).unwrap(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:122:44 [INFO] [stdout] | [INFO] [stdout] 122 | let first_line = res.split('\n').find(|e| { true }).with_context(|| "first_line is none in fetch_text_base_vir_address method.")?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:123:50 [INFO] [stdout] | [INFO] [stdout] 123 | let memory_map = first_line.split(' ').find(|e| { true }).with_context(|| "memory_map is none in fetch_text_base_vir_address method.")?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:124:53 [INFO] [stdout] | [INFO] [stdout] 124 | let text_start_at = memory_map.split('-').find(|e| { true }).with_context(|| "text_start_at is none in fetch_text_base_vir_address me... [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traceme` is never used [INFO] [stdout] --> src/ptrace.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn traceme() -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detach` is never used [INFO] [stdout] --> src/ptrace.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn detach(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_tracesysgood` is never used [INFO] [stdout] --> src/ptrace.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn set_tracesysgood(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_emulate_option` is never used [INFO] [stdout] --> src/ptrace.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn set_emulate_option(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_emulate_option_simple` is never used [INFO] [stdout] --> src/ptrace.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn set_emulate_option_simple(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_option_simple` is never used [INFO] [stdout] --> src/ptrace.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn set_option_simple(pid: Pid, options: ptrace::Options) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_all` is never used [INFO] [stdout] --> src/ptrace.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn wait_all() -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `syscall` is never used [INFO] [stdout] --> src/ptrace.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn syscall(pid: Pid) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_memory` is never used [INFO] [stdout] --> src/ptrace.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn read_memory(pid: Pid, addr: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_data` is never used [INFO] [stdout] --> src/ptrace.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn write_data(pid: Pid, addr: u64, data: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sysemu` is never used [INFO] [stdout] --> src/ptrace.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn sysemu(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sysemu_single` is never used [INFO] [stdout] --> src/ptrace.rs:120:8 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn sysemu_single(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poke_user` is never used [INFO] [stdout] --> src/ptrace.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn poke_user(pid: Pid, addr: u64, data: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_event` is never used [INFO] [stdout] --> src/ptrace.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn get_event(pid: Pid) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_siginfo` is never used [INFO] [stdout] --> src/ptrace.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn get_siginfo(pid: Pid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_fn_vir_address` is never used [INFO] [stdout] --> src/check_fn_viradd.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn check_fn_vir_address(file_path: &str, sym_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/check_fn_viradd.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 90 | struct EIdent { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 91 | magic_num1: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | elf_class: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 96 | elf_endian: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 97 | elf_format_version: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | os_abi: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 99 | os_abi_version: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 100 | padding: [u8; 6], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EIdent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/check_fn_viradd.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 137 | struct ElfEPhdr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 138 | p_type: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 139 | p_flags: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 140 | p_offset: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 141 | p_vaddr: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 142 | p_paddr: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 143 | p_filesz: u64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 144 | p_memsz: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 145 | p_align: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ElfEPhdr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/check_fn_viradd.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 191 | enum SHType { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = ... [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6fffff... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SHType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lookup_sym_name` is never used [INFO] [stdout] --> src/check_fn_viradd.rs:219:4 [INFO] [stdout] | [INFO] [stdout] 219 | fn lookup_sym_name(file: &Vec, elf_eshdr_list: &Vec, sym_name: &str) -> Result>, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/toy_gdb.rs:47:97 [INFO] [stdout] | [INFO] [stdout] 47 | ...nic!(format!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 47 - let instruction = if instruction_res.is_ok() { instruction_res.unwrap() } else { panic!(format!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point)) }; [INFO] [stdout] 47 + let instruction = if instruction_res.is_ok() { instruction_res.unwrap() } else { panic!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | ptrace::poke_text(pid, debug_point, (instruction & !0xff | 0xcc) as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 49 | let _ = ptrace::poke_text(pid, debug_point, (instruction & !0xff | 0xcc) as u64); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | ptrace::setregs(pid, regs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = ptrace::setregs(pid, regs); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | ptrace::poke_text(pid, debug_point, instruction as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = ptrace::poke_text(pid, debug_point, instruction as u64); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | ptrace::syscall(pid, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 80 | let _ = ptrace::syscall(pid, None); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | ptrace::step(pid, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 84 | let _ = ptrace::step(pid, None); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / Errno::result( [INFO] [stdout] 113 | | unsafe { libc::ptrace(31 as libc::c_uint, libc::pid_t::from(pid), std::ptr::null_mut::(), std::ptr::null_mut:: src/ptrace.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | / Errno::result( [INFO] [stdout] 122 | | unsafe { libc::ptrace(32 as libc::c_uint, libc::pid_t::from(pid), std::ptr::null_mut::(), std::ptr::null_mut:: src/ptrace.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | / Errno::result( [INFO] [stdout] 149 | | unsafe { libc::ptrace(6 as libc::c_uint, libc::pid_t::from(pid), addr as *mut libc::c_void, data as *mut libc::c_void) } [INFO] [stdout] 150 | | ) [INFO] [stdout] 151 | | .map(drop); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 148 | let _ = Errno::result( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message contains an unused formatting placeholder [INFO] [stdout] --> src/check_fn_viradd.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{:?} is nothing.") [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this message is not used as a format string when given without arguments, but will be in Rust 2021 [INFO] [stdout] help: add the missing argument [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{:?} is nothing.", ...) [INFO] [stdout] | +++++ [INFO] [stdout] help: or add a "{}" format string to use the message literally [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{}", "{:?} is nothing.") [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message contains an unused formatting placeholder [INFO] [stdout] --> src/check_fn_viradd.rs:84:23 [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{:?} is nothing.") [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this message is not used as a format string when given without arguments, but will be in Rust 2021 [INFO] [stdout] help: add the missing argument [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{:?} is nothing.", ...) [INFO] [stdout] | +++++ [INFO] [stdout] help: or add a "{}" format string to use the message literally [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{}", "{:?} is nothing.") [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.08s [INFO] running `Command { std: "docker" "inspect" "8712dc3092984f9ae79b321b971a11fad3fb0fbd8edc8dfb68669e61aa4bd9cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8712dc3092984f9ae79b321b971a11fad3fb0fbd8edc8dfb68669e61aa4bd9cb", kill_on_drop: false }` [INFO] [stdout] 8712dc3092984f9ae79b321b971a11fad3fb0fbd8edc8dfb68669e61aa4bd9cb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 11fc09785d68d007a36c63447b202c5c2f422ae010560542c9b95314bdb3d93b [INFO] running `Command { std: "docker" "start" "-a" "11fc09785d68d007a36c63447b202c5c2f422ae010560542c9b95314bdb3d93b", kill_on_drop: false }` [INFO] [stderr] Compiling toy-gdb v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Pid`, `chdir`, `chroot`, `mkdir`, `pivot_root`, and `sethostname` [INFO] [stdout] --> src/main.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use nix::unistd::{Pid, getpid, sethostname, chroot, chdir, mkdir, pivot_root}; [INFO] [stdout] | ^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/toy_gdb.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{Result, Error, Context}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `stdout` [INFO] [stdout] --> src/toy_gdb.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Write, stdout}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/toy_gdb.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `getpid` [INFO] [stdout] --> src/toy_gdb.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use nix::unistd::{Pid, getpid}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nix::sys::signal` [INFO] [stdout] --> src/toy_gdb.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use nix::sys::signal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/toy_gdb.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/toy_gdb.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::args` [INFO] [stdout] --> src/check_fn_viradd.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::env::args; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Demangle` and `TryDemangleError` [INFO] [stdout] --> src/check_fn_viradd.rs:7:36 [INFO] [stdout] | [INFO] [stdout] 7 | use rustc_demangle::{try_demangle, Demangle, TryDemangleError}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NULL` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtNull` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_PROGBITS` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:19 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtProgbits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SYMTAB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:37 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSymtab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_STRTAB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:53 [INFO] [stdout] | [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtStrtab` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_RELA` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:69 [INFO] [stdout] | [INFO] [stdout] 192 | ... SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtRela` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HASH` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:83 [INFO] [stdout] | [INFO] [stdout] 192 | ...2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtHash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_DYNAMIC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:97 [INFO] [stdout] | [INFO] [stdout] 192 | ..., SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtDynamic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NOTE` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:114 [INFO] [stdout] | [INFO] [stdout] 192 | ..., SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ShtNote` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_NOBITS` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:128 [INFO] [stdout] | [INFO] [stdout] 192 | ...SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtNobits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_REL` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:144 [INFO] [stdout] | [INFO] [stdout] 192 | ... 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `ShtRel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SHLIB` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:192:157 [INFO] [stdout] | [INFO] [stdout] 192 | ...7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = 10, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `ShtShlib` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_DYNSYM` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtDynsym` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_move` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:22 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwMove` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_COMDAT` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:50 [INFO] [stdout] | [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffff... [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwComdat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_syminfo` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:80 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwSyminfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_verdef` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:111 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVerdef` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_verneed` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:193:141 [INFO] [stdout] | [INFO] [stdout] 193 | ...UNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6ffffffe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVerneed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_SUNW_versym` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtSunwVersym` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_LOPROC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:35 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtLoproc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HIPROC` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:60 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtHiproc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_LOUSER` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:85 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtLouser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHT_HIUSER` should have an upper camel case name [INFO] [stdout] --> src/check_fn_viradd.rs:194:110 [INFO] [stdout] | [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `ShtHiuser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/toy_gdb.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 38 | / loop { [INFO] [stdout] 39 | | let status: WaitStatus = ptrace::wait_pid(pid).unwrap(); [INFO] [stdout] 40 | | let pid = status.pid().unwrap(); [INFO] [stdout] 41 | | println!("status: {:?}", status); [INFO] [stdout] ... | [INFO] [stdout] 64 | | ptrace::syscall_step(pid); [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 66 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elf_ephdr` [INFO] [stdout] --> src/check_fn_viradd.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let elf_ephdr: ElfEPhdr = ElfEPhdr::parse_unit(&file, &elf_ehdr, idx as usize); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elf_ephdr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elf_ephdr` [INFO] [stdout] --> src/check_fn_viradd.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let elf_ephdr: ElfEPhdr = ElfEPhdr::parse_unit(&file, &elf_ehdr, idx as usize); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elf_ephdr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/toy_gdb.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | let mut regs: user_regs_struct = ptrace::getregs(pid).unwrap(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:122:44 [INFO] [stdout] | [INFO] [stdout] 122 | let first_line = res.split('\n').find(|e| { true }).with_context(|| "first_line is none in fetch_text_base_vir_address method.")?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:123:50 [INFO] [stdout] | [INFO] [stdout] 123 | let memory_map = first_line.split(' ').find(|e| { true }).with_context(|| "memory_map is none in fetch_text_base_vir_address method.")?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/toy_gdb.rs:124:53 [INFO] [stdout] | [INFO] [stdout] 124 | let text_start_at = memory_map.split('-').find(|e| { true }).with_context(|| "text_start_at is none in fetch_text_base_vir_address me... [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traceme` is never used [INFO] [stdout] --> src/ptrace.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn traceme() -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detach` is never used [INFO] [stdout] --> src/ptrace.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn detach(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_tracesysgood` is never used [INFO] [stdout] --> src/ptrace.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn set_tracesysgood(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_emulate_option` is never used [INFO] [stdout] --> src/ptrace.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn set_emulate_option(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_emulate_option_simple` is never used [INFO] [stdout] --> src/ptrace.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn set_emulate_option_simple(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_option_simple` is never used [INFO] [stdout] --> src/ptrace.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn set_option_simple(pid: Pid, options: ptrace::Options) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_all` is never used [INFO] [stdout] --> src/ptrace.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn wait_all() -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `syscall` is never used [INFO] [stdout] --> src/ptrace.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn syscall(pid: Pid) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_memory` is never used [INFO] [stdout] --> src/ptrace.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn read_memory(pid: Pid, addr: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_data` is never used [INFO] [stdout] --> src/ptrace.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn write_data(pid: Pid, addr: u64, data: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sysemu` is never used [INFO] [stdout] --> src/ptrace.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn sysemu(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sysemu_single` is never used [INFO] [stdout] --> src/ptrace.rs:120:8 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn sysemu_single(pid: Pid) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poke_user` is never used [INFO] [stdout] --> src/ptrace.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn poke_user(pid: Pid, addr: u64, data: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_event` is never used [INFO] [stdout] --> src/ptrace.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn get_event(pid: Pid) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_siginfo` is never used [INFO] [stdout] --> src/ptrace.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn get_siginfo(pid: Pid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_fn_vir_address` is never used [INFO] [stdout] --> src/check_fn_viradd.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn check_fn_vir_address(file_path: &str, sym_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/check_fn_viradd.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 90 | struct EIdent { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 91 | magic_num1: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | elf_class: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 96 | elf_endian: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 97 | elf_format_version: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | os_abi: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 99 | os_abi_version: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 100 | padding: [u8; 6], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EIdent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/check_fn_viradd.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 137 | struct ElfEPhdr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 138 | p_type: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 139 | p_flags: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 140 | p_offset: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 141 | p_vaddr: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 142 | p_paddr: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 143 | p_filesz: u64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 144 | p_memsz: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 145 | p_align: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ElfEPhdr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/check_fn_viradd.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 191 | enum SHType { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 192 | SHT_NULL = 0, SHT_PROGBITS = 1, SHT_SYMTAB = 2, SHT_STRTAB = 3, SHT_RELA = 4, SHT_HASH = 5, SHT_DYNAMIC = 6, SHT_NOTE = 7, SHT_NOBITS = 8, SHT_REL = 9, SHT_SHLIB = ... [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 193 | SHT_DYNSYM = 11, SHT_SUNW_move = 0x6ffffffa, SHT_SUNW_COMDAT = 0x6ffffffb, SHT_SUNW_syminfo = 0x6ffffffc, SHT_SUNW_verdef = 0x6ffffffd, SHT_SUNW_verneed = 0x6fffff... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | SHT_SUNW_versym = 0x6fffffff, SHT_LOPROC = 0x70000000, SHT_HIPROC = 0x7fffffff, SHT_LOUSER = 0x80000000, SHT_HIUSER = 0xffffffff, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SHType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lookup_sym_name` is never used [INFO] [stdout] --> src/check_fn_viradd.rs:219:4 [INFO] [stdout] | [INFO] [stdout] 219 | fn lookup_sym_name(file: &Vec, elf_eshdr_list: &Vec, sym_name: &str) -> Result>, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/toy_gdb.rs:47:97 [INFO] [stdout] | [INFO] [stdout] 47 | ...nic!(format!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 47 - let instruction = if instruction_res.is_ok() { instruction_res.unwrap() } else { panic!(format!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point)) }; [INFO] [stdout] 47 + let instruction = if instruction_res.is_ok() { instruction_res.unwrap() } else { panic!("ptrace::peek_text error.[instruction_res: {:?}, pid: {:?}, debug_point: {:x}]", instruction_res, pid, debug_point) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | ptrace::poke_text(pid, debug_point, (instruction & !0xff | 0xcc) as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 49 | let _ = ptrace::poke_text(pid, debug_point, (instruction & !0xff | 0xcc) as u64); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | ptrace::setregs(pid, regs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = ptrace::setregs(pid, regs); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/toy_gdb.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | ptrace::poke_text(pid, debug_point, instruction as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = ptrace::poke_text(pid, debug_point, instruction as u64); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | ptrace::syscall(pid, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 80 | let _ = ptrace::syscall(pid, None); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | ptrace::step(pid, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 84 | let _ = ptrace::step(pid, None); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ptrace.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / Errno::result( [INFO] [stdout] 113 | | unsafe { libc::ptrace(31 as libc::c_uint, libc::pid_t::from(pid), std::ptr::null_mut::(), std::ptr::null_mut:: src/ptrace.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | / Errno::result( [INFO] [stdout] 122 | | unsafe { libc::ptrace(32 as libc::c_uint, libc::pid_t::from(pid), std::ptr::null_mut::(), std::ptr::null_mut:: src/ptrace.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | / Errno::result( [INFO] [stdout] 149 | | unsafe { libc::ptrace(6 as libc::c_uint, libc::pid_t::from(pid), addr as *mut libc::c_void, data as *mut libc::c_void) } [INFO] [stdout] 150 | | ) [INFO] [stdout] 151 | | .map(drop); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 148 | let _ = Errno::result( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message contains an unused formatting placeholder [INFO] [stdout] --> src/check_fn_viradd.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{:?} is nothing.") [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this message is not used as a format string when given without arguments, but will be in Rust 2021 [INFO] [stdout] help: add the missing argument [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{:?} is nothing.", ...) [INFO] [stdout] | +++++ [INFO] [stdout] help: or add a "{}" format string to use the message literally [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("{}", "{:?} is nothing.") [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message contains an unused formatting placeholder [INFO] [stdout] --> src/check_fn_viradd.rs:84:23 [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{:?} is nothing.") [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this message is not used as a format string when given without arguments, but will be in Rust 2021 [INFO] [stdout] help: add the missing argument [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{:?} is nothing.", ...) [INFO] [stdout] | +++++ [INFO] [stdout] help: or add a "{}" format string to use the message literally [INFO] [stdout] | [INFO] [stdout] 84 | _ => panic!("{}", "{:?} is nothing.") [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s [INFO] running `Command { std: "docker" "inspect" "11fc09785d68d007a36c63447b202c5c2f422ae010560542c9b95314bdb3d93b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11fc09785d68d007a36c63447b202c5c2f422ae010560542c9b95314bdb3d93b", kill_on_drop: false }` [INFO] [stdout] 11fc09785d68d007a36c63447b202c5c2f422ae010560542c9b95314bdb3d93b