Открыл значит в отлядчике тестовый exe-шник, который генерит команда
cargo test
а там дохрена таких конструкций:
jmp short nxt
nxt:
или, что то же самое:
db 0xEB, 0x00
только чего-то не пойму, зачем это нужно, может кто знает?
Открыл значит в отлядчике тестовый exe-шник, который генерит команда
cargo test
а там дохрена таких конструкций:
jmp short nxt
nxt:
или, что то же самое:
db 0xEB, 0x00
только чего-то не пойму, зачем это нужно, может кто знает?
А какой компилятор? Какой таргет? Как дезассемблировал? objdump -M intel -d target/debug/deps/
?
stable-x86_64-pc-windows-msvc
дизассемблировал x64dbg
cargo test
генерит неоптимизированный код, это кстати видно в выводе команды:
Finished dev [unoptimized + debuginfo] target(s) in 1.85s
Попробуйте сделать:
cargo test --release
Скорее всего это для брейкпоинтов сделано.
cargo test
генерит неоптимизированный код, это кстати видно в выводе команды:
Ну это я знаю, в release версии такой фигни нет, поэтому в названии я написал debug.
Скорее всего это для брейкпоинтов сделано.
Для бряка нужен 1 байт, а тут целых 2, хотя может я чего-то не понимаю в этой жизни.
Посмотрел на stable-x86_64-unknown-linux-gnu – точно такие же прыжки.
Так это не rust генерит, а llvm.