Summary:
The `llvm_asm` nightly feature was removed in Rust 1.59 and `asm!()` was simultaneously stabilized, so we need to make the switch so things continue compiling.
This retains the `llvm_asm` code so that it can continue compiling on old llvm versions. This will be removed when that is updated.
Reviewed By: johnhurt
Differential Revision: D34561246
fbshipit-source-id: 42cd2c7e83cea9a5c21bd5871463bb1a42be139d
Summary: The `count` wasn't getting initialized properly, so it was possible in theory that the check could have been failing. I noticed this while attempting to convert this chunk of `llvm_asm!()` to the new `asm!()` syntax. Also added documentation explaining what this code is doing because it's not easy to read.
Reviewed By: johnhurt
Differential Revision: D34542806
fbshipit-source-id: 0f79b9d36757756a1cf76e98830f9cc76f06336c
Summary: Quick fix to make remove the postential for warning messages to cause false determinism failures
Reviewed By: andronat
Differential Revision: D34243592
fbshipit-source-id: 30c025ad8c4921e9c15f72956937166bfaf5d598
Summary:
Adds a way to fetch the command provided to `TracerBuilder`.
We're running into a situation where we're constructing a TracerBuilder and using it much later, but we want to debug and print the command that we're tracing when we execute the traced program.
You can alternatively avoid this by storing the necessary info alongside in an adjacent struct, but it feels a little silly to have to carry around a separate struct just for debugging.
Reviewed By: jasonwhite
Differential Revision: D34231169
fbshipit-source-id: ef40cb396f5530ee1f4324694ce5d9122dfe281f
Summary: Something appears to be causing timer marker events to randomly be sent early or possibly multiple times. This commit adds some sanity check and retry handling to ensure that early wakeups do not impact the implementing tool or at least long runs of single steps (and thus the timeouts that originally sparked this investigation)
Reviewed By: jasonwhite
Differential Revision: D33828008
fbshipit-source-id: 008bf1793964053405643640155269603c4e6bcc
Summary:
This is called when creating a slave from a master pty and returns a file descriptor.
Usage example:
```
async fn handle_ioctl<G: Guest<Self>>(
&self,
guest: &mut G,
syscall: Ioctl,
) -> Result<i64, Errno> {
use reverie::syscalls::ioctl;
match syscall.request() {
ioctl::Request::TIOCGPTPEER(flags) => {
let fd = guest.inject(syscall).await?;
// Do something with the flags and fd ...
Ok(fd)
}
_ => Ok(guest.inject(syscall).await?)
}
}
```
Reviewed By: wangbj, igorsugak
Differential Revision: D33961825
fbshipit-source-id: 0e6d4a0ed984a4b96b2501095dd44a978030788e
Summary: Adds support for the `clone3` syscall, which is now used by `pthread_create`. This also introduces `CloneFamily`, which abstracts `fork`, `vfork`, `clone`, and `clone3`.
Reviewed By: johnhurt
Differential Revision: D33865362
fbshipit-source-id: 8b91225c63ff6a8aa9c283877a30f58aa4cd9bb2
Summary: Forgot to do this in the previous diff.
Reviewed By: rrnewton
Differential Revision: D33801337
fbshipit-source-id: 68afdd162412c5b5636f87990d543f4f93a8939b
Summary:
Adds file and line number resolution to backtraces. This also adds a 1GB limit on the amount of in-memory symbols at any given time. If the internal symbol cache exceeds this, the oldest entries will be discarded until we're under that limit again. We may need to tweak this and make it more configurable in the future.
Follow-up: Auxiliary debug files, such as `.debug` files, are not supported. This should be easy to support by reading the `gnu_debuglink` section and finding the `.debug` file.
Reviewed By: johnhurt
Differential Revision: D33086623
fbshipit-source-id: 43112e3bdd135a1a43ca75c10756cc8ec101c9b8
Summary: Mozilla-rr has a set of tests that it runs to determine if the host system's perf timers can be trusted. This diff transcribes that functionality (as close as possible) into reverie
Reviewed By: jasonwhite
Differential Revision: D33644553
fbshipit-source-id: 8ecd505bf339ceb4c8b2b8fea86a1f23b14a9b73
Summary: This hasn't been necessary for quite a while now.
Reviewed By: wangbj
Differential Revision: D33411662
fbshipit-source-id: e6f88834521809b59323aa9d14796ff31571e7b6