repo: yaxpeax-x86
commit: 953fb84fca06f34f1ae70481f6449c39f734f24b aka inst-behavior, run: 883
status: error in 13.263s
  description: callback error: stack traceback:
	[C]: in ?
	[C]: in field 'run'
	[string "goodfile"]:12: in main chunk
  deployed: false
    
artifacts
Mon, 23 Feb 2026 21:55:47 +0000
step:
git clone log (stdout)

Mon, 23 Feb 2026 21:55:47 +0000
step:
git clone log (stderr)
Cloning into 'tmpdir'...
warning: redirecting to https://github.com/iximeow/yaxpeax-x86.git/
Mon, 23 Feb 2026 21:55:49 +0000
step:
git checkout log (stdout)

Mon, 23 Feb 2026 21:55:49 +0000
step:
git checkout log (stderr)
Note: switching to '953fb84fca06f34f1ae70481f6449c39f734f24b'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 953fb84 set up an IDT, and try to use it, but just discover the GDT is actually broken
Mon, 23 Feb 2026 21:55:49 +0000
step:
cargo build log (stdout)

Mon, 23 Feb 2026 21:55:49 +0000
step:
cargo build log (stderr)
    Updating crates.io index
     Locking 79 packages to latest compatible versions
   Compiling libc v0.2.182
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.24
   Compiling parking_lot_core v0.9.12
   Compiling quote v1.0.44
   Compiling signal-hook v0.3.18
   Compiling serde_core v1.0.228
   Compiling scopeguard v1.2.0
   Compiling smallvec v1.15.1
   Compiling cfg-if v1.0.4
   Compiling log v0.4.29
   Compiling autocfg v1.5.0
   Compiling serde v1.0.228
   Compiling bitflags v2.11.0
   Compiling yaxpeax-x86 v2.0.0 (/home/iximeow/toy/build-o-tron-env/tmpdir)
   Compiling lock_api v0.4.14
   Compiling num-traits v0.2.19
   Compiling syn v2.0.117
   Compiling errno v0.3.14
   Compiling mio v0.8.11
   Compiling signal-hook-registry v1.4.8
   Compiling parking_lot v0.12.5
   Compiling signal-hook-mio v0.2.5
   Compiling crossterm v0.27.0
   Compiling serde_derive v1.0.228
   Compiling yaxpeax-arch v0.3.2
warning: unused variable: `other`
   --> src/long_mode/behavior.rs:445:21
    |
445 |                     other => {
    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `other`
   --> src/long_mode/behavior.rs:486:21
    |
486 |                     other => {
    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`

warning: type `ImplicitOperand` is more private than the item `InstBehavior::<'inst>::implicit_oplist`
   --> src/long_mode/behavior.rs:335:5
    |
335 |     pub fn implicit_oplist(&self) -> Option<&'static [ImplicitOperand]> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `InstBehavior::<'inst>::implicit_oplist` is reachable at visibility `pub`
    |
note: but type `ImplicitOperand` is only usable at visibility `pub(self)`
   --> src/long_mode/behavior.rs:264:1
    |
264 | struct ImplicitOperand {
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: `#[warn(private_interfaces)]` on by default

warning: methods `set_pl0`, `set_pl_special`, and `set_complex` are never used
   --> src/long_mode/behavior.rs:567:14
    |
558 | impl BehaviorDigest {
    | ------------------- methods in this implementation
...
567 |     const fn set_pl0(mut self) -> Self {
    |              ^^^^^^^
...
579 |     const fn set_pl_special(mut self) -> Self {
    |              ^^^^^^^^^^^^^^
...
605 |     const fn set_complex(mut self, state: bool) -> Self {
    |              ^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: `yaxpeax-x86` (lib) generated 4 warnings (run `cargo fix --lib -p yaxpeax-x86` to apply 2 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.92s
Mon, 23 Feb 2026 21:55:54 +0000
step:
cargo test log (stdout)
running 6 tests
test long_mode::behavior::test_exception_info ... ok
test long_mode::behavior::test::access_visitor_works ... ok
test long_mode::behavior::test::operand_iter_basically_works ... ok
test long_mode::operand_size ... ok
test real_mode::operand_size ... ok
test protected_mode::operand_size ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s


running 209 tests
test long_mode::bad_instructions ... ok
test long_mode::display::test_instructions_atnt ... ignored
test long_mode::behavior::kvm::behavior_verify_kvm ... FAILED
test long_mode::behavior::kvm::kvm_verify_ins ... FAILED
test long_mode::behavior::kvm::kvm_verify_inc ... FAILED
test long_mode::behavior::kvm::kvm_verify_push ... FAILED
test long_mode::behavior::kvm::kvm_verify_xor_reg_mem ... FAILED
test long_mode::behavior::kvm::test_pf ... FAILED
test long_mode::descriptions::test_modrm_decode ... ok
test long_mode::from_llvm ... ok
test long_mode::evex ... ok
test long_mode::opcode::conditional_instructions ... ok
test long_mode::display::test_instructions_c ... ok
test long_mode::operand::register_widths ... ok
test long_mode::only_64bit ... ok
test long_mode::evex_generated::tests_f3_0f38 ... ok
test long_mode::from_reports ... ok
test long_mode::operand::memory_widths ... ok
test long_mode::operand::test_implied_memory_width ... ok
test long_mode::prefixed_660f ... ok
test long_mode::prefixed_f20f ... ok
test long_mode::prefixed_f30f ... ok
test long_mode::reg_specs::invalid_byte_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_dword_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_mask_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_rex_byte_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_qword_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_word_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_x87_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_xmm_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_ymm_reg_panics - should panic ... ok
test long_mode::reg_specs::invalid_zmm_reg_panics - should panic ... ok
test long_mode::reg_specs::reg_specs_are_correct ... ok
test long_mode::regspec::match_bank_kind ... ok
test long_mode::prefixed_0f ... ok
test long_mode::register_synonyms_use_old_bank ... ok
test long_mode::regspec::test_bank_names ... ok
test long_mode::regspec::test_hash ... ok
test long_mode::regspec::test_labels ... ok
test long_mode::regspec::test_ord ... ok
test long_mode::strange_prefixing ... ok
test long_mode::test_E_decode ... ok
test long_mode::test_adx ... ok
test long_mode::test_aesni ... ok
test long_mode::test_3dnow ... ok
test long_mode::test_0f01 ... ok
test long_mode::test_0fae ... ok
test long_mode::test_arithmetic ... ok
test long_mode::test_bmi1 ... ok
test long_mode::test_cet ... ok
test long_mode::test_key_locker ... ok
test long_mode::test_enqcmd ... ok
test long_mode::test_bmi2 ... ok
test long_mode::test_lzcnt ... ok
test long_mode::test_cmpxchg8b ... ok
test long_mode::test_gfni ... ok
test long_mode::test_bitwise ... ok
test long_mode::test_prefetchw ... ok
test long_mode::test_movbe ... ok
test long_mode::test_popcnt ... ok
test long_mode::evex_generated::tests_f2_0f38 ... ok
test long_mode::test_prefixes ... ok
test long_mode::test_mishegos_finds ... ok
test long_mode::test_modrm_decode ... ok
test long_mode::test_misc ... ok
test long_mode::test_mmx ... ok
test long_mode::test_push_pop ... ok
test long_mode::test_rdpid ... ok
test long_mode::test_cvt ... ok
test long_mode::test_sevsnp ... ok
test long_mode::test_rand ... ok
test long_mode::test_sha ... ok
test long_mode::test_mov ... ok
test long_mode::test_keylocker ... ok
test long_mode::test_control_flow ... ok
test long_mode::test_stack ... ok
test long_mode::test_svm ... ok
test long_mode::test_sse ... ok
test long_mode::test_direct_stores ... ok
test long_mode::test_ssse3 ... ok
test long_mode::test_sse4_2 ... ok
test long_mode::test_sse3 ... ok
test long_mode::test_sse4_1 ... ok
test long_mode::test_system ... ok
test long_mode::evex_generated::tests_f2_0f ... ok
test long_mode::test_tdx ... ok
test long_mode::test_test_cmp ... ok
test long_mode::test_sse4a ... ok
test long_mode::test_tsx ... ok
test long_mode::evex_generated::tests_f3_0f ... ok
test long_mode::test_tsxldtrk ... ok
test protected_mode::display::test_instructions_atnt ... ignored
test long_mode::test_uintr ... ok
test protected_mode::bad_instructions ... ok
test protected_mode::evex ... ok
test protected_mode::display::test_instructions_c ... ok
test long_mode::test_sse2 ... ok
test long_mode::test_vmx ... ok
test protected_mode::from_reports ... ok
test protected_mode::only_32bit ... ok
test long_mode::test_xchg ... ok
test protected_mode::operand::memory_widths ... ok
test protected_mode::from_llvm ... ok
test protected_mode::opcode::conditional_instructions ... ok
test protected_mode::operand::register_widths ... ok
test protected_mode::prefixed_f20f ... ok
test protected_mode::operand::test_implied_memory_width ... ok
test protected_mode::prefixed_f30f ... ok
test protected_mode::reg_specs::invalid_byte_reg_panics - should panic ... ok
test protected_mode::reg_specs::invalid_dword_reg_panics - should panic ... ok
test protected_mode::evex_generated::tests_f3_0f38 ... ok
test protected_mode::reg_specs::invalid_zmm_reg_panics - should panic ... ok
test protected_mode::reg_specs::invalid_xmm_reg_panics - should panic ... ok
test protected_mode::reg_specs::invalid_ymm_reg_panics - should panic ... ok
test protected_mode::reg_specs::reg_specs_are_correct ... ok
test long_mode::test_x87 ... ok
test protected_mode::regspec::test_hash ... ok
test protected_mode::regspec::test_ord ... ok
test protected_mode::regspec::test_labels ... ok
test protected_mode::strange_prefixing ... ok
test protected_mode::prefixed_660f ... ok
test protected_mode::reg_specs::invalid_mask_reg_panics - should panic ... ok
test protected_mode::test_0f01 ... ok
test protected_mode::reg_specs::invalid_word_reg_panics - should panic ... ok
test protected_mode::reg_specs::invalid_x87_reg_panics - should panic ... ok
test protected_mode::regspec::match_bank_kind ... ok
test protected_mode::prefixed_0f ... ok
test protected_mode::regspec::test_bank_names ... ok
test protected_mode::test_E_decode ... ok
test protected_mode::test_adx ... ok
test protected_mode::test_3dnow ... ok
test protected_mode::test_0fae ... ok
test protected_mode::test_bitwise ... ok
test protected_mode::test_bmi1 ... ok
test protected_mode::test_arithmetic ... ok
test protected_mode::test_aesni ... ok
test protected_mode::test_bmi2 ... ok
test protected_mode::test_cet ... ok
test protected_mode::test_control_flow ... ok
test protected_mode::test_cvt ... ok
test protected_mode::test_gfni ... ok
test protected_mode::test_cmpxchg8b ... ok
test protected_mode::test_key_locker ... ok
test protected_mode::test_keylocker ... ok
test protected_mode::test_direct_stores ... ok
test protected_mode::test_enqcmd ... ok
test protected_mode::test_mishegos_finds ... ok
test protected_mode::test_modrm_decode ... ok
test protected_mode::test_movbe ... ok
test protected_mode::test_mmx ... ok
test protected_mode::test_prefetchw ... ok
test protected_mode::test_popcnt ... ok
test protected_mode::test_prefixes ... ok
test protected_mode::test_mov ... ok
test protected_mode::test_rdpid ... ok
test protected_mode::test_sevsnp ... ok
test protected_mode::test_lzcnt ... ok
test protected_mode::test_sha ... ok
test protected_mode::test_push_pop ... ok
test protected_mode::test_rand ... ok
test protected_mode::test_stack ... ok
test protected_mode::test_sse4_2 ... ok
test protected_mode::test_misc ... ok
test protected_mode::test_sse3 ... ok
test protected_mode::test_sse4a ... ok
test protected_mode::test_sse ... ok
test protected_mode::test_svm ... ok
test protected_mode::test_system ... ok
test protected_mode::test_test_cmp ... ok
test protected_mode::test_tsx ... ok
test long_mode::evex_generated::tests_None_0f ... ok
test protected_mode::test_tsxldtrk ... ok
test protected_mode::test_uintr ... ok
test protected_mode::test_xchg ... ok
test protected_mode::test_ssse3 ... ok
test real_mode::from_llvm ... ok
test protected_mode::test_tdx ... ok
test protected_mode::test_sse2 ... ok
test protected_mode::test_sse4_1 ... ok
test protected_mode::test_vmx ... ok
test protected_mode::test_x87 ... ok
test real_mode::from_reports ... ok
test real_mode::operand::test_implied_memory_width ... ok
test real_mode::only_16bit ... ok
test real_mode::reg_specs::invalid_byte_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_dword_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_mask_reg_panics - should panic ... ok
test real_mode::opcode::conditional_instructions ... ok
test real_mode::reg_specs::invalid_word_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_x87_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_xmm_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_ymm_reg_panics - should panic ... ok
test real_mode::reg_specs::invalid_zmm_reg_panics - should panic ... ok
test real_mode::reg_specs::reg_specs_are_correct ... ok
test protected_mode::evex_generated::tests_f3_0f ... ok
test real_mode::test_invalid_sequences ... ok
test protected_mode::evex_generated::tests_f2_0f38 ... ok
test protected_mode::evex_generated::tests_f2_0f ... ok
test long_mode::evex_generated::tests_66_0f3a ... ok
test protected_mode::test_vex ... ok
test long_mode::test_vex ... ok
test protected_mode::evex_generated::tests_None_0f ... ok
test long_mode::evex_generated::tests_66_0f ... ok
test protected_mode::evex_generated::tests_66_0f3a ... ok
test protected_mode::evex_generated::tests_66_0f ... ok
test long_mode::evex_generated::tests_66_0f38 ... ok
test protected_mode::evex_generated::tests_66_0f38 ... ok
test real_mode::test_real_mode ... ok
test long_mode::reuse_test::test_against_leftover_data ... ok

failures:

---- long_mode::behavior::kvm::behavior_verify_kvm stdout ----

thread 'long_mode::behavior::kvm::behavior_verify_kvm' (2912146) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)

---- long_mode::behavior::kvm::kvm_verify_ins stdout ----

thread 'long_mode::behavior::kvm::kvm_verify_ins' (2912148) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- long_mode::behavior::kvm::kvm_verify_inc stdout ----

thread 'long_mode::behavior::kvm::kvm_verify_inc' (2912147) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)

---- long_mode::behavior::kvm::kvm_verify_push stdout ----

thread 'long_mode::behavior::kvm::kvm_verify_push' (2912149) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)

---- long_mode::behavior::kvm::kvm_verify_xor_reg_mem stdout ----

thread 'long_mode::behavior::kvm::kvm_verify_xor_reg_mem' (2912150) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)

---- long_mode::behavior::kvm::test_pf stdout ----

thread 'long_mode::behavior::kvm::test_pf' (2912151) panicked at test/long_mode/behavior.rs:66:34:
called `Result::unwrap()` on an `Err` value: Error(13)


failures:
    long_mode::behavior::kvm::behavior_verify_kvm
    long_mode::behavior::kvm::kvm_verify_inc
    long_mode::behavior::kvm::kvm_verify_ins
    long_mode::behavior::kvm::kvm_verify_push
    long_mode::behavior::kvm::kvm_verify_xor_reg_mem
    long_mode::behavior::kvm::test_pf

test result: FAILED. 201 passed; 6 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.22s

Mon, 23 Feb 2026 21:55:54 +0000
step:
cargo test log (stderr)
   Compiling rand_core v0.10.0
   Compiling bitflags v1.3.2
   Compiling getrandom v0.4.1
   Compiling cpufeatures v0.3.0
   Compiling kvm-ioctls v0.24.0
warning: unused variable: `other`
   --> src/long_mode/behavior.rs:445:21
    |
445 |                     other => {
    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `other`
   --> src/long_mode/behavior.rs:486:21
    |
486 |                     other => {
    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`

warning: type `ImplicitOperand` is more private than the item `InstBehavior::<'inst>::implicit_oplist`
   --> src/long_mode/behavior.rs:335:5
    |
335 |     pub fn implicit_oplist(&self) -> Option<&'static [ImplicitOperand]> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `InstBehavior::<'inst>::implicit_oplist` is reachable at visibility `pub`
    |
note: but type `ImplicitOperand` is only usable at visibility `pub(self)`
   --> src/long_mode/behavior.rs:264:1
    |
264 | struct ImplicitOperand {
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: `#[warn(private_interfaces)]` on by default

warning: methods `set_pl0`, `set_pl_special`, and `set_complex` are never used
   --> src/long_mode/behavior.rs:567:14
    |
558 | impl BehaviorDigest {
    | ------------------- methods in this implementation
...
567 |     const fn set_pl0(mut self) -> Self {
    |              ^^^^^^^
...
579 |     const fn set_pl_special(mut self) -> Self {
    |              ^^^^^^^^^^^^^^
...
605 |     const fn set_complex(mut self, state: bool) -> Self {
    |              ^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: `yaxpeax-x86` (lib) generated 4 warnings (run `cargo fix --lib -p yaxpeax-x86` to apply 2 suggestions)
   Compiling vmm-sys-util v0.15.0
   Compiling chacha20 v0.10.0
   Compiling rand v0.10.0
   Compiling kvm-bindings v0.14.0
   Compiling yaxpeax-x86 v2.0.0 (/home/iximeow/toy/build-o-tron-env/tmpdir)
warning: unused variable: `sregs`
   --> test/long_mode/behavior.rs:562:25
    |
562 |                     let sregs = vm.vcpu.get_sregs().unwrap();
    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_sregs`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `before_sregs`
   --> test/long_mode/behavior.rs:780:9
    |
780 |         before_sregs: kvm_sregs, after_sregs: kvm_sregs
    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_sregs`

warning: unused variable: `after_sregs`
   --> test/long_mode/behavior.rs:780:34
    |
780 |         before_sregs: kvm_sregs, after_sregs: kvm_sregs
    |                                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after_sregs`

warning: variable does not need to be mutable
    --> test/long_mode/behavior.rs:1056:13
     |
1056 |         let mut buf = Instruction::default();
     |             ----^^^
     |             |
     |             help: remove this `mut`
     |
     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `buf`
    --> test/long_mode/behavior.rs:1056:13
     |
1056 |         let mut buf = Instruction::default();
     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf`

warning: unused variable: `decoded`
    --> test/long_mode/behavior.rs:1070:13
     |
1070 |         let decoded = decoder.decode(&mut reader).expect("can decode");
     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decoded`

warning: unused variable: `before_sregs`
    --> test/long_mode/behavior.rs:1072:13
     |
1072 |         let before_sregs = vm.vcpu.get_sregs().unwrap();
     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_sregs`

warning: `yaxpeax-x86` (lib test) generated 4 warnings (4 duplicates)
warning: `yaxpeax-x86` (test "test") generated 7 warnings (run `cargo fix --test "test" -p yaxpeax-x86` to apply 7 suggestions)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 4.25s
     Running unittests src/lib.rs (target/debug/deps/yaxpeax_x86-891aa476a62ba486)
     Running test/test.rs (target/debug/deps/test-4bd1d5bd8d42375f)
error: test failed, to rerun pass `--test test`

metrics

namevitharr
unknown AuthenticAMD:26:68 @ 5.752GHz
nightly versionrustc 1.92.0 (ded5c06cf 2025-12-08)