Vladimir
а это не будет лишний жамп?
Vladimir
PTR realmemset
jmp memset_ptr
...
memset_ptr:
jmp *realmemset?
Berkus
оно прямо в PLT подменяется
Vladimir
расшифруй plt
Vladimir
точнее букву P
Berkus
PLT stands for Procedure Linkage Table which is, put simply, used to call external procedures/functions whose address isn't known in the time of linking, and is left to be resolved by the dynamic linker at run time.
Vladimir
т.е. это пашет только для шаред либ?
Vladimir
libc может же быть и в статик
Маjко
В общем случае она шаред
Berkus
может, но тогда он делает это по-другому
Vladimir
Вопрос в том, это сейчас фантазии, или реальность?)
Cuno
Berkus
фантазии конечно, винда вообще ничего такого не делает
Cuno
в винде может и фантазии, да
Αλεχ
как можно запустить Command и не дожидатсья её завершения?
Αλεχ
например я хочу запустить прогу и закрыться
Денис
просто https://doc.rust-lang.org/std/process/struct.Command.html#method.spawn и забываешь
Денис
There is no implementation of Drop for child processes, so if you do not ensure the Child has exited then it will continue to run, even after the Child handle to the child process has gone out of scope.
Маjко
Хм
Маjко
use std::process::Command;
fn main() {
Command::new("bash")
.args(&["-c", "sleep 2", "&&", "touch finished"])
.spawn()
.unwrap();
}
Маjко
Не прокатывает
Маjко
Вроде как чайлды прибиваются при завершении родительского процесса в юниксах
Anton
Маjко
Денис
не подумал
Anton
Или из чайлда, делал такое
Маjко
https://doc.rust-lang.org/std/process/struct.Child.html
Anton
А ты про это, я на сишечке делал =)
Денис
в сишечке я форкался и делал execvp
Маjко
Ну на сишечке оно на сишечке
Денис
во
Денис
или не во
Маjко
Остается открытым вопрос как форкнуться перед exec
Anton
unsafe fork ?
Маjко
Я так и делал когда надо было
Маjко
Через stdlib походу никак
Маjко
https://github.com/mersinvald/rust_shm_ipc/blob/master/src/process.rs
Маjко
Вот тут пример есть
Маjко
На nix
Денис
https://doc.rust-lang.org/std/os/unix/process/trait.CommandExt.html#tymethod.before_exec
Денис
надо тут вызвать setsid()
Денис
блин
Денис
форка же нет :(
Денис
или есть
Денис
слушай, всё норм походу
Денис
ща
Денис
Command::new("/usr/bin/sleep")
.arg("60")
.before_exec(|| {
unsafe { libc::setsid() };
Ok(())
})
.spawn()
.unwrap();
Денис
Αλεχ
Αλεχ
Αλεχ
https://github.com/rust-lang/rfcs/pull/2442
Αλεχ
Подскажите плз
Αλεχ
$ cargo install pwasm-utils
Updating registry `https://github.com/rust-lang/crates.io-index`
Installing pwasm-utils v0.2.0
error: specified package has no binaries
Αλεχ
шо эта?
Aleksey
cargo install ведь добавляет глобальную команду
պլհկ
инсталить можно только бинарники
Aleksey
для этого бинарник должен быть
պլհկ
надо ставить pwasm-utils-cli видимо
Αλεχ
https://github.com/paritytech/wasm-utils#build-tools-for-cargo
Αλεχ
PS C:\Users\Alex\Documents\Rust\pwasm-tutorial\step-0> cargo install pwasm-utils
Updating registry `https://github.com/rust-lang/crates.io-index`
Installing pwasm-utils v0.2.0
error: specified package has no binaries
PS C:\Users\Alex\Documents\Rust\pwasm-tutorial\step-0> cargo install pwasm-utils --bin wasm-build
Updating registry `https://github.com/rust-lang/crates.io-index`
Installing pwasm-utils v0.2.0
error: binary `wasm-build.exe` already exists in destination as part of `pwasm-utils v0.1.5`
Add --force to overwrite
PS C:\Users\Alex\Documents\Rust\pwasm-tutorial\step-0> cargo install pwasm-utils --bin wasm-build --force
Updating registry `https://github.com/rust-lang/crates.io-index`
Installing pwasm-utils v0.2.0
error: failed to compile `pwasm-utils v0.2.0`, intermediate artifacts can be found at `C:\Users\Alex\AppData\Local\Temp\cargo-install4m952O`
Caused by:
no bin target named `wasm-build`
Αλεχ
чо ни делай- все ему не то
Berkus
wasm-build сначала поставь
պլհկ
https://github.com/paritytech/wasm-utils/tree/master/cli
Αλεχ
блин, почему об этом нельзя в ридми написать?
Αλεχ
ну окей, поставил, та же хурмма
Αλεχ
Finished release [optimized] target(s) in 42.80s
Replacing C:\Users\Alex\.cargo\bin\wasm-prune.exe
Replacing C:\Users\Alex\.cargo\bin\wasm-ext.exe
Replacing C:\Users\Alex\.cargo\bin\wasm-gas.exe
Replacing C:\Users\Alex\.cargo\bin\wasm-build.exe
Replacing C:\Users\Alex\.cargo\bin\wasm-stack-height.exe
PS C:\Users\Alex\Documents\Rust\pwasm-tutorial\step-0> cargo install pwasm-utils --bin wasm-build --force
Updating registry `https://github.com/rust-lang/crates.io-index`
Installing pwasm-utils v0.2.0
error: failed to compile `pwasm-utils v0.2.0`, intermediate artifacts can be found at `C:\Users\Alex\AppData\Local\Temp\cargo-installQua4kZ`
Caused by:
no bin target named `wasm-build`
Berkus
Replacing C:\Users\Alex\.cargo\bin\wasm-build.exe
путь у тебя этот работае?
Berkus
набери wasm-build сам
Αλεχ
работает
Αλεχ
как "набрать сам" яхз, он же через cargo должен вызываться, нет?
Маjко
Нет
Маjко
Ну то есть ты можешь и сам инвокнуть
Berkus
вместо cargo набери wasm-build
Αλεχ
wasm-build install pwasm-utils
Failed to copy 'install\wasm32-unknown-emscripten\release\pwasm_utils.wasm' to 'install\pwasm-utils.wasm': The system cannot find the path specified. (os error 3). Have you tried to run "cargo build"?
?
Αλεχ
или как?
Маjко
Вопрос был в том чтобы убедиться, что он есть в path
Маjко
Он есть)
Berkus
да, есть похоже
Berkus
Caused by:
no bin target named wasm-build
убери таргет, зачем ты его указываешь?