This is something I know how to do in Olly Debugger, and can't figure out how to do in x64dbg.
In Olly Debugger, it's possible to set a hardware or software breakpoint, either on access or on write, to a memory address.
To be clear: I am referring here to memory breakpoints, which are set by right clicking an address in the dump window. I am not referring to execution breakpoints, like the INT3 breakpoints you can set in the CPU window when you hit F2.
In Olly Debugger, the only practical differences between hardware and software breakpoints is that you're limited to four hardware breakpoints, and with hardware breakpoints, EIP points to the next instruction so you can't see the state of registers or memory before hitting the breakpoint.
In x64dbg, it is also possible to set both hardware or software breakpoints on memory. However, in x64dbg the software memory breakpoints always apply to the entire section in which the memory address resides, which makes software memory breakpoints close to useless (I assume it is just using VirtualProtect to guard the whole section, then breaking on any and all access to the section.) In Olly it was possible to set an unlimited number of software, not hardware, memory breakpoints for an individual byte of memory in the dump window.
Am I just dumb? Is x64dbg really missing this feature?