Comments (3)
First i don't know this project, i was looking at it and i seen your issue!
In src/ptracer.rs
at 363 is:
const DEFAULT_POLL_DELAY: Duration = Duration::from_millis(100);
You can add this line after 36 in examples/syscalls.rs
*ptracer.poll_delay_mut() = std::time::Duration::ZERO;
The delay i think was added to be more readable!
from pete.
Interesting. Surely there's a way to do this without polling?
Also btw @ranweiler you can slightly simplify the loop
that does the poll because in Rust loops can return values.
from pete.
@Timmmm, thanks for reporting, the default poll delay is definitely too high. I'll try to at least push a perf bugfix for that tonight, but as noted above, you can set it yourself in the meantime.
I'm experimenting with a few different strategies that would let the kernel notify us, instead of manual polling. There are some tradeoffs, assumptions about tracee behavior, and version-dependent Linux-isms at play here, so I'm trying to be very careful in how I implement it. I'll probably preserve the polling as a fallback mode, but that's part of what I'm trying to sort out. Please stand by!
from pete.
Related Issues (20)
- Tracer calls to `waitpid()` leave non-tracees un-waitable
- Breaking in 0.12: tracee's that call wait(2) HOT 1
- tracee hang infinitly if it exec on not main thread HOT 1
- Add integration tests HOT 1
- new release with bump of nix requirement
- Enable use of `PTRACE_GET_SYSCALL_INFO`
- Ease user detection of tracee death via `ESRCH` errors HOT 1
- Make marker field private HOT 1
- Revisit `Stop` variants
- Remove `Error::Restart`
- Support accessing x86 debug registers
- Document platform support
- Conditionally define arch-specific features
- Remove reundant suffix from `Stop` variants
- mark changes from 0.6.0 in changelog as part of 0.6.0
- Update examples for aarch64
- Update MSRV to 1.46.0
- Add support for reading C strings HOT 2
- Add way to set Ptracer.options HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pete.