| ▲ | rincebrain a day ago | ||||||||||||||||||||||
The simplest way to do this, what I believe memtest86 and friends do, is to write a fixed pattern over a region of memory and then read it back later and see if it changed; then you write patterns that require flipping the bits that you wrote before, and so on. Things like [1] will also tell you that something corrupted your memory, and if you see a nontrivial (e.g. lots of bits high and low) magic number that has only a single bit wrong, it's probably not a random overwrite - see the examples in [2]. There's also a fun prior example of experiments in this at [3], when someone camped on single-bit differences of a bunch of popular domains and examined how often people hit them. edit: Finally, digging through the Mozilla source, I would imagine [4] is what they're using as a tester when it crashes. [1] - https://github.com/mozilla-firefox/firefox/commit/917c4a6bfa... [2] - https://bugzilla.mozilla.org/show_bug.cgi?id=1762568 [3] - https://media.defcon.org/DEF%20CON%2019/DEF%20CON%2019%20pre... [4] - https://github.com/mozilla-firefox/firefox/blob/main/toolkit... | |||||||||||||||||||||||
| ▲ | wging a day ago | parent | next [-] | ||||||||||||||||||||||
[4] looks like it's only a runner for the actual testing, which is a separate crate: https://github.com/mozilla/memtest (see: https://github.com/mozilla-firefox/firefox/blob/main/toolkit..., which points to a specific commit in that repo - turns out to be tip of main) | |||||||||||||||||||||||
| ▲ | rendaw a day ago | parent | prev [-] | ||||||||||||||||||||||
That would tell you if there's a bitflip in your test, but not if there's a bitflip in normal program code causing a crash, no? IIUC GP's questions was how do they actually tell after a crash that that crash was caused by a bitflip. | |||||||||||||||||||||||
| |||||||||||||||||||||||